Бэктест без самообмана
Пошаговый путь: от того, что на самом деле оптимизирует ваш бэктест, до доказательства, что преимущество переживет переобучение, множественное тестирование и реальное исполнение. Читайте сверху вниз — каждая часть опирается на предыдущую.
- 01
Jun 28, 2026#алготрейдингДизайн целевой функции: метрика, которую вы оптимизируете, тайно выбирает вашу стратегию
Чтобы искать "лучшую" стратегию, нужно сначала определить "лучшее" — и этот скаляр тайно выбирает победителя. На синтетических данных с известным edge (600 seeds, T=2000, 80 порогов) наивный per-trade Sharpe коронует лотерею: он выбирает победителя с exposure ниже 5% в 56% seeds и вырождается в 57% случаев — на самом ярком seed 8 сделок дают in-sample Sharpe 21.09, который схлопывается до 0.13 out of sample. Честное исправление почти скучно: измерять на полном таймлайне, который никогда не вырождается (out-of-sample 1.71). Trade-count shrinkage (conf_k) и exposure floor способны доработать per-trade метрику, но даже полностью исправленные они лишь сравниваются с full-timeline Sharpe (1.70 против 1.71) — никогда не превосходят его. Закон Гудхарта в бэктесте, с контролируемой истиной.
- 02
Jul 8, 2026#алготрейдингДоказываем отсутствие look-ahead в мультитаймфреймовых бэктестах: возмущаем будущее, доказываем, что прошлое его не видит
Мультитаймфреймовые бэктесты пропус кают будущее через формирующийся бар старшего таймфрейма, чей финальный close еще не существует. Уверенность нельзя получить одним лишь ревью кода — это надо тестировать. Мы воспроизводим правило closed-bar живого бота один в один, а затем доказываем отсутствие утечки с помощью пробы со сдвинутым будущим: возмущаем каждый будущий бар и проверяем, что каждый прошлый сигнал и сделка побитово не изменились. 25 из 25 проверок паритета, и проба не беззубая.
- 03
Jun 27, 2026#алготрейдингLook-Ahead Bias: как ошибка в один бар фабрикует Sharpe 15 из чистого шума
Контролируемое исследование скрытых look-ahead утечек, которые незаметно раздувают бэктесты. При полном отсутствии реального edge исполнение на баре сигнала фабрикует годовой Sharpe +14.8 из чистого шума; подглядывание индикатора на один бар вперед — +4.8. Таксономия, измеренные величины и как обнаружить каждую утечку до того, как она обойдется вам в деньги.
- 04
Mar 15, 2026#алготрейдингWalk-Forward Optimization: единственный честный тест стратегии
Почему single train/test split не защищает от overfitting, как walk-forward optimization системно проверяет робастность параметров, и почему стратегия с +3342% PnL@ML на 21 параметре — бомба замедленного действия без WFO.
- 05
Mar 12, 2026#алготрейдингPlateau analysis: как отличить робастный оптимум от overfitting
Почему найти лучшие параметры стратегии — только половина работы. Как визуально и количественно отличить устойчивое плато от хрупкого пика, и почему Optuna contour plots — обязательный шаг перед запуском оптимизированной стратегии в продакшен.
- 06
Mar 10, 2026#алготрейдингMulti-symbol валидация: проверяйте стратегию на всех парах
Почему стратегия, оптимизированная на ETHUSDT, может провалиться на альткоинах. Как правильно тестировать по группам пар (blue chips, large caps, шиткоины) и какой cross-symbol robustness score считать достаточным.
- 07
Mar 6, 2026#алготрейдингMonte Carlo Bootstrap: как получить confidence intervals для бэктеста за 10 строк кода
Почему single-point estimate из бэктеста — опасная иллюзия. Как Monte Carlo bootstrap за 2 секунды вычислений даёт 95% confidence interval для PnL и MaxDD, и почему это обязательный шаг перед запуском стратегии в продакшен.
- 08
Jul 1, 2026#алготрейдингProbability of Backtest Overfitting: обыграл ли ваш поиск подбрасывание монеты?
Deflated Sharpe Ratio оценивает победившую стратегию; PBO оценивает сам поиск, который ее выбрал. Combinatorially Symmetric Cross-Validation прогоняет C(16,8) = 12,870 train/test-разбиений по матрице результатов 1000x200 и спрашивает: попадает ли in-sample победитель в нижнюю половину out of sample? Ловушка, которую почти все упускают, — ноль PBO равен 0.5, а не 1. На 200 стратегиях с нулевым edge лучший in-sample годовой Sharpe 1.98 схлопывается до 0.06 out of sample, а PBO = 0.476: подбрасывание монеты, полный оверфит. Заложите реальный edge (годовой Sharpe 2.38) — и PBO падает до 0.001, а in-sample 3.73 сохраняется до out-of-sample 2.34. У сетки moving average на чистом случайном блуждании тоже нет out-of-sample мастерства — PBO 0.463 в среднем по 60 матрицам, статистически неотличимо от нуля, — а на одной представительной матрице мираж особенно нагляден: лучший in-sample Sharpe 2.33 схлопывается до медианного out-of-sample -0.22, PBO 0.573, 63% шанс убытка.
- 09
Jun 29, 2026#алготрейдингDeflated Sharpe Ratio: сколько "победителей" бэктеста переживают множественное тестирование?
Поиск параметров — это машина по производству удачи. На чистом шуме — 1,000 стратегий с нулевым истинным edge — лучший годовой Sharpe в среднем составляет 1.63, а наивный тест значимости фиксирует открытие в 100% случаев. Мы строим контролируемую истину и показываем, что Deflated Sharpe Ratio, haircut Harvey-Liu и Reality Check Уайта восстанавливают честность: доля ложных открытий падает с 1.000 до 0.001-0.057, настоящие edge выше потолка шума сохраняются с power ~1 — и одна реальная ловушка (коррелированные сетки), где сырой DSR передефлирует, а вердикт нужно читать по всей полосе оценок эффективного числа испытаний, а не по одной цифре.
- 10
Mar 7, 2026#алготрейдингBacktest-live parity: почему ваш бот торгует не так, как бэктест
Полная таксономия расхождений между бэктестом и live-торговлей: от slippage и partial fills до рассинхронизации кодовых баз. Архитектурные паттерны для достижения parity, Python-примеры shared core модуля и чек-лист мониторинга в продакшене.
- 11
Jul 9, 2026#алготрейдингЧестный негативный результат: десятки тысяч бэктестов, пять мажоров, никакого робастного edge
Финал арки про поиск и оверфиттинг — и он заканчивается негативным результатом, то есть правильным. Односимвольный поиск на ETHUSDT с двумя таймфреймами нашел конфигурацию на +16.35% out-of-sample и +2.62% на нетронутом holdout; Deflated Sharpe Ratio, учитывающий ~37,000 испытаний, дефлировал ее до 0.00. Кросс-инструментальный проход по пяти мажорам (ETH/BTC/SOL/BNB/XRP, ~1.18M минутных баров каждый) с отбором по медиане out-of-sample добивает окончательно: двойной таймфрейм DSR 0.24 / PBO 0.264, тройной DSR 0.14 / PBO 0.327 — оба не проходят гейты. Чемпион прибылен на 1 из 5 символов и убыточен на остальных. Именно для этого анти-оверфит аппарат и существует: чтобы не дать вам отгрузить лучший из шума как альфу.