Условное распределение IR: за пределами одной точки
Суть идеи
Автор атакует стандартную практику: взять стратегию, посчитать один IR (или Sharpe) за весь период — и на этом остановиться. Проблема в том, что единственная точка выбрасывает всю информацию о том, как этот IR распределён во времени, насколько он стабилен и при каких условиях он вообще положителен.
Вместо этого предлагается моделировать IR как случайную величину с помощью GAMLSS (Generalized Additive Models for Location, Scale and Shape) и конкретно ZAGA-распределения (Zero-Adjusted Gamma). ZAGA умеет работать с данными, у которых есть точечная масса в нуле — то есть периоды, когда стратегия вообще не торгует или показывает ровно ноль. Это честнее, чем натягивать нормальное распределение на такой ряд.
Ключевой сдвиг: IR рассматривается не как константа, а как функция ковариат — рыночного режима, волатильности, времени года и т.д. Условное распределение IR даёт вероятностный ответ: «при текущих условиях X, каков диапазон ожидаемых IR и насколько вероятно, что он положителен?»
Применимость к крипте
Для трейдера BTC/ETH опционами это методология попадает в болевую точку: большинство наших стратегий (VRP-carry, skew-торговля, GEX-сигнал) имеют выраженную режимную зависимость. В низковолатильном боковике VRP-carry работает, в spike-режиме — нет. Стандартный Sharpe за 3 года это смешивает в одну кашу.
Практически: берём rolling IR нашей стратегии (окно 30–60 дней), добавляем ковариаты — ATM IV, VIX, funding rate, реализованная волатильность — и фитируем GAMLSS/ZAGA. На выходе получаем: при каких значениях ковариат стратегия статистически жива, а при каких — нет. Это режимный фильтр с вероятностной интерпретацией, а не просто «если VIX > 30, выходим».
Замена/адаптация: вместо IR можно использовать Deflated Sharpe или Calmar — суть метода не меняется. ZAGA особенно уместна для стратегий с принудительными паузами (например, когда GEX-сигнал не даёт входа неделями).
Тестируемо ли
В нашем bt_engine есть rolling-z и walk-forward — это фундамент. Добавить GAMLSS сложнее: нужна R-библиотека gamlss или Python-аналог (пока слабее). Реализуемо через rpy2 или вручную через statsmodels с кастомной likelihood. Данные есть: P&L-ряды из любого нашего бэктеста плюс наши макро-ряды как ковариаты. Честно: полноценный GAMLSS-фит потребует ~200+ независимых rolling-окон, что при дневных данных BTC достижимо с 2018 года, но на ETH-опционах история короче.
Сомнения
Главный риск — переподгонка на ковариатах. GAMLSS гибкая модель: при желании можно объяснить любой исторический IR любым набором переменных. Автор не показывает OOS-результаты в аннотации, и это тревожно. Второй риск: ZAGA предполагает определённую форму распределения IR — если реальный ряд имеет тяжёлые хвосты (а у крипты они есть), гамма-семейство может недооценивать хвостовые события. Третье: малое число независимых режимов в крипто-истории (2–3 полных цикла) делает любую режимную модель статистически хрупкой.
Следующий шаг
Взять rolling 30-дневный IR нашей VRP-стратегии (BTC ATM IV минус реализованная волатильность, дельта-хедж), добавить ковариаты ATM IV и funding rate, прогнать GAMLSS/ZAGA walk-forward с обучением на первых 60% и тестом на оставшихся 40%. Сравнить условный P(IR > 0) как режимный фильтр против наивного порога по волатильности — посмотреть, добавляет ли вероятностная рамка реальный edge или это просто красивая обёртка.
Результаты тестов
Проверено на наших данных до публикации (2026-09-05) — повторили конструкцию работы на BTC и ETH: 77 фолдов по 40 дней с 2017 года, аналог SVMP-стратегии на тех же семи индикаторах, метрика IR по формуле автора, ZAGA-GAMLSS с ковариатами режима, шесть квантильных точек и параметрический бутстреп. Таблица автора воспроизводится один в один — у стратегии, которая проигрывает удержанию по Sharpe. И ровно так же она воспроизводится у случайного гейта и в мире с уничтоженной предсказуемостью. «Режимный разворот доминирования» — тождество обрезанной метрики и ковариат, посчитанных внутри того же фолда.*
Провенанс. Работа открыта (arXiv 2606.31251), pdf прочитан целиком: S&P 500 2002–2025, 146 фолдов по 40 дней, стратегия — полиномиальный SVM на семи техиндикаторах с сигналом +1/0/−1 по квантилям 40/60, метрика фолда IR* = (max{r̄, 0})² / (σ̂ · MDD), ковариаты — накопленная доходность рынка внутри фолда (MOM) и его волатильность внутри фолда (RV), пул-модель ZAGA с дамми стратегии. Результат автора: при низком и отрицательном MOM стратегия доминирует над удержанием (p̂1 = 1.000 от Min до Mean, «ни одна реплика из 9 999»), при максимальном MOM доминирует удержание (p̂1 = 0.000). Карточка предлагала VRP-стратегию с IV и фандингом в ковариатах — ряд IV у нас с 2025 года, на 40-дневных фолдах это тринадцать наблюдений; не тестировали.
Стенд и предрегистрация
BTC и ETH, дневные Binance с августа 2017 (перп со спот-бэкфиллом), фандинг знаково, фолды по 40 дней без перекрытия, обучающее окно 160 дней перед каждым. Стратегии: S1 — аналог SVMP: kernel ridge с полиномиальным ядром работы на её же семи индикаторах (отклонение от SMA-15, MACD-сигнал, стохастик fastK/fastD/slowD, RSI-14, Williams %R), min-max по обучению, сигнал +1/0/−1 по квантилям 40/60 обучающего прогноза (SVM-регрессии в нашем окружении нет — то же ядро, та же цель); S2 — наш трендовый ансамбль long/flat как настоящая тайминг-стратегия; S3 — двести случайных гейтов с частотами S1 (около 36% лонг, 16% вне рынка, 48% шорт) — механический контроль; удержание — бенчмарк. IR по формуле (4)–(5), ZAGA-GAMLSS по спецификации автора (лог μ и логит ν — на дамми, MOM, RV и взаимодействиях, лог σ — на дамми), оценка максимального правдоподобия, ΔE = E(IR_SIG) − E(IR*_BH) в шести квантильных точках, p̂1 из параметрического бутстрепа (2000 реплик). Наше добавление — те же модели на ковариатах предыдущего фолда (то, что известно до сделки) и непараметрическая доля фолдов, где стратегия обошла удержание, в зависимости от режима перед фолдом. Всё зафиксировано до прогона.
Таблица автора воспроизводится — у проигрышной стратегии
S1 на BTC имеет Sharpe −0.43 против +0.56 у удержания, на ETH −0.42 против +0.45. И вот что показывает конструкция автора при ковариатах внутри фолда:
| ΔE = E(IR_S1) − E(IR_BH), BTC | Min | Q1 | Median | Mean | Q3 | Max |
|---|---|---|---|---|---|---|
| ΔE | +0.0097 | +0.0055 | +0.0039 | +0.0032 | +0.0001 | −0.0230 |
| ν̂ удержания (масса в нуле) | 1.00 | 1.00 | 0.12 | 0.00 | 0.00 | 0.00 |
| p̂1 | 1.000 | 1.000 | 1.000 | 1.000 | 0.530 | 0.000 |
У ETH то же: p̂1 = 1.000, 1.000, 0.999, 0.989 от Min до Mean и 0.000 при Max. Это в точности «momentum-conditioned performance reversal» работы, включая ν̂_BH → 1 при Min — только у стратегии, которая за девять лет потеряла деньги.
Почему: это тождество
IR обрезан в нуле: фолд с неположительной средней доходностью даёт ровно ноль. Накопленная доходность рынка внутри фолда — это и есть доходность удержания за фолд. Значит при MOM ≤ 0 IR_BH = 0 по определению — у нас в 97% таких фолдов (остаток — вол-драг и фандинг). Любая стратегия, которая хоть иногда стоит вне рынка или в шорте, в таких фолдах «доминирует» автоматически; при максимальном MOM полностью длинное удержание обязано выиграть у чего угодно с экспозицией меньше единицы.
Двести случайных гейтов с частотами S1 дают «разворот» (ΔE > 0 при Min и ΔE < 0 при Max) в 89% случаев на BTC и в 98% на ETH; p̂1(Min) ≥ 0.95 у 100% гейтов, p̂1(Max) ≤ 0.05 у 83% и 98%. Мир знаковой рандомизации, где предсказуемость уничтожена, а волатильность сохранена, даёт ту же таблицу. «Ни одна реплика из 9 999» — свойство ν̂_BH → 1, а не стратегии.
Режим, известный до фолда, ничего не предсказывает
Единственный содержательный вопрос: предсказывает ли режим, который виден до начала фолда, кто выиграет в фолде. Те же модели на MOM и RV предыдущего фолда:
| P(стратегия обошла удержание по IR*) | после фолда с MOM < 0 | после фолда с MOM > 0 | разница, 95% ДИ |
|---|---|---|---|
| S1, BTC | 0.26 (n = 35) | 0.39 (n = 41) | −0.13 [−0.34, +0.07] |
| S1, ETH | 0.36 (n = 36) | 0.35 (n = 40) | +0.01 [−0.20, +0.22] |
| S2 (тренд long/flat), BTC | 0.06 | 0.07 | −0.02 [−0.12, +0.09] |
| S2, ETH | 0.11 | 0.00 | +0.11 [+0.03, +0.22] |
| случайные гейты, медиана | 0.00 [−0.22, +0.12] |
ZAGA на ex-ante ковариатах для S1 даёт ΔE < 0 во всех точках, кроме Max (удержание лучше — как и по Sharpe). Единственный намёк — трендовый ансамбль на ETH: после медвежьего фолда он обходит удержание в 11% случаев против 0% после бычьего; при базовой доле побед 6–7% (long/flat в медвежьем фолде стоит вне рынка, и обе стратегии получают ноль — «победа» редка по построению) это тридцать шесть фолдов и один намёк, не правило.
Санитария
IR одного фолда пересчитан руками; ZAGA-оценка восстанавливает известные μ, σ, ν и эффект дамми на симулированных данных в пределах 25% и правильные знаки эффектов; сигнал фолда не зависит от цен после его конца, обучающее окно кончается до фолда; тождество «IR удержания = 0 ⇔ средняя ≤ 0» выполняется точно по ряду с фандингом; при идентичных стратегиях p̂1 ≈ 0.5 в невырожденных точках, а при ν → 1 все бутстреп-выборки равны нулю и ничьи дают p̂1 → 1 — тот же артефакт, что у автора в точке Min; повторный прогон детерминирован.
Что это значит и где копаем дальше
- Аппарат исправен, дизайн вывода круговой. GAMLSS/ZAGA честно описывает распределение IR* по режимам; но режим, посчитанный внутри того же фолда, что и метрика, «объясняет» доминирование по определению. Условное распределение имеет смысл только на ковариатах, известных до фолда, — и там у обеих наших стратегий его нет.
- Метрика. Обрезка в нуле превращает IR* удержания в индикатор знака рынка; любая необрезанная метрика (Sharpe фолда, лог-доходность) убрала бы половину «эффекта». Стоит проверить и это.
- Трендовый long/flat на ETH после медвежьего фолда (0.11 против 0.00) — единственная строка, которую имеет смысл посмотреть на большем числе фолдов; вернёмся к ней с недельными фолдами.
- Читатели с собственной стратегией и своим определением режима — пришлите; прогоним через тот же стенд с контролем случайных гейтов и опубликуем с указанием автора.