- Как провести walk-forward-анализ в MetaTrader 5?
- MT5 даёт вам детали, но не сам цикл. Поставьте «Форвард» (Forward) на вкладке «Настройки» (Settings) тестера стратегий в 1/2, 1/3 или 1/4: тестер оптимизирует переднюю часть вашего диапазона дат и оценивает выжившие проходы на хвосте, перечисляя их на собственной вкладке Forward Results. Это один шаг. Ради серии сдвиньте весь диапазон дат вперёд на длину шага и запустите оптимизацию снова, по разу на отрезок, записывая каждый раз форвардную строку и выигравшие параметры. Двадцать отрезков означают двадцать прогонов.
- Какими должны быть длины окон на выборке и вне выборки?
- Достаточными, чтобы обучающее окно содержало больше одного рыночного режима, а тестовое окно — достаточно сделок, чтобы хоть что-то значить. Встроенные отношения тестера 1/2, 1/3 и 1/4 — разумные отправные точки, а произвольная форвардная дата даёт более короткий тестовый кусок, когда шаг мал. Правило важнее чисел: выберите отношение до первого прогона, потому что перебрать несколько и опубликовать лучшее — это повторить ровно ту ошибку, ради поимки которой walk-forward и существует.
- Устраняет ли walk-forward-анализ переподгонку?
- Нет. Он переселяет её и делает видимой. Повторная настройка по-прежнему происходит внутри каждого обучающего окна, поэтому метод измеряет, какая часть этой подгонки переживает встречу со следующим окном, вместо того чтобы её предотвращать. Наши собственные восемь записанных переборов прогнали 116 комбинаций параметров и не приняли ни одной: два из них прошли окно после перебора и затем провалили окно перед ним — ровно тот случай, который одиночное отложенное окно прячет.
- Какую эффективность вне выборки считать хорошей?
- Примерно от 40 % до 60 % — обычное дело, стоит сдвинуться горстке параметров, а цифры выше 60 %, удержанные на большинстве шагов при устойчивых параметрах, считаются сильными. К любому одиночному шагу относитесь с подозрением: наш лучше всех подогнавшийся перебор показал 65 % на одном шаге, и выбранная им настройка всё равно потеряла деньги на обоих окнах, которых она не видела. Цифра около 100 % или выше чаще сигнализирует об утечке между обучающим и тестовым окнами, чем о необычайно устойчивой стратегии.
- Какой критерий оптимизации должен ранжировать проходы?
- Решайте до того, как появится сетка, потому что критерий — целевая функция в широкой литературе — выбирает выигравший проход на каждом шаге. Ранжирование по балансу награждает тот проход, который взял больше всего риска, ранжирование по просадке — тот, который торговал меньше всех, а Custom max отдаёт решение вашему собственному OnTester(), когда не подходит ни то ни другое. В наших записанных переборах ранжирование тестера само по себе ничего не решало: каждый выживший проход затем должен был удержать профит-фактор выше 1,0 на трёх окнах, и ни один из восьми этого не смог.
- Чем walk-forward отличается от одиночного теста вне выборки?
- Одиночный тест резервирует один блок данных и один раз проверяет по нему финальные параметры. Walk-forward повторяет цикл «настроить, затем проверить» вдоль всей истории, поэтому он возвращает серию результатов вне выборки и проверяет саму процедуру перенастройки — то, что запускающий советника действительно выполняет месяц за месяцем.