Walk-forward анализ: срезы, доля обучения и отбор

Walk-forward делит период бэктеста на срезы, выбирает лучшую конфигурацию параметров на обучающей части каждого среза, оценивает её на тестовой части, которой она не видела, и показывает сцепленный результат вне выборки с показателем эффективности и дефлированным Sharpe.

Senzoukria · Документация · Обновлено: сентябрь 2026


Где найти

Где
Реплей → «Подготовка» → «Автоматический бэктест» → флажок «Walk-forward — найти лучшую конфигурацию»
Значения по умолчанию
Срезов 4, доля обучения 0,7, критерий отбора SQN
Комбинации
Максимум 400; чтобы конфигурацию можно было выбрать, ей нужно минимум 10 сделок
Минимум данных
Каждому срезу нужно не менее 100 обучающих баров и 50 тестовых

Что это делает

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

Реализация (lib/replay/autoBacktest.ts, runWalkForward): бары режутся на равные срезы; внутри среза первые trainRatio баров — обучающее окно, остальное — тестовое. Каждая комбинация осей перебора прогоняется на обучающем окне, оценивается критерием отбора, и лучшая один раз прогоняется на тестовом. Сделки вне выборки по всем срезам сцепляются, и по ним считается общая статистика. Прогресс читается как «срез n · обучение», затем «срез n · тест».

Настройки

Настройки walk-forward в карточке автоматического бэктеста
НастройкаПо умолчаниюЧто меняет
Переключатель walk-forwardВыкл.Показывает настройки ниже и меняет кнопку запуска на «Запустить walk-forward».
Срезы4Число фолдов, от 2 до 12. Больше срезов — короче обучающие окна; прогон отказывается от разбиения, оставляющего меньше 100 обучающих или 50 тестовых баров.
Доля обучения0,7Доля каждого среза, по которой выбираются параметры: от 0,5 до 0,9 с шагом 0,05.
Критерий отбораSQN (качество, учитывает число сделок)Также профит-фактор, матожидание на сделку или Sharpe на сделку. Конфигурация менее чем с 10 сделками получает минус бесконечность.
Параметры для перебораОси, прочитанные из params скрипта, иначе lookback 10, 20, 40 / stopTicks 20, 40, 80 / targetTicks 40, 80, 160Значения через запятую по каждой оси; «Исследовать каждый читаемый параметр» задаёт до пяти осей вокруг значений скрипта по умолчанию; «Перечитать скрипт» их восстанавливает.
Строка комбинаций«{n} комбинаций × {folds} срезов — около {dur}» или «Слишком много комбинаций (максимум 400)».

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

  • Эффективность walk-forward = среднее матожидание вне выборки, делённое на среднее матожидание внутри выборки по срезам. При 70 % и выше: «стратегия держится вне собственных данных»; от 40 %: «она теряет добрую часть преимущества вне выборки»; ниже: «большая часть результата была переобучением». Ниже 50 % строка подсвечивается как плохая.
  • Дефлированный Sharpe: Sharpe на сделку вне выборки против порога, который один только отбор дал бы при таком числе испытанных конфигураций. Вердикты: устойчиво (переживает поправку), хрупко (число конфигураций объясняет добрую его часть), шум (неотличимо от лучшего в случайной выборке).
  • Таблица фолдов: срез, обучение, настоящий тест, конфигурация — чтобы увидеть, прыгает ли выбранная конфигурация от среза к срезу.
  • Графики: эквити внутри выборки против эквити вне выборки (пунктир — та кривая, которую видел оптимизатор) и устойчивость параметров, сравнивающая выбранную конфигурацию с её соседями по сетке (плато, склон или пик).
  • Именно общая статистика вне выборки записывается в панель результатов.

Ограничения и подводные камни

Каждая лишняя комбинация — это ещё одна попытка на тех же данных; с некоторого момента вы измеряете везение переобучения, поэтому потолок равен 400, а ассистенту предписано держать перебор ниже 100. Перебор пяти осей на одном месяце 15-минутных баров даст победителя, который ничего не значит.

Срезы режутся по числу баров, а не по календарю; срез может прийтись на смену режима. Перебор прогоняет каждую комбинацию как полный бэктест, поэтому время растёт линейно с произведением комбинаций на срезы, а минутные бары на длинных периодах занимают часы. Walk-forward использует те же правила исполнения и издержки, что и обычный бэктест, и никогда не выставляет ордеров.

Эта страница на других языках

Частые вопросы

Что означает эффективность walk-forward в 45 %?
В среднем матожидание вне выборки составило 45 % от матожидания внутри выборки: стратегия потеряла добрую часть преимущества на данных, которых не видела. Ниже 50 % панель это подсвечивает, а ассистенту предписано прямо сказать, что большая часть результата была подгонкой кривой.
Почему прогон отвергает моё число срезов?
В каждом срезе должно остаться не менее 100 обучающих и 50 тестовых баров. При коротком периоде или большом числе срезов это не выполняется; уменьшите число срезов или удлините период.
По какому критерию отбирать?
По умолчанию это SQN, потому что он учитывает число сделок. Доступны также профит-фактор, матожидание на сделку и Sharpe на сделку; что бы вы ни выбрали, конфигурация менее чем с 10 сделками не выбирается никогда.