Walk-forward-анализ: как проверять стратегию на последовательных участках истории
Обычный бэктест отвечает на вопрос: что получилось бы с заданными правилами на выбранной истории? Walk-forward-анализ задаёт более узкий вопрос: как выглядел бы процесс, если параметры разрешалось выбирать только по данным, доступным к очередному моменту?
Пример последовательного эксперимента
Возьмём условные двенадцать месяцев данных. На первых трёх месяцах сравним заранее ограниченный набор параметров, выберем конфигурацию и без изменений проверим её на четвёртом месяце. Затем сдвинем окно: месяцы со второго по четвёртый станут базой выбора, пятый — следующим проверочным участком. Повторим процедуру до конца данных.
Размеры окон здесь иллюстративные. Они не подходят всем стратегиям автоматически. Если модель совершает две сделки в месяц, месячное проверочное окно даёт мало наблюдений; если она зависит от редкого события, важна представленность таких событий. Длину и шаг окна нужно объяснить до просмотра результата.
Что фиксировать перед началом
- Какие параметры разрешено менять и в каком диапазоне.
- По какому критерию выбирается вариант и как решаются равенства.
- Как учитываются комиссии, проскальзывание и недоступные данные.
- Что происходит с открытой позицией на границе окон.
- Как собираются результаты проверочных участков в общую последовательность.
Пункт об открытой позиции особенно важен. Принудительно закрыть её в конце окна, перенести дальше или начать следующий участок без позиции — три разных эксперимента. Если выбирать подход после просмотра неудобной сделки, в проверку снова попадает подгонка.
Почему нельзя сложить любые проценты
Если капитал последовательно меняется, доходности периодов соединяются с учётом базы. Условные +10% и затем −10% дают 100 × 1,10 × 0,90 = 99, а не исходные 100. Если же каждый участок тестируется на новом одинаковом капитале, это другая модель, и её нельзя выдавать за непрерывный путь одного счёта.
Полезно сохранить все проверочные сделки по времени и отдельно указать моменты смены параметров. Тогда видны периоды, когда процедура выбора не помогала, а также издержки частых перенастроек.
Как применить подход к работе с InvestConnector
Терминал позволяет исследовать правила и выполнять бэктесты, но наличие обычного бэктеста не означает наличие встроенного автоматического walk-forward-оптимизатора. Для строгого управления окнами может потребоваться отдельный исследовательский инструмент и журнал конфигураций. В терминал переносится уже определённая версия условий.
Walk-forward также не устраняет риск переоптимизации, если после неудачи многократно менять всю методику. Результат полезен как проверка процедуры принятия решений. После неё имеет смысл наблюдать новые сигналы по заранее зафиксированным правилам и вести журнал исполнения.