Skip to content
Все руководства по опционам и фьючерсам
Выберите историю, на которой обучается финансовая модель12 минут

Расширяющиеся и скользящие окна в walk-forward-валидации

Сравните расширяющиеся и скользящие окна обучения фиксированной длины, отделите валидацию от финального теста и выбирайте правила без будущих результатов.

В этом руководствеВ walk-forward-фолде окна обучения и оценки разделены

Краткое резюме

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

В walk-forward-фолде окна обучения и оценки разделены

В момент прогноза исследователю известны некоторые прошлые признаки и результаты. Он обучает или обновляет модель, а затем оценивает ее на более позднем блоке. Сдвиг момента прогноза вперед создает последовательные периоды вне выборки. Правило обучающего окна определяет, какие допустимые прошлые строки входят в каждое переобучение. Правила валидации и теста задают, какие последующие результаты используются для сравнения вариантов и оценки качества. Эти решения связаны, но описывают разные окна.

Расширяющееся окно начинается с фиксированной исторической границы и растет по мере появления новых результатов. Скользящее передвигает обе границы, сохраняя после начального периода постоянное число наблюдений. Ни в одном случае нельзя использовать цель, результат которой еще не завершился к моменту прогноза. Если метки охватывают несколько сессий, дата строки может не показывать, когда стал известен результат; сохраняйте время завершения метки и учитывайте его.

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

Расширяющееся окно сохраняет начальную историю

Пусть \(s\) — индекс первого допустимого наблюдения, а \(t\) — индекс последнего наблюдения с полностью известной меткой на момент переобучения. Расширяющаяся обучающая выборка имеет вид \(\{s,s+1,\ldots,t\}\). В следующем прогнозном периоде она сохраняет прежние строки и добавляет новые допустимые. Поэтому ее размер со временем растет, если отдельное правило не фильтрует и не удаляет данные.

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

Скользящее окно исключает наблюдения за выбранной границей

При фиксированной длине \(W\) обучающая выборка в момент \(t\) имеет вид \(\{t-W+1,\ldots,t\}\) с учетом задержки меток и возможного разрыва на границе. В следующем периоде конец сдвигается, а самая старая допустимая строка выпадает. Длину можно задавать количеством наблюдений или календарным временем, но для нерегулярных данных это неравнозначные единицы.

Скользящее окно задает правило актуальности. Оно может подойти для исследования адаптации к меняющимся условиям или для операционной потребности ограничить размер обучения. Но само по себе окно не делает модель адаптивной. Редкое переобучение или постепенное изменение могут задержать реакцию. Короткий интервал дает меньше информации, повышает нестабильность оценок, может исключить редкие стрессовые периоды или оставить слишком мало примеров для сложной модели. Длинный интервал сохраняет больше разнообразной истории, но может размыть недавние закономерности.

Важна и единица измерения: одинаковое число строк может покрывать разные календарные периоды из-за пропусков торговых дней или разной частоты. Для панельных данных укажите, исключаются ли строки или группы активов по дате. Если выбирать \(W\) после просмотра финального теста, тест становится частью отбора и уже не является независимым.

Два правила дают каждому переобучению разную историю

ВариантОбучающие строки при переобученииВозможное преимуществоЧто проверить
РасширяющеесяВсе допустимые строки от фиксированного начала до текущего моментаБольше наблюдений и сохранение старых эпизодовСтарые режимы продолжают влиять; переобучение может замедлиться
СкользящееПоследний фиксированный интервал допустимых строкЯвное ограничение по актуальности и размеру выборкиМеньше информации; результат сильнее зависит от длины

Чтобы сравнение изолировало правило окна, зафиксируйте момент доступности информации, признаки, класс модели, цель обучения, даты переобучения, горизонт прогноза, тестовые блоки и предположения об исполнении. Если скользящую модель также переобучают чаще или меняют другие настройки, разницу оценок нельзя приписать одному окну.

Эти правила не определяют момент прогноза. Оба обучающих окна можно оценивать на скользящих моментах: обучиться на допустимом прошлом, спрогнозировать следующий блок, сдвинуться вперед и повторить. В обзоре Леонарда Ташмана тестов прогнозирования вне выборки00065-0) рассматриваются скользящие моменты и скользящие оценочные окна. Первые задают время оценки, вторые — остающиеся обучающие строки.

Условная временная шкала показывает данные для каждого переобучения

Все даты и числа ниже условны. Допустим, модель ежемесячно переобучают для прогноза доходности следующего месяца, а первая настройка использует 60 допустимых наблюдений, заканчивающихся в месяце 120. Метку можно использовать только после завершения ее результата. В первом прогнозном периоде оба правила используют те же 60 строк, если длина скользящего окна равна 60.

