Стратегии
ETH Длинная позиция в режиме премии за волатильностный риск на бессрочном контракте Binance USD-M: удерживать ETHUSDT.BINANCE, пока разность между ETH DVOL Deribit и реализованной волатильностью за 7 дней находится в верхней части распределения (30%) за предыдущие 90 дней; выходить, когда она опускается ниже медианы; одно решение в день в 00:00 UTC; вне рынка ~60% времени (1H-бары + deribit_dvol, только длинные позиции, пороги 2)
Итог: Отменено
EthDvolVrpRegimeLong
Сводка по итогам
EthDvolVrpRegimeLong перенесла никогда не измерявшуюся режимную стратегию длинных позиций по премии за риск дисперсии ETH с бессрочного контракта Deribit на бессрочный контракт USD-M Binance. Она открывала длинную позицию, когда разница между подразумеваемой и реализованной волатильностью входила в верхние 30% за предыдущие 90 дней. Бэктест с привязкой к моменту времени дал 64 сделок при коэффициенте Шарпа 0.22 и PF 1.15 — намного ниже коэффициента Шарпа 0.78 из предварительного исследования, — но результат прошёл минимальный порог издержек и проверку бэктеста для перехода к оптимизации. Оптимизация не выявила преимущества вне выборки (коэффициент Шарпа OOS -0.009, PBO 0.63, коэффициент Шарпа на отложенной выборке -0.74 при 3 сделках). Поэтому после 2 итераций аналитик отказался от стратегии как переобученной; также обнаружен возможный артефакт оценки позиции в движке, который нужно проверить отдельно.
Гипотеза
Реализация
Стратегия режима только для длинных позиций на бессрочном контракте ETHUSDT.BINANCE. Раз в UTC день рассчитывается VRP = ETH DVOL Deribit минус годовая реализованная волатильность за 168 часов, используя последнюю завершённую часовую свечу DVOL. Открывает длинную позицию, когда перцентиль VRP относительно предыдущих 90 дневных значений не ниже 0.70, и закрывает её, когда он опускается ниже 0.50. Аварийный стоп -12% по часовым закрытиям закрывает позицию раньше и блокирует повторный вход, пока перцентиль снова не опустится ниже 0.50. Размер позиции — 0.7x номинала капитала.
Результаты верификации
Оставь код как есть. Когда исправят загрузчик, в том же изменении убери смещение -_HOUR_NS. Ещё лучше — пусть загрузчик сам задаёт временные метки, чтобы стратегии не сдвигали их самостоятельно.
Сегодня сдвиг на -1h при чтении DVOL корректен. Я проверил: в dvol_ETH.parquet содержится 48,363 последовательных часовых строк (каждая разница равна 3,600,000 мс). load_deribit_dvol ставит каждой строке метку времени открытия свечи в мс, но хранит цену закрытия свечи, а supp_as_of(ts - 1h) возвращает последнюю полностью завершённую свечу на момент закрытия бара. Однако сдвиг зависит от загрузчика. Если изменить load_deribit_dvol, чтобы он ставил строкам метку времени открытия + 1h, это чтение станет устаревшим на 1h, и никто этого не заметит.
Оставить стоп и размер позиции такими, как зарегистрировано. Аналитику следует сравнить максимальную DD с указанной в гипотезе 41.9% на уровне 1x.
Риск на сделку (L148). Стоп составляет -12% позиции с номиналом 0.7x; проверка выполняется по часовым закрытиям. Поэтому номинальный максимальный убыток на сделку — около 8.4% капитала, а при гэпе цены за стоп — больше. Крупнейший убыток в песочнице составил -$14.7k, около 15% начального капитала. Это выше ориентира 1-2%, но конструкция не приводит к раздуванию потерь из-за реинвестирования: состояние без позиции, одна позиция, фиксированная доля 0.7 x плечо 1.0 без динамического множителя, максимальный валовой объём — 0.7x капитала. В гипотезе также заранее зарегистрированы именно такие размер позиции и стоп.
Изменения не нужны. Просто учитывай это, читая число сделок на отложенной выборке.
min_bars_required составляет 170, но для первого решения также нужны часовые доходности за 168, а затем дневные значения VRP за 90, прежде чем p станет допустимым. Поэтому фактический период разогрева составляет около 97 дней после начала данных. Это несущественно, поскольку решение по-прежнему блокируется условием _p_valid, но сокращает доступную выборку стратегии, у которой и так мало сделок. DVOL начинается 2021-03-24, поэтому первое возможное решение приходится примерно на конец июня 2021, что совпадает с началом периода в предварительном исследовании: 2021-06.
Период тестирования охватывает 834 дней: 25 длинных сделок, PF 1.20, коэффициент Шарпа 0.31 с CI от -1.04 до 1.52 и бета 0.23. Это значительно ниже предварительного исследования: PF 2.0 и коэффициент Шарпа 0.78. В предварительном исследовании использовалось значение DVOL с опережением на один час (строка с меткой времени открытия), поэтому его показатели нельзя считать корректной базой для сравнения. Финансирование не включено в результат (funding_folded=false), поэтому необходимо вычесть финансирование длинной позиции в бессрочном контракте за примерно 40% времени в рынке; на бычьих фазах 2021 и 2024 оно может достигать нескольких процентов в год. Третиль низкой волатильности убыточен: 16%. Ограничивающий фактор — около 60 сделок за весь период, поэтому аналитик должен проверить, соответствует ли число сделок на отложенной выборке минимальному порогу ≥10, прежде чем оптимизировать.
Обзор бэктеста
- Шарп
- 0,22
- Общая доходность
- 29,49%
- Максимальная просадка
- 39,22%
- Всего сделок
- 64
- Доля прибыльных
- 51,6%
- Профит-фактор
- 1,15
Сделки реализуют заявленный механизм: 64 сделок только в длинную позицию (в предварительном исследовании прогнозировалось 65), 37.5% времени в рынке (прогнозировалось около 40%), среднее удержание — 11 дней (прогнозировалась медиана 8), коротких позиций нет. Чтение DVOL с привязкой к моменту времени (supp_as_of(ts-1h)) корректно.
Экономика сделки с большим запасом покрывает затраты: avg_trade_return_pct 1.31% при минимальном уровне затрат 0.15% USD-M (8.7x). Комиссия составляет 2.5% от валового результата, влияние на цену — 8.4%. Фандинг учтён (funding_folded=true).
Числовые критерии проверки выполнены: 64 сделок (>= 30), PF 1.15 (>= 1.05), коэффициент Шарпа +0.22, DD 39.2% (< 60%), metrics_reliable=true, только end_unrealized 0.05%.
Преимущество слабое и статистически неотличимо от нуля. Коэффициент Шарпа — 0.22, с CI от -0.51 до 0.93, PSR 0.63 и PF 1.15. Альфа — -2.9%/год, информационный коэффициент — -0.89 против стратегии «купи и держи» ETH. В предварительном исследовании сообщалось о коэффициенте Шарпа 0.78 и PF 2.0; QA установило, что разрыв вызван заглядыванием на час вперёд в предварительном исследовании DVOL. Этот запуск с привязкой к моменту времени — честная базовая оценка.
Опасения QA насчёт преимущества в основном подтвердились. На полной истории коэффициент Шарпа равен 0.22, а PF — 1.15, что близко к значениям в песочнице: 0.31 и 1.20. Годовая доходность: 2021 -3.8%, 2022 -17.4%, 2023 +39.6%, 2024 +11.8%, 2025 +6.3%, 2026 -13.8%: положительными были 3 из 6 лет, что ниже минимального порога валидности 60%. Основную часть прибыли приносит 2023.
Выборка мала. DVOL начинается в 2021-03, поэтому за весь срок будет около 64 сделок. Это ниже рекомендованного ориентира L178 — около 100 сделок; на отложенной выборке (последние 20%) будет всего около 12-13 сделок при минимуме 10.
Проверка беты (L170): бета равна 0.14, а максимальная DD составляет 39% при номинале около 0.7x и экспозиции 37.5%. Это значительно меньше просадки примерно 80% у стратегии «купи и держи» по ETH за этот период, поэтому результат не объясняется одной лишь бетой. Но стратегия теряет деньги в стрессовых режимах (лунный кризис -19.5%, шок ставок -19.6%), а просадка длилась 602 дней.
Не подтверждено: повторяющиеся парные дни MTM продолжительностью около -12% / +13% при открытой позиции (2025-04-14/15, 2025-10-15/16, 2026-01-15/16, 2026-04-17/18, 2026-07-18/19), а также финальный бар -12.3% на 2026-08-17. Это совпадает с симптомом парных колебаний, замеченным в других прогонах. По доходности они примерно компенсируют друг друга, но завышают волатильность и снижают коэффициент Шарпа. Механизм не проверялся независимо; следует проверить оценку позиции движком.
Анализ
Экономика сделки с большим запасом перекрывает минимальные затраты. Базовый прогон приносит avg_trade 1.31% при минимальных затратах USD-M в размере 0.15%, то есть около 9x, а оптимизированный прогон приносит 4.92%. Комиссии не являются проблемой (комиссия составляет 2.5% от валового результата).
Код реализует предпосылку. Все сделки только длинные, экспозиция составляет 37.5% (близко к ~40%, предсказанным предварительным исследованием), а чтение DVOL выполняется с учётом данных на соответствующий момент времени.
Это не копия беты. Максимальная просадка составляет 39% на дату 0.7x при экспозиции 37.5%, тогда как у стратегии «купи и держи» по ETH за тот же период она составляла примерно 80%. Бета равна 0.14, но альфа составляет около 0 (-0.03), а IR равен -0.89.
Заранее зарегистрированное правило не воспроизвело результаты предварительного исследования. В предварительном исследовании заявлялись коэффициент Шарпа 0.78, PF 2.0, среднее значение +2.74% и максимум DD 41.9% на 65 сделках. Движок показывает коэффициент Шарпа 0.22, PF 1.15, среднее значение 1.31%, PSR 0.63 и коэффициент Шарпа CI от -0.51 до 0.93 на 64 сделках. Годовая динамика также отличается: в предварительном исследовании было 2021 на уровне +0.69, а в движке — 2021 на уровне -3.8% и 2022 на уровне -17.4%.
CPCV не обнаруживает преимущества. Средний коэффициент Шарпа победителя на внутривыборочном периоде OOS составляет -0.009 по 252 разбиениям, тогда как среднее значение IS равно 0.75; при этом PBO 0.63 и is_overfitted=true. Выбранные параметры были победителями IS лишь в 20% разбиениях.
Оптимизатор ушёл в вырожденную область параметров. entry_pct достиг 0.997 (входить, только когда сегодняшнее значение VRP — максимум за 90 дней), exit_pct — 0.44, а rv_hours — 237. В итоге получаем 15 сделок, экспозицию 12%, а 2021 переносов дают 131% прибыли. Заявленного плато на интервалах 0.6-0.8 и 0.4-0.55 нет: анализ чувствительности помечает 6 из 7 параметров как резкие обрывы вокруг базового коэффициента Шарпа около -0.09, а тепловая карта между -0.02 и 0.45 зашумлена.
Отложенная выборка не прошла проверку. Она охватывает период с 2025-04-19 по 2026-08-16, составляет 484 дней и показала коэффициент Шарпа -0.74 всего на 3 сделках. Не выполнены оба условия жёсткого фильтра: знак результата и требование к размеру выборки.
Дефляция не проходит проверку. DSR составляет 0.38, а ожидаемый максимум коэффициента Шарпа равен 0.35 при 17 эффективных испытаниях. Стратегия не выдерживает процедуру FDR (p=0.62).
Заранее зарегистрированные прогнозы подтвердились: 1 из 5. min_trades составил 15 против 50, коэффициент Шарпа OOS — -0.009 против 0.55, максимальная DD — 30.4% против 30%, а PF — 1.36 против 1.5. Подтвердился только прогноз средней сделки.
Возможный артефакт движка, не проверено: на обеих кривых видны повторяющиеся парные дневные колебания -X%/+X% в дни, когда портфель, по всей видимости, не имеет позиции. В оптимизированном запуске это -4.41/+4.61 на 2021-12-06/07, 2022-03-08/09 и 2022-06-08/09, а также -4.27/+4.46 в 2022-12, 2023-03, 2023-06 и 2023-09. На последнем баре в базовом запуске показано -12.3%, а в оптимизированном — -8.2% на 2026-08-17, при этом end_unrealized около 0.05%. Это может завышать DD и искажать коэффициент Шарпа; нужно передать на проверку движка. Вердикт не меняется: провал на уровне сделок объясняет несоответствие OOS и провал на отложенной выборке.
Поправка Бенджамини—Хохберга при q=0.10 для 341 кандидатов программы сохраняет 8. Кандидат, который здесь не проходит, неотличим от собственного шума программы, какими бы хорошими ни выглядели его отдельные статистические показатели.
История итераций
Сводка по итогам
Тестовый контур предварительного исследования завысил коэффициент Шарпа примерно на 3.5x для того же правила (QA установил, что причина — заглядывание на час вперёд при чтении DVOL); поэтому результаты предварительного исследования следует сверять с движком, учитывающим данные на конкретный момент времени. Кроме того, повторно предлагать режимные фильтры DVOL/VRP на бессрочных контрактах BTC/ETH не следует (это уже 4-й провал сигнала DVOL).
Аналитик отказался от стратегии как переобученной после провала четырёх жёстких критериев: коэффициент Шарпа -0.009 на CPCV OOS против 0.75 по IS (is_overfitted=true), PBO 0.63, коэффициент Шарпа -0.74 на отложенной выборке из 3 сделок, а также результат оптимизатора, основанный на вырожденном наборе из 15 сделок. Кроме того, было DSR 0.38; стратегия не прошла проверку программы FDR и выполнила лишь 1 из 5 предзарегистрированных прогнозов. Комиссии не были проблемой.
Удерживать ETHUSDT.BINANCE в длинной позиции (0.7x капитала, только длинные позиции), когда разность между ETH DVOL на Deribit и реализованной волатильностью за 168h входит в верхние 30% среди последних 90 дневных значений; выходить, когда показатель опускается ниже медианы. Решение принимать раз в день в 00:00 UTC.
Заранее зарегистрированное правило совершило 64 сделок с коэффициентом Шарпа 0.22 (от CI -0.51 до 0.93), PF 1.15, средней сделкой 1.31% от номинала, общей доходностью 29.5% и максимальной просадкой 39.2%, в сравнении с заявленным в предварительном исследовании коэффициентом Шарпа 0.78 и PF 2.0. Оптимизация сместилась к entry_pct 0.997, оставив всего 15 сделок (коэффициент Шарпа 0.24, средняя сделка 4.92%); при этом средний коэффициент Шарпа на скользящей проверке OOS составил -0.009, значение PBO было 0.63, а на отложенной выборке получен коэффициент Шарпа -0.74 на 3 сделках.
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.