Тесты на переобучение: дефлированный 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 конфигураций

На что отвечает каждый тест

Статистики блока Gauntlet, их входные ряды и пороги для чтения
СтатистикаВход и методПорог
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. Это отказ делать вывод, а не измерение плохой стратегии.

Прохождение всех тестов — это утверждение о выборке; это не обещание результата вживую.

Эта страница на других языках

Частые вопросы

Почему PBO показан как «—»?
В сетке была единственная конфигурация либо для матрицы оказалось меньше 8 дней сессий. PBO нужны минимум две конфигурации и достаточно непрерывных блоков, чтобы разделить их пополам.
Почему DSR ниже PSR?
PSR сравнивает с нулём, а DSR — с тем Sharpe, которого достигла бы лучшая из N случайных конфигураций. С ростом числа попыток или разброса Sharpe по сетке этот эталон поднимается, а DSR падает.
Воспроизводимы ли результаты перестановок?
Да. Генератор — тот же mulberry32, что и у движка проп-фирм, по умолчанию с зерном 0, поэтому одни и те же сделки дают одни и те же p-значение и процентили при каждом прогоне.