Ошибки бэктеста: проверка стратегии без знания будущего · 4 / 5
Сохраняйте проигравшие варианты подбора параметров
Лучший результат поиска — не тот же эксперимент, что правило, установленное до просмотра данных. Честная исследовательская запись включает проигравшие альтернативы.
Athenum7 минОбновлено:
Оптимизация параметров: каждый вариант — в журнал
Пять длин окна, четыре порога входа и три выхода создают шестьдесят конфигураций на одной истории. Пусть лучший чистый результат +18R, а медиана −2R. Расчёт победителя может быть верным и всё же слабо подтверждать устойчивое преимущество: процедура специально выбирает крайний результат.
Храните параметры, версию данных, период, издержки, исключения, критерий выбора и результат каждого опыта. Смена актива, удаление плохого месяца, другой таймфрейм или новая метрика также изменяют поиск. Финальный скрипт редко отражает отвергнутые решения, поэтому ведите отдельный журнал экспериментов.
Множественное тестирование: опыты на общих данных зависимы
Только как учебная математическая модель: у шестидесяти независимых тестов при нулевой гипотезе с вероятностью ложноположительного исхода 5 % каждый вероятность хотя бы одного такого исхода равна 1 − 0,95^60 ≈ 95,39 %. Это не вероятность того, что выбранная стратегия ложна. Общие наблюдения делают варианты параметров зависимыми, а для примера +18R статистическая проверка гипотезы вообще не определена.
Проверяйте соседние значения параметров и отдельные особенно влиятельные сделки. Изолированный пик требует внимания, но сам по себе не доказывает программную ошибку. Широкая устойчивая область полезна для оценки чувствительности, но не заменяет проверку на наблюдениях, не влиявших на поиск.
Пример: окно с +18R между соседями с −3R и −2R
Три соседние длины окна дают −3R, +18R и −2R при остальных одинаковых гипотетических допущениях. Сохраните все результаты. Прежде чем предлагать причинную историю, проверьте, не объясняется ли пик несколькими исполнениями, обработкой границ или аномалией данных.
Исходная сетка содержит 5 × 4 × 3 = 60 конфигураций. Два заранее определённых сценария издержек дают 120 строк «конфигурация/сценарий». Это не 120 независимых тестов. Выбор более дешёвой модели издержек ради улучшения победителя — ещё одно исследовательское решение, которое необходимо раскрыть.
| Длина окна | Чистый итог |
|---|---|
| 18 | −3R |
| 20 | +18R |
| 22 | −2R |
Увеличить схему- Окно 18: -3 R
- Окно 20: 18 R
- Окно 22: -2 R
Ошибка: проверка устойчивости, использованная для выбора публикуемого правила
Второй прогон не становится независимым от названия «проверка устойчивости», если его результат определяет публикуемое правило. Заранее задайте роль каждого сценария и сохраняйте неудачные опыты, а не исключайте их молча из общего числа.
Перед решением
- Сохраняйте каждую конфигурацию и результат.
- Записывайте изменения вне сетки параметров.
- Разделяйте стресс-сценарии и критерии отбора.
- Изучайте соседние значения и влиятельные сделки.
- Резервируйте непросмотренные данные до поиска.
Проверьте понимание
Вы удваиваете пять исходных длин окна до десяти, сохраняя четыре порога, три выхода и два сценария издержек. Сколько строк получится и независимы ли они?
Показать ответ с объяснением
Получится 10 × 4 × 3 × 2 = 240 строк «конфигурация/сценарий». Они не становятся независимыми автоматически: у них общие рыночные наблюдения и компоненты правил. Число строк документирует поиск, но не определяет эффективный размер независимой выборки.
Источники и дополнительное чтение
Продолжить с Athenum
Из блога Athenum
Survivorship bias в бессрочных фьючерсах: 172 из 571 годового контракта Bybit уже нет
Похожие уроки
- Бутстрэп сделок: сохраняйте зависимые блоки при повторной выборке
Ресэмплинг отдельных сделок разрушает общий дневной шок. Сравните бутстрэп по сделкам и по дням: 10 000 выборок — всё ещё два наблюдаемых дня.
- Проверьте знаменатель показателя успешности графической фигуры
100 кандидатов, 60 входов, 24 победы. Разделите кандидатов, входы, касания целей и прибыльные сделки до расчёта винрейта.