Тестирование: проверить правила на данных

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

Сохраняется ли результат при честном времени данных, реалистичных расходах и проверке вне подбора?

1Зафиксируй протокол до расчёта

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

2Раздели разработку и проверку по времени

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

3Смоделируй сделку и проверь устойчивость

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

4Оцени результат вместе с ограничениями

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

Расходы меняют смысл результата

В вымышленном тесте получено 60 сделок: 27 прибыльных со средним результатом $40 и 33 убыточные со средней потерей $25 до расходов. Валовой итог равен 27 × 40 − 33 × 25 = $255. При расходе $3 за полный оборот чистый итог составляет $75, или $1,25 на сделку. Если расход увеличится до $5, итог станет −$45. Эти расчёты показывают чувствительность модели; количества сделок и положительного первоначального результата недостаточно для вывода о будущем преимуществе.

Что получаем на выходе

Протокол исследования с версиями правил, временным разделением данных, моделью расходов, перечнем испытанных вариантов и итогами независимой проверки.

Где легко ошибиться

  • Использовать будущие значения, пересмотренные публикации или сегодняшний состав инструментов как известные в прошлом.
  • Подбирать параметры по проверочному периоду и продолжать называть его независимым.
  • Показывать лучший вариант, скрывая остальные попытки, расходы и допущения исполнения.

Источники и механика

QuantConnect · последовательная настройка на прошлых данных ↗QuantConnect · различия симуляции и реального исполнения ↗Bailey, Borwein, López de Prado, Zhu · The Probability of Backtest Overfitting ↗

Самостоятельный учебный разбор World Trading. Числовые условия примеров заданы для объяснения.

Поиск по платформе