Иван Недомолков
Иван Недомолков личный блог
Вчера в 14:02

Я построил платформу, которая забраковала все 231 мои торговые стратегии. Это лучший результат проекта

Полгода я строил себе персональную платформу для проверки торговых идей: 30 лет данных по американским акциям, генератор стратегий, статистический гейт из семи тестов. Хотел найти свой грааль, как все мы.

Прогнал через неё 231 стратегию. Среди них были красавицы с Sharpe 1.49 на истории — такие в телеграм-каналах продают за деньги.

Строгую проверку не прошла ни одна.

Сначала я расстроился. Потом понял, что именно ради этого всё и строил. Сейчас расскажу, как выглядит проверка, после которой от 231 стратегии не остаётся ничего, покажу, кто всё-таки выжил, — и почему две мои любимые гипотезы умерли особенно красиво.

Почему ваш бэктест вам врёт

Не «может врать» — врёт. Четыре стандартные дырки, которые есть почти в каждом бэктесте «на коленке»:

1. Переподгонка. Переберите достаточно параметров — какая-нибудь комбинация нарисует красивую эквити. Случайно. Монетка, подброшенная 120 раз, тоже иногда выдаёт серию из десяти орлов. 2. Ошибка выжившего. «Тестирую на акциях S&P 500» — а состав индекса чей? Сегодняшний. В нём нет Enron, Lehman и ещё пары сотен покойников. Ваша стратегия торгует только теми, кто гарантированно доживёт до 2026 года. Неплохое преимущество, да? 3. Подглядывание в отчётность. Квартальная прибыль «известна» бэктесту в последний день квартала. В реальности — через несколько недель, после публикации отчёта. Фундаментальные стратегии на этом ломаются пополам. 4. Ценовая доходность вместо полной. Сравнили эквити с графиком S&P — а дивиденды индекса кто считать будет? Это 1,5–2 % годовых форы вашей стратегии на ровном месте.

Сила воли от этого не спасает. Спасает только схема данных, в которой ошибиться невозможно.

Скучный фундамент, без которого всё остальное — гадание

Прежде чем проверить первую стратегию, пришлось построить:

  • 16,9 млн дневных котировок, 5 264 тикера NYSE/NASDAQ, с 1996 года — плюс 15,4 млн сырых, нескорректированных цен для честного total return;
  • исторические составы S&P 500 на каждую дату — какие бумаги входили в индекс именно в тот день прошлого;
  • 1 083 делистинга из SEC Form 25 — чтобы покойники оставались в выборке;
  • 2,8 млн фундаментальных записей из SEC EDGAR — привязанных к дате публикации отчёта, а не к отчётному периоду;
  • автотест, который сверяет «сырая цена + дивиденды = полная доходность» с точностью 0,0004 % годовых.

Да, это самая скучная часть проекта. И самая важная: всё интересное ниже существует только потому, что данным можно верить.

Я построил платформу, которая забраковала все 231 мои торговые стратегии. Это лучший результат проекта

Гейт: семь кругов ада для кандидата

Стратегия считается рабочей, только если на walk-forward разбиении (скользящие окна «обучение → тест» по всей 30-летней истории, 14–18 фолдов) проходит всё это:

  • Sharpe, CAGR и просадка лучше каждого из трёх бенчмарков — S&P 500, NASDAQ, Dow — одновременно;
  • превосходство по Sharpe статистически значимо (тест Джобсона–Корки, p < 0.05);
  • bootstrap-интервалы (блочный, 5 000 репликаций) не задевают ноль;
  • Deflated Sharpe Ratio выше порога — о нём ниже, это гвоздь программы;
  • плюс минимум в 12 из 15 ячеек «режим волатильности × период»;
  • подтверждение на данных, которые модель вообще не видела;
  • минимум 60 независимых наблюдений вне обучающей выборки.

Про Deflated Sharpe — самое важное, что я вынес из всей затеи. Интуиция такая: чем больше вариантов вы перепробовали, тем выше планка для лучшего из них. Нашли «грааль» с пятой попытки — одно дело. Со сто двадцатой — вы почти наверняка нашли красивый шум. У меня счётчик попыток честно рос вместе с гридом: 30 → 48 → 96 → 120, и каждая новая пачка экспериментов ужесточала планку самой себе.

Много ли вы видели продавцов сигналов, которые говорят, сколько вариантов перебрали до того, как нашли «рабочий»?

Драма в цифрах

По «простому» walk-forward — точечные оценки против одного бенчмарка, как в 90 % публичных бэктестов — у меня было 25 прошедших стратегий. Четверть сотни граалей! Я уже мысленно выбирал яхту.

По строгому гейту из тех же кандидатов прошло: ноль.

Самый обидный случай: value-стратегия по P/E, in-sample Sharpe 1.49. Ноль пройденных фолдов. Математика жестока: при моём количестве наблюдений, чтобы пройти Deflated Sharpe, кандидату нужен честный Sharpe примерно 1.7+. Всё, что ниже, — неотличимо от удачи.

