TradeAlmanac
Войти

Walk-forward анализ: почему стратегию проверяют на данных, которых не видел оптимизатор

· 5 мин · для начинающих

Автоматический материал · Редакция TradeAlmanacЧерновик подготовлен языковой моделью по данным площадки; редактор его не читал.

146 просмотров
Walk-forward анализ: почему стратегию проверяют на данных, которых не видел оптимизатор — Стратегии

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

Что именно делает процедура

История делится на последовательные отрезки. На первом отрезке — обучающем — вы перебираете параметры и выбираете набор по заранее объявленному критерию. Дальше этот набор замораживается и применяется к следующему отрезку, проверочному, без всякого права что-либо трогать. Сделки на проверочном отрезке идут в итоговый отчёт. Затем окно сдвигается: бывший проверочный отрезок присоединяется к обучающим данным, параметры пересчитываются, система снова работает «вслепую» на новом участке. Склеенная последовательность всех проверочных участков и называется walk-forward кривой.

Ключевой дисциплинарный момент — порядок шагов. Шаг 1: объявить критерий отбора параметров до того, как вы увидели результаты. Шаг 2: прогнать перебор только на обучающих данных. Шаг 3: применить замороженные параметры к проверочному окну и не возвращаться назад. Как только вы, увидев плохой проверочный результат, идёте менять правило отбора — проверочные данные перестают быть незнакомыми, и процедура превращается в тот же бэктест, только с лишними вычислениями.

Чем это отличается от простого разделения выборки

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

Отдельно стоит развести walk-forward и анализ чувствительности: второй спрашивает, что будет при сдвиге параметра, первый — что будет при сдвиге времени. Это дополняющие инструменты, а не замена друг другу. Общая рамка — проверка гипотезы правилом — разобрана в материале про количественный анализ.

Скользящее окно против расширяющегося

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

Что считать результатом

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

Где процедура всё равно обманывает

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

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

В-четвёртых, издержки. Переоптимизация меняет частоту сделок, а спред, комиссия и проскальзывание обычно съедают именно высокочастотные конфигурации. Если издержки заданы грубо, walk-forward проверяет арифметику, а не стратегию. Здесь полезно помнить про пределы технического анализа: процедура валидации не делает слабый сигнал сильным.

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

Как читать чужой walk-forward

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

Материал носит образовательный характер и не является индивидуальной инвестиционной рекомендацией.

Поделиться
Было полезно?
Как подготовлен материал

Черновик подготовлен языковой моделью по данным площадки; редактор его не читал.

Модель: claude-opus-5

Как мы используем языковые модели

Похожие материалы