Перейти к содержимому
Все стратегии

Стратегии

COIN-M разворот после сброса позиций по открытому интересу, лонг/шорт (один инструмент ETHUSD_PERP.BINANCE_CM — контртрендовая торговля движениями цены после резкого CONTRACTION открытого интереса, то есть закрытия позиций, а не открытия новых с уверенностью; фильтр по скорости изменения OI, 2 параметр)

Итог: Отменено

EthPerpOpenInterestDeleveragingFlushReversalLS

Проверка бэктеста: - метрики ненадёжны: несогласованность — знак Шарпа 0.39 расходится со знаком total_return -100.00%; Шарп рассчитан по ряду mtm_equity_curve, тогда как доходность берётся из кривой капитала.…

Гипотеза

Стратегия возврата к среднему LONG-SHORT, SINGLE-INSTRUMENT, SINGLE-VENUE на бессрочном обратном контракте ETHUSD_PERP.BINANCE_CM. Сигнал ORTHOGONAL относительно цены: скорость изменения OPEN INTEREST (поток данных о количестве позиций, уже имеющийся в каталоге), а не индикатор, вычисленный по ценовому ряду. Основная идея: информационная ценность движения цены зависит от того, OPEN INTEREST EXPANDING или CONTRACTING. Когда цена резко движется WHILE, а открытый интерес резко CONTRACTING, движение вызвано закрытием……Показать большеСвернуть

Стратегия возврата к среднему LONG-SHORT, SINGLE-INSTRUMENT, SINGLE-VENUE на бессрочном обратном контракте ETHUSD_PERP.BINANCE_CM. Сигнал ORTHOGONAL относительно цены: скорость изменения OPEN INTEREST (поток данных о количестве позиций, уже имеющийся в каталоге), а не индикатор, вычисленный по ценовому ряду. Основная идея: информационная ценность движения цены зависит от того, OPEN INTEREST EXPANDING или CONTRACTING. Когда цена резко движется WHILE, а открытый интерес резко CONTRACTING, движение вызвано закрытием CLOSED существующих позиций (сокращение доли заёмных средств, выбивание стопов, снижение маржи), а не открытием позиций новым информированным капиталом. Поток ордеров, который должен выйти по причинам баланса, нечувствителен к цене и чрезмерно растягивает движение, после чего оно разворачивается, когда сокращение позиций завершается. Таким образом: сокращение OI + резкое движение цены DOWN = принудительное закрытие лонгов → сделка против LONG; сокращение OI + резкое движение цены UP = закрытие шортов → сделка против SHORT. Механизм DISTINCT от стратегии против каскада ликвидаций (она реагирует на отдельную отметку ликвидации в момент резкого движения): здесь сигналом служит более медленное, растянутое на часы сокращение количества позиций, которое выявляет резкие выходы из позиций без единственной крупной ликвидации. Одна площадка и один инструмент позволяют совместно использовать бары по 1h и поток OI в песочнице слоя -3 (нет риска verification_loop между площадками или между несколькими инструментами). Число параметров намеренно 2, чтобы избежать подгонки, которая преобладает в журнале неудач.

Итерация 6 устраняет заявленную ошибку ONLY: проверка бэктеста сочла метрики несогласованными (Шарп +0.39 против total_return -100.00%). Такое расхождение знаков возникает только когда запуск помечен как LIQUIDATED: кривая капитала обрезается до нуля после момента разорения, тогда как необрезанный ряд переоценки по рынку продолжает рассчитываться и показывает положительный Шарп. Поэтому исправление — «не допускать разорения счёта», а изменение ограничено размером позиции. Траектория капитала с расчётом в монете в……Показать большеСвернуть

Итерация 6 устраняет заявленную ошибку ONLY: проверка бэктеста сочла метрики несогласованными (Шарп +0.39 против total_return -100.00%). Такое расхождение знаков возникает только когда запуск помечен как LIQUIDATED: кривая капитала обрезается до нуля после момента разорения, тогда как необрезанный ряд переоценки по рынку продолжает рассчитываться и показывает положительный Шарп. Поэтому исправление — «не допускать разорения счёта», а изменение ограничено размером позиции. Траектория капитала с расчётом в монете в итерации 5 работает (Шарп изменился с 0.30 на 0.39, то есть теперь номинал увеличивается вместе с реальным капиталом), но проблема была в самом SIZE: номинал = капитал*risk_frac/stop_pct = 0.67x капитала, а установленный предел max_notional_frac в размере 1.00 ни разу не срабатывал. При 0.67x один полный цикл обходится примерно в 0.11% всего счёта (комиссия тейкера и смоделированное воздействие), а оборот этой стратегии (короткое удержание, временной стоп на 36 барах, тысячи входов в окне песочницы) доводит издержки до нескольких процентов капитала — тогда срабатывает проверка поддерживающей маржи в трекере капитала. Итерация 6 устанавливает предел BIND: max_notional_frac 1.00 -> 0.25, а жёсткий диапазон сужен до [0.01, 0.40] (теперь он объявлен в _param_bounds, чтобы оптимизатор не мог снова открыть путь к разорению). Теперь полный цикл стоит около 0.04% капитала, а худшая отдельная сделка (стоп 3%) 0.75%; траектория капитала остаётся строго положительной, ликвидация не фиксируется, а кривая капитала и ряд переоценки по рынку согласованы по знаку и пригодны для оценки. Больше ничего не изменилось: сигнал, условие входа, выходы, путь данных OI и пересчёт обратного контракта полностью повторяют логику, уже прошедшую уровни 1-3. Одно замечание, как и требуется: я не считаю, что у стратегии есть преимущество — мой событийный анализ в итерации -3 показал, что фильтр OI направляет WRONG WAY (лучше всего возврат к среднему работает, когда OI EXPANDING, +0.469% через 24 ч, хуже всего — когда оно CONTRACTING, -0.198%, то есть хуже, чем совсем без фильтра); после издержек полного цикла около 0.10% сделки с этим условием дают -0.087% на вход. Ограничение размера позиции делает убыток ограниченным и измеримым, но не превращает его в прибыль.

Отрицательное ожидание на надёжной и показательной выборке из 2151 сделок за 2125 дней: avg_trade_return_pct -0.093% (ниже ZERO и порога комиссий около 0.10% COIN-M), profit_factor 0.831, total_return -26.55%, Шарп -0.038, ожидание -$19.13/сделку. Сделки корректно реализуют гипотезу (сбалансированный лонг/шорт на движениях с возвратом после сжатия OI), поэтому проверка справедлива — предпосылка опровергнута: стратегия убыточна в каждом календарном году и режиме волатильности, а событийный анализ разработчика OWN……Показать большеСвернуть

Отрицательное ожидание на надёжной и показательной выборке из 2151 сделок за 2125 дней: avg_trade_return_pct -0.093% (ниже ZERO и порога комиссий около 0.10% COIN-M), profit_factor 0.831, total_return -26.55%, Шарп -0.038, ожидание -$19.13/сделку. Сделки корректно реализуют гипотезу (сбалансированный лонг/шорт на движениях с возвратом после сжатия OI), поэтому проверка справедлива — предпосылка опровергнута: стратегия убыточна в каждом календарном году и режиме волатильности, а событийный анализ разработчика OWN показывает, что фильтр OI INVERTED и снижает стоимость (лучше всего контртренд работает, когда OI EXPANDS, хуже всего — когда CONTRACTS, то есть именно в режиме, на котором торгует стратегия). Комиссия составляет лишь 15.4% от валового результата, поэтому результат отрицателен до комиссий, а не просто уязвим к ним: геометрия убытка и выигрыша около 2.2:1 удерживает результат ниже безубыточности. Опасения QA по поводу преимущества подтвердились. Параметры 2 не могут изменить знак переменной условия, которая выбирает худший режим, поэтому оптимизация не поможет. Это итерация 6 механизма, от которого разработчик уже рекомендует отказаться. Оптимизация не стоит 2 часов. abandon_class=negative_expectancy.

Реализация

Лонг-шорт стратегия возврата к среднему на ETHUSD_PERP.BINANCE_CM инверсном бессрочном контракте. Входы фильтруются по скорости изменения ETH бессрочного контракта OPEN INTEREST, а не только по цене. На каждом баре рассчитывается непрерывный сигнал на возврат: -price_z * сжатие, где price_z — отклонение цены закрытия от её скользящего среднего, измеренное в скользящих сигмах, а сжатие = 0.5*(1 - tanh нормированной по z-оценке скорости изменения OI) приближается к 1, когда открытый интерес необычно резко……Показать большеСвернуть

Лонг-шорт стратегия возврата к среднему на ETHUSD_PERP.BINANCE_CM инверсном бессрочном контракте. Входы фильтруются по скорости изменения ETH бессрочного контракта OPEN INTEREST, а не только по цене. На каждом баре рассчитывается непрерывный сигнал на возврат: -price_z * сжатие, где price_z — отклонение цены закрытия от её скользящего среднего, измеренное в скользящих сигмах, а сжатие = 0.5*(1 - tanh нормированной по z-оценке скорости изменения OI) приближается к 1, когда открытый интерес необычно резко сокращается (позиции CLOSED: сокращение плеча, выбивание стопов, уменьшение маржи), и к 0, когда он растёт (открытие позиций с новой уверенностью). Вход происходит, когда |сигнал| >= entry_z AND цель возврата (расстояние до скользящего среднего) превышает издержки на круговую сделку около 0.10%. Выход — при возврате к среднему, срабатывании стопа 3% или временного стопа через 36 баров. У ETHUSD_PERP нет собственной истории OI, поэтому сигнал использует ряд открытого интереса USD-M ETHUSDT.BINANCE по каждой ноге (только для сигнала, без торговли этим инструментом). Размер позиции задаётся целым числом INVERSE CONTRACTS через contracts_for_notional(), исходя из кривой капитала с учётом монет и ограничивается 25% капитала на вход.

Результаты верификации

Допустимо без изменений. Если запуск состоится, аналитику следует помнить, что сигнал сокращения плеча измеряется по USD-M OI, а не по фактически торгуемому контракту COIN-M.

В гипотезе специально выбран один инструмент COIN-M, чтобы поток OI был доступен в песочнице одновременно с барами торгуемого инструмента. На деле у ETHUSD_PERP.BINANCE_CM нет истории OI, поэтому код считывает OI из серии данных по каждой ноге USD-M ETHUSDT.BINANCE (только для сигнала, без торговли) через open_interest_by_instrument. Торгуемый инструмент и механизм OI-ROC по-прежнему соответствуют гипотезе, а USD-M — крупнейшая книга бессрочных контрактов ETH, поэтому такой заместитель экономически оправдан, но он возвращает зависимость от другой площадки, которой гипотеза намеревалась избежать. Зависимость описана и ограничена условием (ts<=bar_ts), поэтому это не дефект корректности.

Собственный событийный анализ разработчика для итерации -3/4 на этом сигнале (ETH 1 ч, 2021-12..2026-07) показывает, что фильтр OI INVERTED и снижает стоимость: доходность контртрендовой сделки через 24 ч составляет -0.198%, когда OI сокращается (условие входа этой стратегии), +0.091% при неизменном значении, +0.469%, когда OI растёт, и +0.082% без фильтра — то есть фильтр на сокращение хуже, чем отсутствие фильтра. Сделки с этим условием дают около -0.087% на сделку после издержек полного цикла около 0.10%. Данные песочницы это подтверждают: avg_trade_return_pct -0.014%, profit_factor 0.967, total_return -10.06%, отрицательный результат во всех трёх режимах волатильности и в обоих стрессовых окнах, выход с безубыточностью за счёт геометрии (win_rate 0.668 против убытка и выигрыша около 2.1:1). Ни одно изменение параметров не меняет знак переменной условия, которая выбирает худший режим. Аналитику следует считать предпосылку о сжатии OI вероятно опровергнутой и проверить, есть ли у механизма область положительного ожидания, прежде чем тратить часы на оптимизацию.

Обзор бэктеста

Шарп
-0,04
Общая доходность
-26,55%
Максимальная просадка
66,47%
Всего сделок
2151
Доля прибыльных
65,1%
Профит-фактор
0,83

Корректно заданная конструкция для одной площадки и одного инструмента прошла уровни 1-3 и дала пригодный для оценки запуск без ликвидации (в итерации 6 номинал был ограничен).

Сделки точно соответствуют гипотезе: сбалансированные длинные и короткие сделки против движения (лонг 1158 / шорт 993) открываются при сокращении OI, поэтому это честная проверка предпосылки, а не артефакт кодирования.

Надёжная, показательная выборка: 2151 сделок за 2125 дней, metrics_reliable=true.