Я построил платформу, которая забраковала все 231 мои торговые стратегии. Это лучший результат проекта

Bottleneck shift: находка, ради которой стоило страдать

Когда у тебя тысячи fold-отчётов с машинно-читаемыми причинами отказов, сами отказы становятся данными. Частотный анализ показал штуку, которую я нигде не встречал в явном виде — узкое место мигрирует в зависимости от схемы взвешивания портфеля:

  • равновзвешенные портфели валятся на статистике (60,7 % отказов — DSR и компания): превосходство над индексом *есть*, но доказать, что оно не случайно, — нельзя;
  • взвешенные по капитализации статистически чисты (блок статкоррекции падает до 16,4 %), но валятся на самом превосходстве (74,5 %): взвесил по капе — получил индекс. Обгонять нечем.

Бесплатного обеда через схему взвешивания не существует. Проверено на 231 кандидате, извините.

Как красиво умерла моя лучшая гипотеза

В какой-то момент родилась спасительная идея: «Сравнивать равновзвешенный портфель с cap-weighted индексом нечестно! Возьму равновзвешенный бенчмарк — RSP (S&P 500 Equal Weight ETF) — и всё сойдётся».

Залил 5 788 строк истории RSP. Прогнал counterfactual. Против RSP стало… хуже, чем против обычного S&P 500. Равновзвешенный индекс сам собирает премию диверсификации и ребалансировки — обыграть его концентрированным факторным портфелем ещё труднее.

Гипотеза прожила один вечер. И это, пожалуй, главный кайф платформы: гипотезы умирают за вечер и с некрологом, а не живут годами в самообмане и просаженных депозитах.

После четырёх таких «векторов атаки» я принял скучный взрослый вывод: разрыв фундаментален. Индекс эпохи мегакэпов — сам по себе momentum-машина с ~30 % веса в семи компаниях, и концентрированные факторные портфели проигрывают ему системно. Остановить эту ветку исследований — тоже результат. Может быть, главный.

Кто выжил

Единственный класс, показавший устойчивость, — гибридная momentum-reversion стратегия с адаптацией под режим рынка. Режимов пять — от BULL до BEAR_PANIC, размечаются по комбинации трендов S&P, уровня VIX, соотношения SPY/TLT и кредитного стресса HYG/LQD, с защитой от дребезга переключений.

Цифры выжившего: на кризисе 2007–2010 — Sharpe 1.21 при CAGR +16 %. Просадка на 28-летнем окне −20 % против −57 % у S&P 500 в 2008-м. Не грааль. Но честно и стабильно.

А теперь мой любимый эпизод всего проекта. Платформа однажды поймала на приукрашивании собственную лучшую стратегию: в секторных данных нашлась ошибка выжившего, и после исправления её Sharpe сдулся с 0.77 до 0.49. Без драм, без оправданий — просто циферка стала честной. Ради инструмента, который режет правду даже про себя, всё и затевалось.

Три вопроса, которые убивают 90 % продавцов сигналов
  • На каком составе индекса тестировалось — сегодняшнем или историческом, на каждую дату?
  • Сколько вариантов было перепробовано до этого «рабочего»? Deflated Sharpe с учётом этого числа считали?
  • Доходность полная или ценовая?

По моему опыту — до третьего вопроса разговор не доживает.

А если строите своё: закладывайте честность в схему данных, а не в силу воли. Воля сдаётся первой, проверено.


Пара слов про кухню, если интересно: стек — гибрид, от которого у айтишников дёргается глаз: headless-база на 1С (сто четыре объекта, ноль форм, всё через HTTP-API) + Python (vectorbt, pandas) + LLM-агент в Telegram, через которого я запускаю бэктесты и смотрю отчёты. Ордера уходят брокеру только после ручного подтверждения кнопкой в телеге — human-in-the-loop, никакой autopilot не разорит депозит, пока я сплю. Подробный разбор архитектуры с картинками: tezbase.kz/keysy/stratlab-kvant-platforma-na-1c

Я построил платформу, которая забраковала все 231 мои торговые стратегии. Это лучший результат проекта

Дисклеймер: всё выше — статистические наблюдения из личного исследовательского проекта, а не инвестиционные рекомендации. Платформа работает в режиме paper-trading.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
73 Комментария
  • wistopus
    Вчера в 14:18
    построил платформу, которая забраковала все 231 мои торговые стратегии
    стратегию на 365 дней  в году гонял?....
    как Энвэстору лучше не найти…
  • wistopus
    Вчера в 14:31
    Обогнать рынок на длинном окне почти никому не удаётся
    нашенская задача обогнать текущую инфляцию...
    остальные бенчмарки для истинных любителей гоняться за своей тенью...
  • Байкал
    Вчера в 14:37
    Да смысла нет на истории все это гонять)))
    Ставь свои мартышки на реал.
  • StroyFinSam
    Вчера в 14:46
    не знаю, сколько Вам лет и чем занимаетесь по жизни, но...
    готовая диссертация, однозначно
    Диплом к.ф.-м.наук ещё никому не помешал))
    Удачи!

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн