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

повторяющиеся хронологические окна walk-forwardТри иллюстративных последовательных окна оценки следуют за более ранними обучающими окнами. Обучение расширяется после каждого теста, поэтому более ранние завершённые тесты могут войти в более позднее обучение только в рамках объявленного графика. Эти блоки показывают структуру метода, а не измеренную рыночную доходность.ПОВТОРЯЙТЕ ОДНУ И ТУ ЖЕ ДАТИРОВАННУЮ ПРОЦЕДУРУ · ПОКАЗЫВАЙТЕ КАЖДОЕ ТЕСТОВОЕ ОКНОБОЛЕЕ РАННИЕ НАБЛЮДЕНИЯБОЛЕЕ ПОЗДНИЕ НАБЛЮДЕНИЯРаунд 1Настройка / спецификацияТест 1Раунд 2Настройка / спецификация · включать Тест 1 только если он объявлен заранееТест 2Раунд 3Настройка / спецификация по письменному правилу обновленияТест 3Хронологическое время → · выберите расширяющееся или скользящее обучение до того, как станут известны результатыПоследовательность окон · не выбирайте только лучший тестовый блок
Три иллюстративных последовательных окна оценки следуют за более ранними обучающими окнами. Обучение расширяется после каждого теста, поэтому более ранние завершённые тесты могут войти в более позднее обучение только в рамках объявленного графика. Эти блоки показывают структуру метода, а не измеренную рыночную доходность. ?????????????????? ?????????????????????? ?? ???? ???????????????? ?????????????? ?????????????????? ??????????????

Сначала определите вопрос и график окон

Задайте инструмент, источник данных, таймфрейм, издержки, эталон (бенчмарк) и метрику оценки. Выберите дату начала, длину окна подбора, длину тестового окна и способ сдвига окон до того, как изучать результаты. Если стратегия переоценивается по графику, задайте этот график заранее. Зафиксируйте, как каждый выбор связан с вопросом; размеры окон сами по себе — это параметры, по которым можно переобучиться.

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

Сохраняйте разделение между окнами

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

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

Согласуйте разрыв с горизонтом результата

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

Текущая документация по TimeSeriesSplit (scikit-learn 1.9.1) описывает расширяющиеся обучающие наборы по умолчанию, опцию max_train_size для ограничения их размера и gap, измеряемый в выборках между обучением и тестом. Она также требует равноотстоящих выборок при сравнении тестовых фолдов одинаковой длительности. В её иллюстративном примере с 12 выборками, тремя тестовыми окнами по две выборки и gap=2 при первом разбиении обучение идёт на выборках 1–4, выборки 5–6 остаются вне обучения, а тестирование проводится на 7–8; последующие обучающие разбиения (фолды) расширяются перед тем же разрывом в две выборки. Это пример индексов из общего инструмента разбиения для машинного обучения, а не результат криптостратегии. Выбирайте разрыв исходя из целевого и удерживающего горизонтов, которые вы действительно используете; разрыв в количестве строк может не соответствовать прошедшему времени, когда бары пропущены или наблюдения привязаны к событиям. scikit-learn документирует эти опции разбиения.

расширяющееся обучающее окно на 12 выборках с разрывомДвенадцать равноотстоящих вымышленных индексов выборок показывают три хронологических фолда с тестами по две выборки и разрывом в две выборки. Обучение расширяется с четырёх до шести и восьми наблюдений; каждый разрыв отделяет последние обучающие наблюдения от следующего теста. Эта схема индексов не содержит рыночных данных или результата стратегии.12 УПОРЯДОЧЕННЫХ ВЫБОРОК · РАСШИРЯЮЩЕЕСЯ ОБУЧЕНИЕ · РАЗРЫВ В ДВЕ ВЫБОРКИФОЛДИНДЕКС ВЫБОРКИ123Обучение 1–4Обучение 1–6Обучение 1–8123456789101112ОБУЧЕНИЕ 1–4РАЗРЫВТЕСТ 7–8ПОЗЖЕОБУЧЕНИЕ 1–6РАЗРЫВТЕСТ 9–10ПОЗЖЕОБУЧЕНИЕ 1–8РАЗРЫВТЕСТ 11–12Только иллюстрация индексов · выбирайте разрыв исходя из фактического горизонта результата и отметок времени
Двенадцать равноотстоящих вымышленных индексов выборок показывают три хронологических фолда с тестами по две выборки и разрывом в две выборки. Обучение расширяется с четырёх до шести и восьми наблюдений; каждый разрыв отделяет последние обучающие наблюдения от следующего теста. Эта схема индексов не содержит рыночных данных или результата стратегии. ?????????????????? ?????????????????????? ?? ???? ???????????????? ?????????????? ?????????????????? ??????????????

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

Сообщайте о всей последовательности

Показывайте каждое окно оценки, включая слабые и отрицательные результаты, с его параметрами, числом сделок, издержками, экспозицией и просадкой. Сравнивайте те же периоды с неизменным эталоном (бенчмарком) и сохраняйте различия между режимами, а не скрывайте их в одном среднем. Если правило обновляется между окнами, сообщайте о заранее объявленной процедуре обновления и траектории параметров. Ручное изменение, продиктованное просмотром результатов, — это новая версия правила, а не адаптивный алгоритм.

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

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

Ограничения продукта и дальнейшие шаги

SuperQuant предоставляет диагностику walk-forward для фиксированного правила: оценка начинается после первой половины истории и охватывает четыре хронологических тестовых окна без повторной оптимизации параметров. Более ранние свечи обеспечивают прогрев индикаторов для каждого окна. Эта проверка показывает, как одно фиксированное правило вело себя на более поздних окнах; это не оптимизация с подбором и переобучением. Отдельный прогон «последних 30%» — это одно разбиение, и его нельзя считать нетронутым, если исследователь уже изучал этот отрезок.

Disproof Desk теперь позволяет просматривать UTC-интервал тестирования каждого окна, отпечатки контекста индикаторов и отпечатки тестовых данных, смоделированную доходность, просадку, закрытые сделки, комиссии и ставку финансирования. Каждое окно стартует с нулевой позиции и одинаковым начальным капиталом, поэтому отдельные доходности не компаундируются в один результат по счёту. Короткие локальные отпечатки помогают обнаруживать случайные изменения, но не являются криптографическими подписями.

Диагностика SuperQuant по четырём окнам с фиксированным правиломТекущая продуктовая диагностика фиксирует одно отправленное правило и показывает четыре последовательных окна оценки после первой половины синтетической истории. Более ранние свечи включены только для прогрева индикаторов; параметры заново не подбираются. Эта продуктовая диагностика отличается от процесса адаптивной повторной оптимизации.ОДНО НЕИЗМЕННОЕ ПРАВИЛО · ЧЕТЫРЕ ПОСЛЕДУЮЩИХ ОКНА · СИНТЕТИЧЕСКАЯ ИСТОРИЯПервая половина · история и отправка правилаболее ранние свечи прогревают индикаторы; утверждения о подгонке нетПоследующая оценка по временичетыре показанных окна · те же отправленные параметрыОкно 1Окно 2Окно 3Окно 4Без повторной оптимизации параметров · без будущих свечей в более ранних окнахРезультат инструмента — это диагностика по встроенной синтетической истории, а не независимые данные биржиОписывает текущее поведение SuperQuant · проверяйте методологию в приложении на предмет обновлений
Текущая продуктовая диагностика фиксирует одно отправленное правило и показывает четыре последовательных окна оценки после первой половины синтетической истории. Более ранние свечи включены только для прогрева индикаторов; параметры заново не подбираются. Эта продуктовая диагностика отличается от процесса адаптивной повторной оптимизации. ?????????????????? ?????????????????????? ?? ???? ???????????????? ?????????????? ?????????????????? ??????????????

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

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