На этой странице
Кратко
- Другие названия
- Множественные проверки, смещение отбора, p-hacking
- 20 бесполезных правил при 5 %
- 64 % шанс, что хотя бы одно выглядит значимым
- Формальные тесты
- Reality Check Уайта (2000), SPA-тест Хансена (2005), дефлированный Шарп, PBO
- В Senzoukria
- Перебор ограничен 400 комбинациями; DSR считает всю сетку
Почему лучший из многих раздут
Проверьте одно правило без преимущества на уровне значимости 5 % — вероятность ложного срабатывания равна 5 %. Проверьте двадцать независимых правил без преимущества, и вероятность, что хотя бы одно прошло, равна 1 − 0,95²⁰ ≈ 64 %. Статистика правила-победителя подлинна для этого правила на этих данных, но процесс, который его нашёл, нашёл бы что-нибудь в любом случае. Максимум из множества шумных результатов смещён вверх по построению; это свойство максимумов, а не рынков.
Халберт Уайт формализовал тест для этой ситуации в 2000 году — Reality Check, который сравнивает лучшее правило с распределением лучшего из множества правил при гипотезе отсутствия преимущества. Тест превосходящей предсказательной способности Питера Хансена (2005) его уточнил. Дефлированный коэффициент Шарпа и вероятность переобучения бэктеста подходят к той же проблеме с других сторон.
Испытания, которые никто не считает
- Смена окна сессии, типа бара или инструмента после первого взгляда на результаты.
- Добавление фильтра потому, что у кривой эквити был плохой месяц, и его сохранение.
- Старт от идеи, которая уже работала в чужом бэктесте на том же периоде.
- Повторный запуск walk-forward с другим критерием отбора, пока эффективность не станет приемлемой.
- Каждое из этого — испытание. Формальная поправка работает лишь тогда, когда счёт их включает.
В Senzoukria
Перебор параметров и walk-forward автоматического бэктеста отказывают сеткам свыше 400 комбинаций, а помощнику по бэктестам предписано держать переборы меньше 100. Walk-forward сообщает дефлированный Шарп своих сделок вне выборки, где число испытаний — это число конфигураций, из которых выбирал отбор. Gauntlet перезапускает всю сетку на полном периоде, считает дефлированный Шарп с N, равным всей сетке, а не сохранённым конфигурациям, оценивает вероятность переобучения бэктеста, когда доступно хотя бы восемь сессионных дней, и добавляет перестановочный тест коэффициента Шарпа. Чего программа видеть не может — так это истории ваших прежних запусков: сетка, запущенная после десяти брошенных сеток, считается одним набором испытаний.
Практические контрмеры
- Запишите гипотезу, сетку и критерий отбора до того, как смотреть результаты.
- Ведите исследовательский журнал каждого испробованного варианта, включая брошенные.
- Отложите финальный период, которого не касалось ни одно решение, и используйте его один раз.
- Предпочитайте правила, у которых соседи по сетке тоже работают, изолированной лучшей клетке.
См. также
В этом же разделе
- Смещение по результату
- Смещение к недавнему
- Снимок стакана
- Снятая против исполненной
- Сложенные дисбалансы
- Снятая ликвидность
- Слабый максимум / минимум
- Соотношение лонг/шорт
Эта страница на других языках
Частые вопросы
- Перебор данных — это то же, что переподгонка?
- Они тесно связаны. Переподгонка описывает правило, подстроенное под случайности одной выборки. Перебор данных описывает процесс отбора: пробовать множество правил или вариантов и оставлять лучший. Перебор — один из главных способов производить переподогнанные правила.
- Убирает ли walk-forward смещение от перебора данных?
- Он уменьшает его для параметров, выбираемых внутри процедуры, потому что каждый выбор оценивается на данных, которых он не видел. Он не исправляет выборов, сделанных вне неё: семейства правил, инструмента или числа walk-forward, запущенных до того, о котором вы сообщаете.