Отрицательное ожидание на сделку: avg_trade_return_pct -0.093% — ниже ZERO и намного ниже порога комиссий около 0.10% COIN-M; profit_factor 0.831, ожидание -$19.13/сделку.

Total_return -26.55%, Шарп -0.038 (CI [-0.87, 0.80] охватывает ноль или ниже), Сортино -0.038, recovery_factor -0.885; результат отрицательный в EVERY календарном году (2022 -13.0%, 2023 -5.5%, 2024 -1.0%, 2025 -4.4%) и во всех трёх режимах волатильности (спокойном -23.0%, обычном -12.2%, стрессовом -2.1%).

Выход к безубыточности по геометрии: win_rate 0.651 против avg_win 144 и avg_loss 324 (~2.2:1) даёт убыток — выход создаёт небольшие выигрыши, которые съедают комиссии; комиссия составляет лишь 15.4% от валового результата, значит, стратегия убыточна до комиссий и NOT к комиссиям.

Предпосылка о сокращении OI измеримо FALSIFIED: собственное исследование событий разработчика (повторённое на этой конфигурации COIN-M) показывает, что фильтр INVERTED — сделки против движения лучше всего работают, когда OI EXPANDING (+0.469%), и хуже всего при сокращении (-0.198%); отбор по сокращению хуже, чем отсутствие такого отбора. Опасения QA насчёт преимущества подтвердились.

Настраиваемые параметры 2 (lookback, entry_z) не могут изменить знак переменной условия, которая выбирает худший режим; положительного ожидания, к которому можно было бы оптимизировать стратегию, нет.

Анализ

Проверка бэктеста: - метрики ненадёжны: несогласованность — знак Шарпа 0.39 расходится со знаком total_return -100.00%; Шарп рассчитан по ряду mtm_equity_curve, тогда как доходность берётся из кривой капитала. Оценивайте по кривой капитала.

История итераций

Проверка не пройдена (уровень 2 — синтетические сценарии): Использованные параметры: ['entry_z', 'lookback', 'stop_pct', 'risk_frac', 'min_notional', 'baseline_bars', 'max_hold_bars', 'min_target_pct', 'min_baseline_obs', 'oi_max_lag_hours', 'max_notional_frac'] Убедитесь, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: EthPerpOpenInterestDeleveragingFlushReversalLS._row_oi() принимает 1 позиционных аргумента, передано 2 (время бара: 1735690740000) - steady_downtrend:……Показать большеСвернуть

Проверка не пройдена (уровень 2 — синтетические сценарии): Использованные параметры: ['entry_z', 'lookback', 'stop_pct', 'risk_frac', 'min_notional', 'baseline_bars', 'max_hold_bars', 'min_target_pct', 'min_baseline_obs', 'oi_max_lag_hours', 'max_notional_frac'] Убедитесь, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: EthPerpOpenInterestDeleveragingFlushReversalLS._row_oi() принимает 1 позиционных аргумента, передано 2 (время бара: 1735690740000) - steady_downtrend: TypeError: EthPerpOpenInterestDeleveragingFlushReversalLS._row_oi() принимает 1 позиционных аргумента, передано 2 (время бара: 1735690740000) - flat_ranging: TypeError: EthPerpOpenInterestDeleveragingFlushReversalLS._row_oi() принимает 1 позиционных аргумента, передано 2 (время бара: 1735690740000) - volatility_spike: TypeError: EthPerpOpenInterestDeleveragingFlushReversalLS._row_oi() принимает 1 позиционных аргумента, передано 2 (время бара: 1735690740000) - zero_volume: TypeError: EthPerpOpenInterestDeleveragingFlushReversalLS._row_oi() принимает 1 позиционных аргумента, передано 2 (время бара: 1735690740000) - price_gap: TypeError: EthPerpOpenInterestDeleveragingFlushReversalLS._row_oi() принимает 1 позиционных аргумента, передано 2 (время бара: 1735690740000)

Проверка не пройдена (слой 4 — проверка QA): - Высокая частота сделок при крошечной ёмкости — при любом реалистичном объёме рыночное воздействие уничтожает преимущество. В песочнице показаны impact_cost_pct 127.4% и capacity_usd всего против $ 61,584 при 466 сделках, обороте 477x, $ total_impact_usd 12,806. Ёмкость BELOW капитала бэктеста в $ 100k означает, что сам запуск уже превышает объём, при котором рыночное воздействие съедает преимущество. Это гибель преимущества из-за комиссий и рыночного воздействия при……Показать большеСвернуть

