Тесты на переобучение: дефлированный Sharpe, PBO, перестановки и устойчивость
Senzoukria измеряет, переживает ли результат бэктеста число испытанных конфигураций: вероятностный и дефлированный коэффициенты Sharpe, вероятность переобучения бэктеста (CSCV), перестановочный тест с переворотом знака, распределение просадки по перетасовке порядка и проверка устойчивости параметров. Всё считается локально после автоматического бэктеста.
Senzoukria · Документация · Обновлено: сентябрь 2026
Где найти
- Где
- Реплей → «Автоматический бэктест» → результат → блок Gauntlet и строка walk-forward «Дефлированный Sharpe — вероятность настоящего преимущества»
- Источники
- Bailey и López de Prado (2014) для PSR/DSR; Bailey, Borwein, López de Prado и Zhu (2015) для PBO
- Перестановки
- 10 000 испытаний, зерно 0, детерминированно
- PBO
- По умолчанию 16 непрерывных блоков, ≥ 8 дней сессий, ≥ 2 конфигураций
На что отвечает каждый тест
| Статистика | Вход и метод | Порог |
|---|---|---|
| PSR | Дневной P&L выбранного пути; вероятность того, что истинный Sharpe выше 0, с поправкой на длину выборки, асимметрию и эксцесс; 0 при менее чем 5 наблюдениях | Справочно |
| DSR | Тот же ряд, но эталоном служит Sharpe, ожидаемый от лучшей из N конфигураций без преимущества, масштабированный дисперсией Sharpe по сетке | > 0,95 для прохождения (отсекающий) |
| p-значение | P&L по сделкам; знак каждой сделки случайно переворачивается 10 000 раз; p = (1 + число ≥ наблюдаемого) / (1 + n) | < 0,05 для прохождения (отсекающий) |
| PBO | Матрица «день сессии × конфигурация»; для каждого разбиения пополам из 16 блоков — ранг вне выборки лучшей конфигурации внутри выборки | < 0,5 для прохождения (рекомендательный) |
| Испытано конфигураций | Число комбинаций сетки (N) — весь перебор, а не только оставленные | Питает DSR |
| Просадка: 95 % порядков дают лучше | P&L по сделкам, перетасованный 10 000 раз; 5-й процентиль максимальной просадки | Справочно |
| Устойчивость параметров | Sharpe по сетке у выбранной конфигурации против соседей на один шаг по одной оси | плато при медианном отношении ≥ 0,7 и без отрицательных соседей; пик при < 0,4 или отрицательном соседе |
Строка walk-forward
Независимо от Gauntlet у результата walk-forward есть собственный дефлированный Sharpe (lib/quant/overfit.ts), вычисляемый по сделкам вне выборки. Он показывает Sharpe на сделку против порога, который дал бы один лишь отбор при таком числе испытанных конфигураций и таком числе сделок вне выборки, и читает вероятность одним словом: устойчиво при ≥ 0,95, хрупко между 0,5 и 0,95, шум ниже 0,5.
Две реализации различаются намеренно. Строка walk-forward работает с доходностями по сделкам и берёт в качестве разброса стандартное отклонение всех испытанных Sharpe по фолдам. Gauntlet работает с P&L по дням сессий и берёт разброс из сетки на полном периоде. У прогона без перебора N = 1 и нулевая дисперсия, поэтому DSR сводится к PSR относительно нуля — именно так и должно быть, когда ничего не отбиралось.
Как этим пользоваться
- Сначала читайте p-значение: если тест с переворотом знака не отличает Sharpe от случайности, остальное не имеет смысла.
- Затем DSR: высокий сырой Sharpe при DSR ниже 0,95 означает, что добрую часть результата объясняет число конфигураций. Сузьте перебор или удлините период.
- PBO около 0,5 — это случайность; выше — выбор лучшей конфигурации внутри выборки активно вредит вне её.
- На графике устойчивости предпочитайте плато пику: правило, работающее вокруг своих параметров, переживает самостоятельный сдвиг рынка на шаг.
Ограничения и подводные камни
Эти тесты вносят поправку на отбор и ненормальность внутри той выборки, которую вы им дали. Они не видят данных, которые никогда не загружались, стратегии, отредактированной после плохого вердикта, и второго перебора, запущенного на тех же барах. Каждый повторный прогон — это ещё одна попытка, о которой счётчик не знает.
Вырожденный P&L (менее двух сделок или нулевое стандартное отклонение) возвращает p-значение 1 и Sharpe 0. Менее пяти дневных наблюдений возвращают PSR = 0. Это отказ делать вывод, а не измерение плохой стратегии.
Прохождение всех тестов — это утверждение о выборке; это не обещание результата вживую.
Связанные страницы
- Вердикт Gauntlet
- Перебор параметров
- Монте-Карло по счетам
- Квант-трейдинг для начинающих
- Как протестировать торговую стратегию
Эта страница на других языках
Частые вопросы
- Почему PBO показан как «—»?
- В сетке была единственная конфигурация либо для матрицы оказалось меньше 8 дней сессий. PBO нужны минимум две конфигурации и достаточно непрерывных блоков, чтобы разделить их пополам.
- Почему DSR ниже PSR?
- PSR сравнивает с нулём, а DSR — с тем Sharpe, которого достигла бы лучшая из N случайных конфигураций. С ростом числа попыток или разброса Sharpe по сетке этот эталон поднимается, а DSR падает.
- Воспроизводимы ли результаты перестановок?
- Да. Генератор — тот же mulberry32, что и у движка проп-фирм, по умолчанию с зерном 0, поэтому одни и те же сделки дают одни и те же p-значение и процентили при каждом прогоне.