Ошибки бэктеста: проверка стратегии без знания будущего · 5 / 5
Тест out-of-sample: отделите проверочный период без утечки будущего
Файл с названием holdout не остаётся нетронутым, если его результаты повлияли на стратегию. Отслеживайте доступность каждого входного значения и исхода сделки, а не только месяц строки.
Athenum8 минОбновлено:
Фиксация протокола и сделки, пересекающие границу разделения
В этом гипотетическом расписании январь–март используются для разработки, апрель — для отбора, май–июнь — для окончательной проверки. В конце апреля зафиксируйте правила, набор активов, параметры, издержки, модель исполнения и критерии принятия. Скользящая средняя вправе использовать более ранние цены: ограничение касается будущей информации, а не обязанности забыть прошлое.
Сделка разработки, открытая 31 марта и закрытая 2 апреля, ещё не имеет известного реализованного результата на мартовской границе. Настройка по этому результату с оценкой с 1 апреля так, будто модель уже была зафиксирована, создаёт утечку. Заранее решите: исключать пересекающие границу метки исходов из предыдущей настройки или переносить начало оценки до их доступности. Требуемое исключение зависит от фактического горизонта исхода.
Утечка через предобработку и изменения после проверочного периода
Обучаемый масштабировщик, отбор признаков или модель заполнения пропусков должны настраиваться только на разрешённых наблюдениях. Расчёт параметров по всему январю–июню до разделения может внести информацию будущего распределения в ранние решения. Применяйте зафиксированные преобразования к последующим данным. Детерминированное преобразование единиц с известной константой — другая операция.
После просмотра проверочных результатов любое изменение начинает новый исследовательский цикл. Если май повлиял на новый стоп, май становится данными разработки или отбора для изменённого правила. Июнь может быть новым, более коротким тестом только если не влиял на решения прямо или косвенно. Иначе нужен действительно новый период оценки.
Пример: +12R на разработке, +3R на отборе, −2R на финальной проверке
Пусть разработка даёт +12R, отбор +3R, а окончательная проверка −2R после заявленных издержек. Общая сумма +13R, но результат отложенной проверки по-прежнему −2R. Покажите его отдельно с числом сделок, условиями и неопределённостью. Такая выборка не поддерживает запланированное утверждение о положительной доходности. Даже нетронутый проверочный период может быть коротким, охватывать один режим рынка или содержать зависимые сделки. Покажите эти ограничения вместе с результатом: само хронологическое разделение не доказывает переносимость результата.
При фиксации модели на закрытии 30 апреля исторические цены и уже завершённые апрельские исходы могут влиять на отбор. Сделка, открытая 30 апреля и закрытая 2 мая, ещё не имеет известного реализованного результата. Её поздний итог нельзя незаметно включать в раннюю настройку.
| Этап | Период | Чистый итог | Назначение |
|---|---|---|---|
| Разработка | Январь–март | +12R | Создать правила-кандидаты |
| Отбор | Апрель | +3R | Выбрать и зафиксировать правило |
| Отложенная проверка | Май–июнь | −2R | Оценить фиксированное правило |
Увеличить схему- Разработка: 12 R
- Отбор: 3 R
- Отложенная проверка: -2 R
Почему пропуск одной свечи на границе не устраняет утечку исходов
Пропуск одной свечи около границы не устраняет автоматически утечку от сделки, метка исхода которой охватывает несколько дней. Проверьте доступность фактического целевого значения, используемого при настройке. Не выбирайте длину исключения после выяснения, какой вариант делает проверочный период прибыльным.
Перед решением
- Запишите момент фиксации и критерии принятия.
- Проверьте доступность меток исходов на каждой границе.
- Настраивайте обучаемую предобработку только на разрешённых данных.
- Фиксируйте каждый просмотр и изменение правил.
- Публикуйте неудачные финальные тесты отдельно от разработки.
Проверьте понимание
Исследователь оценивает среднее и дисперсию масштабировщика по январю–июню, затем обучается на январе–марте и тестирует май–июнь. Сохраняется ли нетронутый тест при разделении после масштабирования?
Показать ответ с объяснением
Нет. Информация будущего распределения уже вошла в масштабировщик. Настройте обучаемую предобработку на разрешённых данных, зафиксируйте её и примените к более поздним наблюдениям. Затем повторите оценку по протоколу, который отмечает уже просмотренные данные.
Источники и дополнительное чтение
Продолжить с Athenum
Из блога Athenum
Survivorship bias в бессрочных фьючерсах: 172 из 571 годового контракта Bybit уже нет
Похожие уроки
- Пересекающиеся сделки: двадцать результатов могут отражать четыре эпизода
20 сделок вокруг 4 новостей могут содержать всего 4 фазы рынка. Оцените пересечения периодов удержания до оценки значимости бэктеста.
- Изменения торговой гипотезы: сохраните исходный план и его версии
Фиксируйте изменения гипотезы, не перезаписывая исходный план. Более широкий стоп поднял риск с 40 до 70, поэтому каждой правке нужны своё обоснование и время.