Walk-forward анализ

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

Senzoukria · Глоссарий · Обновлено: сентябрь 2026


Процедура по шагам

  • Зафиксируйте заранее длину обучения, длину теста, сетку параметров и правило отбора (например, наибольший чистый результат после издержек).
  • На первом обучающем окне прогоните сетку и выберите одну конфигурацию по правилу отбора.
  • Заморозьте эту конфигурацию и прогоните её на тестовом окне, идущем сразу следом.
  • Сдвиньте оба окна вперёд и повторяйте, пока данные не кончатся.
  • Показывайте склейку тестовых окон, каждое со своей выбранной конфигурацией, включая издержки и убыточные сделки.

Почему это сильнее одной оптимизации

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

Сравнение результата внутри выборки и вне её по срезам часто сводят к эффективности walk-forward: какая часть результата обучающего окна выживает в тестовых. Это диагностика, а не сертификат.

Выборы, задающие результат

Параметры самой процедуры
ВыборКомпромисс
Число срезовБольше срезов — больше окон вне выборки, но короче периоды обучения
Доля обученияБольшая доля лучше подгоняет и меньше тестирует; меньшая тестирует больше, но на более тонкой подгонке
Якорное обучение против скользящегоЯкорные окна растут от фиксированного начала; скользящие держат постоянную длину и забывают старые данные
Правило отбораДолжно быть зафиксировано до прогона; менять его, увидев результаты, значит вернуть смещение отбора

В Senzoukria

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

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

Частые ошибки

  • Перезапускать walk-forward с другим правилом отбора, пока эффективность не станет красивой.
  • Читать кривую внутри выборки как результат.
  • Брать срезы настолько короткие, что в каждом тестовом окне остаётся горстка сделок.
  • Считать последнее тестовое окно нетронутым после того, как решения уже подгонялись под него.

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

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

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