Когда становится известен новый месячный результат, расширяющаяся выборка содержит 61 допустимую строку. Скользящая добавляет новую и удаляет самую старую, сохраняя 60. После 12 обновлений расширяющаяся выборка содержит 72 строки от исходной точки начала, а скользящая — последние 60. Оценки могут различаться из-за разной истории, хотя каждая строка была доступна на момент соответствующего переобучения.

В этом примере оставьте последние 24 месяца для внешнего теста. Правило и длину окна, признаки и прочие настройки выбирайте на более ранних хронологических блоках валидации. Затем оценивайте зафиксированный выбор по заранее заданному расписанию переобучения. Изменение длины после просмотра внешних результатов использует тест для отбора и завышает убедительность финального периода.

Выбирайте правило окна внутри хронологической валидации

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

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

Оставьте более поздний хронологический период нетронутым для итоговой проверки. Во вложенной схеме внутренняя валидация выбирает окно и настройки только на данных до каждого внешнего тестового блока; внешние результаты оценивают всю процедуру выбора. Руководство по purged cross-validation объясняет границы перекрывающихся меток; переобучение финансовых моделей и множественные проверки рассматривают связанные риски отбора.

Согласуйте метки, предобработку и время переобучения с доступной тогда информацией

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

Обучайте заполнение пропусков, масштабирование, отбор признаков и другие настраиваемые этапы обработки только на обучающей части каждого фолда. Если нужно выбрать порог или гиперпараметр, используйте внутреннюю хронологическую валидацию внутри периода обучения, а затем зафиксируйте выбор для оценки следующего блока. В официальной документации scikit-learn для TimeSeriesSplit описывается расширяющаяся по умолчанию обучающая выборка и max_train_size для ограничения ее размера. gap — это число выборок; сопоставимые длительности фолдов предполагают одинаковые интервалы наблюдений. Отдельно проверьте временные метки финансовых исходов и версию библиотеки.

Отчитывайтесь о результатах по моментам и описывайте ограничения

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

Точность прогноза — не чистая доходность торговли. На результат влияют построение позиции, плечо, оборот, ликвидность, комиссии, спред, воздействие на рынок, заем, финансирование и время исполнения. При сравнении сохраняйте эти предположения и укажите, что исключено. Исследование Серкейры, Торго и Мозетича об оценке качества временных рядов сообщает, что оценки могут различаться в стационарных и нестационарных условиях. Оно напрямую не сравнивает финансовые политики окон и не доказывает, что одно правило всегда выигрывает.

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

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

Q1Всегда ли расширяющееся окно лучше, потому что использует больше данных?

Нет. Дополнительные строки могут стабилизировать оценки, если старые наблюдения остаются релевантными, но устаревшие режимы также могут продолжать влиять. Это зависит от данных, цели, признаков, оценивателя и периода проверки.

Q2Автоматически ли скользящее окно адаптируется к смене рыночного режима?

Нет. Оно удаляет строки за пределами выбранного интервала, но не обнаруживает смену и не гарантирует, что новая выборка представляет следующий режим. Частота переобучения, длина окна и устройство модели по-прежнему важны.

Q3Можно ли использовать один и тот же период для настройки окна и отчета об итоговой эффективности?

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

Источники и дополнительное чтение

Сообщить о проблеме

Мы подготовим письмо со ссылкой на эту статью. Mark получит сообщение только после отправки

Быстрая проверка

Прочитали руководство? Проверьте себя в 3 вопросах

Вопрос 1 / 3

Вопрос 01

Что меняется при следующем переобучении в скользящем окне фиксированной длины?

Выберите ответ, чтобы увидеть объяснение

Словарь опционов

Проверка моделей на финансовых временных рядахPurged cross-validation и embargo: как предотвратить утечку меток в торговых моделяхУзнайте, как исключать пересекающиеся интервалы будущей доходности и чем различаются purging, embargo, walk-forward, TimeSeriesSplit и CPCV.Почему модель может объяснять историю и терпеть крах в следующий периодБайесовско-дисперсионный компромисс и переобучение финансовых моделейПоймите предсказательное смещение, дисперсию оценок, необратимый шум, сложность модели, временную валидацию, поиск данных, переобучение бэктестов и управление финансовыми моделямиПочему один порог не работает, когда исследователи проверяют множество идейМножественная проверка и доля ложных открытий в финансахРазберитесь во множественных сравнениях, семейной вероятности ошибки, доле ложных открытий, методах Бонферрони, Холма и Бенджамини–Хохберга, зависимости, q-значениях, поиске факторов, отборе бэктестов и управлении исследованиямиМеханика опционовЧто такое назначение опциона?Разберитесь, как проданный опцион может создать обязанность передать или купить акции до даты экспирации или в неёРазрешённое количество контрактов — не то же самое, что бюджет рискаЛимиты позиции по опционам и лимиты исполнения: объяснениеУзнайте, чем лимиты позиции по биржевым опционам отличаются от лимитов исполнения, почему важны агрегация одной стороны и отчётность и почему маржа или покупательная способность не показывают, разрешено ли количество