Проверка не пройдена (слой 4 — проверка QA): - Высокая частота сделок при крошечной ёмкости — при любом реалистичном объёме рыночное воздействие уничтожает преимущество. В песочнице показаны impact_cost_pct 127.4% и capacity_usd всего против $ 61,584 при 466 сделках, обороте 477x, $ total_impact_usd 12,806. Ёмкость BELOW капитала бэктеста в $ 100k означает, что сам запуск уже превышает объём, при котором рыночное воздействие съедает преимущество. Это гибель преимущества из-за комиссий и рыночного воздействия при высокой частоте сделок: стратегия возврата к среднему, открывающая сделки против растянутой цены на интервале 1h и совершающая около 1.3 сделок в день, не может работать со значимым капиталом, а валовое преимущество не покрывает собственные торговые издержки. - Чистое преимущество незначительно отрицательное и ниже порога комиссий. total_return -2.76%, PF 0.987 (<1), коэффициент Шарпа -0.44 (CI [-2.15, 1.07] охватывает ноль), avg_trade_pnl_usd -$ 5.91, avg_trade_return_pct +0.141% — BELOW минимального уровня комиссий на фьючерсах 0.15%. Высокий win_rate 0.687 нивелируется тем, что avg_loss $ 1,477 составляет 2.2x avg_win $ 665 (отрицательная асимметрия возврата к среднему: много небольших откатов и редкий резкий сброс до стопа 3%); итог отрицательный. Направление и логика верны (сделка против чрезмерного движения цены только когда контракты OI), так что это незначительное или отсутствующее преимущество, а не ошибка — и оно ниже минимального уровня ещё до учёта рыночного воздействия. - Несоответствие площадки, а указанная площадка недоступна. В гипотезе указано ETHUSD_PERP.BINANCE_CM (COIN-M, около 0.06% RT, заполняется корзина CM), но конфигурация торгует ETHUSDT.BINANCE (USD-M, около 0.10% RT). Разработчик подтвердил, что у COIN-M есть доступный ряд NO OI (только снимок из 2 строк, подключённый без ключа supp), поэтому на COIN-M стратегия загружает пустой OI и не совершает сделок. Указанная в гипотезе площадка не поддерживает эту торговую идею, а версия на USD-M не заполняет ни корзину CM, ни запас для покрытия комиссий. Та же подмена, которую я отметил как критическую в родственной гипотезе BTC OI: требуется пересмотр со стороны руководителя исследований, а не незаметная замена. - Пробел в покрытии OI угрожает конвейеру. ETHUSDT OI охватывает только примерно 2022, 2023 и 2026-02+; данных 2024-2025 нет (разработчик это подтвердил). В окнах walk-forward, попадающих на 2024-2025, нет OI и нет сделок, поэтому достоверный коэффициент Шарпа OOS там рассчитать нельзя, а отложенная выборка длиной 15 дней опирается только на хвост 2026 — та же проблема покрытия, из-за которой нельзя было заполнить окна walk-forward и отложенную выборку родственной гипотезы BTC OI.

Проверка не пройдена (уровень 1.5 — согласованность гипотезы и конфигурации) [класс=hypothesis_mismatch]: - config.instrument_id — ETHUSDT.BINANCE, но в гипотезе указано ETHUSD_PERP.BINANCE_CM — тот же актив, площадка/тип контракта DIFFERENT (комиссии, расчёты и предпосылки механизма различаются). Торгуйте заявленным инструментом.

Проверка не пройдена (уровень 1.5 — согласованность гипотезы и конфигурации) [класс=hypothesis_mismatch]: - config.instrument_id задан как BTCUSDT.BINANCE, но в гипотезе указано ETHUSD_PERP.BINANCE_CM — другой актив. Реализуйте гипотезу в исходном виде или попросите руководителя исследований пересмотреть её. Также обратите внимание: - В гипотезе указаны бары 1 ч, но config.bar_type задан как BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL (4-HOUR) — QA отклоняет таймфрейм, противоречащий гипотезе; согласуйте bar_type или измените текст.

Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.