Walk-forward тестирование: честный способ проверить форекс-советник

Коротко — Один оптимизированный бэктест — самая лёгкая для подделки цифра в трейдинге. Walk-forward тест оптимизирует на in-sample и проверяет на данных, которых оптимизатор не видел. Рабочий процесс, чтение результата и его пределы.

Walk-forward тестирование: честный способ проверить форекс-советник

Один бэктест отвечает на один вопрос: как бы именно эти настройки отработали именно на этой истории? Это полезно, но это и самая лёгкая для подделки цифра в трейдинге — подделки не враньём, а оптимизацией. Прогоните достаточно комбинаций параметров по одним и тем же пяти годам, и одна из них будет выглядеть блестяще. Этот блеск часто оказывается подгонкой под кривую: настройки заучили прошлое, вместо того чтобы узнать хоть что-то о рынке.

Walk-forward тестирование — стандартная защита. Идея проста: оптимизируйте на одном отрезке истории, а затем проверяйте на отрезке, которого оптимизатор никогда не видел. Если EA работает только на данных, под которые его настраивали, вы узнаете об этом в тестере, а не на реальном счёте.

Как устроен walk-forward тест

  1. Разделите историю. Возьмите, скажем, пять лет данных. Разбейте их на внутривыборочное окно (in-sample, используется для оптимизации) и вневыборочное окно (out-of-sample, остаётся закрытым). Частое деление — 70/30 или скользящие окна: 12 месяцев in-sample, затем 3 месяца out-of-sample.
  2. Оптимизируйте только на in-sample. Прогоняйте перебор параметров (дистанция стопа, фильтр сессии, множитель ATR — всё, что EA выводит наружу) строго на внутривыборочном окне. Выбирайте настройки по устойчивости, а не по единственной максимальной прибыли: параметр, у которого и соседние значения работают хорошо, лучше одинокого пика.
  3. Тестируйте на out-of-sample, не трогая его. Примените выбранные настройки к закрытому окну ровно один раз. Никакой донастройки, никакого второго взгляда. Этот результат — ваша единственная честная оценка будущей доходности.
  4. Прокатите окно (необязательно, но лучше). Сдвиньте оба окна вперёд и повторите. Сшивая out-of-sample отрезки вместе, вы получаете «walk-forward кривую эквити» — симуляцию того, что дала бы регулярная переоптимизация в реальной торговле.

Как читать результат

  • Out-of-sample примерно совпадает с in-sample (скажем, профит-фактор в пределах 20–30 процентов): преимущество похоже на настоящее. Переходите к тесту на демо.
  • Out-of-sample заметно слабее, но всё ещё в плюсе: это нормально. Реальная торговля почти всегда хуже in-sample. Рассчитывайте риск по вневыборочным цифрам, а не по красивым.
  • Out-of-sample уходит в минус: результат in-sample был подгонкой под кривую. Не «чините» его переоптимизацией до тех пор, пока закрытое окно не позеленеет: каждый повторный прогон утекает информацию и тихо превращает ваши out-of-sample данные в in-sample. Отложите настройки или пересмотрите логику.

Последняя ловушка заслуживает акцента. Вневыборочное окно — ресурс одноразовый. Если вы подглядываете, правите и перетестируете по кругу, вы просто оптимизируете на всём наборе данных, только с лишними шагами, а ярлык «walk-forward» становится украшением.

Чего walk-forward не может

Честная оговорка: walk-forward тестирование снижает риск подгонки под кривую — оно не устраняет рыночный риск. Стратегия может чисто пройти walk-forward и всё равно провалиться вживую, потому что сменился режим (ломается валютная привязка, схлопывается волатильность, уходит ликвидность сессии), потому что спред и проскальзывание вашего брокера отличаются от допущений тестера или просто потому, что преимущество истощилось. Прошлые результаты, даже честно измеренные, не гарантируют будущих. Walk-forward говорит вам, что преимущество не было выдуманным; он не может сказать, что оно вечно.

Именно поэтому мы публикуем полные пятилетние результаты по каждой стратегии — включая убыточные — на нашей странице доказательств, и именно поэтому магазин выставляет только те EA, чей полный бэктест прошёл минимальную планку. Метод валидации что-то значит только тогда, когда провалы остаются на виду. Если вы всё ещё сравниваете платформы для своих тестов: многопоточный тестер MT5 делает перебор параметров кардинально быстрее, чем MT4, — см. наши заметки по сравнению платформ и разбор бэктестинга в MT4 с механикой процесса.

Минимальный рабочий процесс, который можно скопировать

  • Отложите последние 12 месяцев как out-of-sample, прежде чем прикасаться к оптимизатору.
  • Оптимизируйте только на более старых данных; выбирайте параметры со стабильного плато, а не с пика.
  • Прогоните закрытое окно один раз. Запишите результат прежде, чем сформируете мнение.
  • Если результат держится, проведите форвард-тест на демо в течение 4–8 недель и сравните исполнение с тестером.
  • Рассчитывайте риск на реальном счёте от вневыборочного дроудауна, а затем добавьте запас, потому что вживую всё хуже.

FAQ

  • q: Сколько данных должно быть во вневыборочном окне?

  • a: Достаточно, чтобы получить осмысленное число сделок: как правило, не менее 30 сделок и не менее 20–30 процентов всей вашей истории. Вневыборочное окно с восемью сделками не доказывает ничего ни в ту, ни в другую сторону.

  • q: Мой результат out-of-sample хуже, чем in-sample. Тест провален?

  • a: Не обязательно. Некоторая деградация ожидаема и нормальна. Сигнал провала — переход из прибыли в убыток или дроудаун, далеко выходящий за то, что предполагал in-sample. Оценивайте закрытое окно по выживаемости, а не по совпадению с оптимизированной кривой.

  • q: Можно ли перезапустить walk-forward после изменения кода EA?

  • a: Настоящее изменение логики (новый фильтр, другой выход) оправдывает свежий тест, желательно на новом разбиении out-of-sample. Многократное подкручивание параметров и перетестирование одного и того же закрытого окна — это не новый тест, а оптимизация, просачивающаяся с чёрного хода.

Отказ от ответственности по рискам: торговля форексом и CFD с плечом несёт высокий риск убытков, которые могут превысить ваш депозит. Бэктесты и walk-forward тесты — это симуляции, они не гарантируют будущих результатов. Ничто здесь не является финансовой рекомендацией. Всегда проверяйте на демо-счёте, прежде чем рисковать реальными средствами.

Share:Post on X ↗Post on Reddit ↗Share on Telegram ↗

Related EAs