Если переоптимизация — болезнь, то проверка на новых данных — главная защита от неё. Out-of-sample тестирование и walk-forward анализ отвечают на единственный по-настоящему важный вопрос: работает ли стратегия на данных, которых она «не видела» при настройке? Идея проста и честна: настраивать на одной части истории, а проверять на другой, отложенной. Если стратегия хороша на настройке и рушится на проверке — она подогнана под прошлое, и её нельзя выпускать в реальную торговлю. Разложим, как правильно делить данные, чем walk-forward отличается от простого out-of-sample и почему без этого шага любой бэктест остаётся самообманом.
Проблема бэктеста в том, что если настраивать и оценивать стратегию на одних и тех же данных, вы неизбежно подгоняете её под них — и хороший результат ничего не говорит о будущем. Решение — разделить историю. Простейший вариант: настроить параметры на первой, большей части (in-sample), а затем один раз проверить на отложенной, более поздней части (out-of-sample), которую стратегия «не видела». Если на отложенных данных результат сопоставим с настройкой — это хороший знак устойчивости. Если он резко хуже или отрицателен — стратегия выучила шум прошлого. Отложенные данные нельзя использовать для донастройки: как только вы начали крутить параметры под них, они перестают быть честной проверкой.
Ключевые наблюдения
- Out-of-sample — проверка стратегии на отложенной части истории, которая не участвовала в настройке параметров.
- Walk-forward — многократное скользящее повторение цикла «настроил на прошлом окне — проверил на следующем», ближе всего имитирующее реальную торговлю.
- Резкое падение результата на новых данных по сравнению с настройкой — прямой признак переоптимизации.
- Ни одна проверка не гарантирует будущую прибыль, но эти методы отсеивают большинство подогнанных стратегий до реальных денег.
Стратегию проверяют не там, где её настраивали. Единственный честный вопрос — как она ведёт себя на данных, которых не видела. Всё остальное — это оценка памяти, а не способности обобщать.
— Noob_X
Как работает walk-forward
Walk-forward — более строгий и реалистичный метод. Историю делят на последовательные окна: настраивают параметры на первом окне, проверяют на следующем, затем сдвигают всё вперёд — настраивают на втором окне, проверяют на третьем, и так далее по всей истории. В итоге вся проверочная часть состоит из данных, которых стратегия при настройке не видела, а сам процесс имитирует реальную практику: периодически перенастраивать систему и торговать её на будущем. Собранная из проверочных окон кривая — самая честная оценка того, как стратегия вела бы себя в реальном времени. Если она разваливается, стратегия непригодна, как бы хорош ни был исходный бэктест.
На что смотреть в этой теме
Практический ориентир по разделению: значительную часть истории отдают под настройку, а меньшую, более позднюю — под честную проверку, не касаясь её при оптимизации. Оценивают не только доходность на out-of-sample, но и просадку, число сделок и стабильность — и сравнивают их с in-sample. Тревожный сигнал — когда прибыльная на настройке стратегия на проверочных данных даёт заметно большую просадку или уходит в минус. Конкретные пропорции окон и цифры зависят от объёма данных и частоты сделок; важен принцип, а не число, а любые результаты должны получаться на ваших данных, а не браться из чужих витрин.
Чего эти методы не гарантируют
Важно сохранять честность до конца: ни out-of-sample, ни walk-forward не гарантируют будущую прибыль. Рынок меняется, и стратегия, устойчивая на всей прошлой истории, может перестать работать при структурном сдвиге. Кроме того, если много раз прогонять разные стратегии через одну и ту же проверочную выборку и отбирать лучшую, вы снова начинаете подгонять — уже под out-of-sample. Поэтому финальным шагом всегда остаётся форвард-тест на действительно новых, реальных данных вперёд. Проверка на новых данных — мощный фильтр, отсеивающий подгонку, но не хрустальный шар.
Чего лучше избегать
Первая — настраивать и оценивать стратегию на одних и тех же данных. Вторая — «подсматривать» в out-of-sample и донастраивать под него, обнуляя честность проверки. Третья — прогонять десятки стратегий через одну проверочную выборку и брать лучшую (подгонка под out-of-sample). Четвёртая — оценивать только доходность, игнорируя просадку на новых данных. Пятая — считать успешный walk-forward гарантией будущего и пропускать форвард-тест.
Читайте также
Частые вопросы
Чем out-of-sample отличается от walk-forward?
Out-of-sample — одна отложенная проверочная часть. Walk-forward — многократный скользящий цикл «настройка-проверка» по всей истории, что реалистичнее и строже.
Сколько данных отдавать под проверку?
Достаточно, чтобы на проверочной части набралось много сделок и разные режимы рынка. Слишком маленькая выборка не даёт статистически значимого вывода.
Если стратегия прошла walk-forward, можно торговать вживую?
Это сильный аргумент за, но финальный шаг — форвард-тест на реальных новых данных. Прошлая история, даже проверенная, не равна будущему.
Что запомнить
- Out-of-sample — проверка на отложенных данных, не участвовавших в настройке параметров.
- Walk-forward — скользящий цикл «настройка-проверка» по всей истории, ближе всего к реальной торговле.
- Резкое падение результата на новых данных — прямой признак переоптимизации.
- Эти методы отсеивают подгонку, но не гарантируют будущее — финальный барьер остаётся за форвард-тестом.
