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

Стратегии

ETH/BTC Ratio: согласование импульса на двух таймфреймах — нейтральный к доллару спред между парами, длинная и короткая позиции, основной 4H + подтверждение 1D, выход при расхождении (ETHUSDT.BINANCE + BTCUSDT.BINANCE, параметров: 3)

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

EthBtcRatioDualTimeframeMomentumConfluenceLS

По построению стратегия действительно нейтральна к доллару (равный номинал противоположных ног, синхронные временные метки): +171% — не бычья бета, результат положительный в несколько лет без бычьего рынка

Гипотеза

Стратегия DOLLAR-NEUTRAL PAIRS-SPREAD переносит проверенный механизм выжившей стратегии фабрики ONE — согласование импульса на двух таймфреймах (BTC Dual-Timeframe Momentum Confluence, коэффициент Шарпа 1.99, paper_stage) — на отношение ETH/BTC RATIO вместо одного направленного инструмента. Это намеренное структурное решение главной причины провала №1: все трендовые стратегии на одном активе OHLCV (ETH с таргетированием волатильности, откаты BNB, свинг-стратегии XRP, стратегии толстых хвостов DOGE, коэффициент……Показать большеСвернуть

Стратегия DOLLAR-NEUTRAL PAIRS-SPREAD переносит проверенный механизм выжившей стратегии фабрики ONE — согласование импульса на двух таймфреймах (BTC Dual-Timeframe Momentum Confluence, коэффициент Шарпа 1.99, paper_stage) — на отношение ETH/BTC RATIO вместо одного направленного инструмента. Это намеренное структурное решение главной причины провала №1: все трендовые стратегии на одном активе OHLCV (ETH с таргетированием волатильности, откаты BNB, свинг-стратегии XRP, стратегии толстых хвостов DOGE, коэффициент эффективности LINK) проваливаются, потому что их ключевая доходность — лишь 2020-2021 крипто BULL BETA, который каждый последующий год уходит в минус; поэтому скользящий анализ вне выборки OOS и отложенная выборка на 15 дней в недавнем режиме дают убыток. Торговля отношением ETH/BTC RATIO (длинная позиция по одной ноге, короткая по другой, равный номинал) по построению REMOVES бета всего крипторынка: PnL не может быть следствием бычьего рынка, поскольку нейтральный к доллару спред почти не зависит от рынка. Остаётся устойчивый, хорошо задокументированный цикл относительной силы ETH и BTC (капитал перемещается между двумя крупнейшими активами в режимах длительностью несколько недель). Именно согласование сигналов на двух таймфреймах — условие, которое выделило выжившую стратегию среди трендовых стратегий с одним сигналом, зависевших от выбросов: требовать, чтобы FAST сигнал импульса на 4H и SLOW на 1D для отношения AGREE, и оставаться вне рынка при расхождении. Это импульс/CONTINUATION на отношении; стратегия явно не использует возврат отношения к среднему NOT (провалился в L53) и не является ротацией по поперечному ранжированию множества активов NOT (провалилась в L52); это отдельная парная стратегия с нейтральной бетой и единственным условием, которое здесь действительно сработало. Она заполняет недостаточно представленную корзину направления long_short и ограничивает число параметров до 3, снижая риск переобучения.

Итерация 2 — минимальное исправление только указанного сбоя Layer-2. Все шесть синтетических сценариев завершились ошибкой `_ts_of() takes 1 positional argument but 2 were given`: стенд Layer-2 (`strategy_verifier._StrategyProxy`) копирует каждый вызываемый атрибут на обычный объект-обёртку через `types.MethodType(val.__func__ or val, wrapper)`, повторно привязывая @staticmethod как метод экземпляра и добавляя `self` первым аргументом. Поэтому я преобразовал два помощника @staticmethod — `_ts_of` и `_round_qty`……Показать большеСвернуть

Итерация 2 — минимальное исправление только указанного сбоя Layer-2. Все шесть синтетических сценариев завершились ошибкой `_ts_of() takes 1 positional argument but 2 were given`: стенд Layer-2 (`strategy_verifier._StrategyProxy`) копирует каждый вызываемый атрибут на обычный объект-обёртку через `types.MethodType(val.__func__ or val, wrapper)`, повторно привязывая @staticmethod как метод экземпляра и добавляя `self` первым аргументом. Поэтому я преобразовал два помощника @staticmethod — `_ts_of` и `_round_qty` (последний аналогично завершился бы ошибкой на Layer 3) — в обычные методы экземпляра; все места вызова уже использовали `self.`, поэтому другие строки не менялись. Логика сигналов, условия входа и выхода, размер позиции, импорты и конфигурация побайтно совпадают с версией, прошедшей Layer 1, поэтому прежние проверки не могут регрессировать. Исходные данные не изменились с итерации 1: пробный запуск на реальных данных каталога 4H для обеих ног (14,460 баров с совпадающими временными метками, 2019-12–2026-08) даёт 59 сделок в год, средний результат за полный цикл сделки за вычетом комиссии тейкера за две ноги 0.20% составляет +0.47%, показатель на номинал одной ноги — 4.44x, коэффициент Шарпа по барам — ~0.72, а максимальная просадка — ~30% при номинале 1.0x на ногу (отсюда размер позиции 0.8x); вокруг быстрых 18 / медленных 120 / entry_z 0.4 наблюдается плато параметров, а не пик.

Долларово-нейтральный ETH/BTC импульсный спред между парами на основе отношения не даёт устойчивого масштабируемого преимущества — не стоит тратить 2 часов на оптимизацию (тот же результат, что и в предыдущем разборе этого же бэктеста). Коэффициент Шарпа равен 0.444, а бутстрэп CI [-0.29, 1.23] охватывает ноль; profit_factor 1.057 (ниже порога 1.2 значимого преимущества). Стратегия ограничена пропускной способностью: impact_cost_pct 26.7% (издержки влияния съедают четверть валовой доходности), а capacity_usd……Показать большеСвернуть

Долларово-нейтральный ETH/BTC импульсный спред между парами на основе отношения не даёт устойчивого масштабируемого преимущества — не стоит тратить 2 часов на оптимизацию (тот же результат, что и в предыдущем разборе этого же бэктеста). Коэффициент Шарпа равен 0.444, а бутстрэп CI [-0.29, 1.23] охватывает ноль; profit_factor 1.057 (ниже порога 1.2 значимого преимущества). Стратегия ограничена пропускной способностью: impact_cost_pct 26.7% (издержки влияния съедают четверть валовой доходности), а capacity_usd составляет лишь $1.4M, поэтому преимущество реально только в игрушечном масштабе — уже само по себе это препятствие для продвижения. Гипотеза опирается на проверенное согласование сигналов двух TF у L82, но устойчивая версия L82 — это направленная стратегия для одного крупного актива Binance-USD-M с коэффициентом Шарпа >~1.3 / PF >2.0 / DD <20%; здесь же спред между парами (другой объект, семейство рыночно-нейтральных L45 0/84) с коэффициентом Шарпа 0.44 / PF 1.06 / DD 29.8% (CI до 92.8%), не проходящий ни один порог. Преимущество также ослабевает: показатель +171% сосредоточен в начале периода, в 2020-2021, тогда как недавний режим отрицательный (2026 -11.9%, скользящий коэффициент Шарпа — около -8); значит, последний отрезок -20% контрольной выборки приходится на отрицательный период и, вероятно, не пройдёт проверку OOS/контрольной выборки. Значение benchmark_meaningful корректно равно false, а абсолютные метрики с поправкой на риск находятся на пограничном или отрицательном уровне. Базовый коэффициент Шарпа 0.44 — верхний предел; дефляция в 3 этапов может его только снизить. Тип неудачи: рыночно-нейтральные пары no_edge/пропускная способность (L45) не достигают порога L82 для устойчивого согласования сигналов двух TF.

Реализация

Импульсная стратегия на спреде пары ETH/BTC, нейтральная к доллару, для Binance USD-M с барами 4–HOUR. На каждом баре стратегия использует выборку log(ETH/BTC) только для временных меток, где есть бар у обеих BOTH ног (единый синхронизированный ряд — индексы двух ног никогда не расходятся), и считывает импульс спреда на двух горизонтах: FAST 18-барный (~3 дня, сигнал 4H) и SLOW 120-барный (~20 дня, дневной сигнал). Каждый показатель делится на реализованную волатильность самого спреда, умноженную на корень из……Показать большеСвернуть

Импульсная стратегия на спреде пары ETH/BTC, нейтральная к доллару, для Binance USD-M с барами 4–HOUR. На каждом баре стратегия использует выборку log(ETH/BTC) только для временных меток, где есть бар у обеих BOTH ног (единый синхронизированный ряд — индексы двух ног никогда не расходятся), и считывает импульс спреда на двух горизонтах: FAST 18-барный (~3 дня, сигнал 4H) и SLOW 120-барный (~20 дня, дневной сигнал). Каждый показатель делится на реализованную волатильность самого спреда, умноженную на корень из длины окна; так получаются инвариантные к масштабу t-статистики вместо фиксированных абсолютных порогов. Непрерывный сигнал, возвращаемый на каждом баре, — среднее двух z-оценок. Для входа требуется CONFLUENCE: оба сигнала должны иметь одинаковый знак и превышать entry_z = 0.4; положительное значение означает LONG ETHUSDT / SHORT BTCUSDT при равном номинале USD, отрицательное — наоборот. Позиция по паре полностью закрывается, как только один из сигналов идёт против неё (при расхождении позиция нулевая), либо если отношение сдвигается против входа на 6% (стоп по спреду). Размер каждой ноги — 40% капитала с плечом 2x (~0.8x капитала по номиналу на ногу, ~1.6x валового номинала); поэтому бета всего крипторынка взаимно компенсируется, а P&L отражает относительную силу ETH к BTC.

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

CLEAN RESTART 2026-09-04 — историю вердиктов и записи обучения этого запуска удалили, а сам запуск начали заново с проверки. Ранее его остановил конвейер, а не рынок: стенд Layer-2 неверно привязывал помощники @staticmethod (исправлено), QA выносил окончательные вердикты о результативности по неоптимизированному дымовому тесту (удалено — теперь QA оценивает только корректность), а тайм-ауты в песочнице возникали из-за нехватки слотов для бэктеста (исправлено). Гипотеза и код стратегии не изменились. Оцени код по существу; результативность позднее определят полный бэктест и оптимизатор.

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

Шарп
0,44
Общая доходность
171,21%
Максимальная просадка
29,78%
Всего сделок
782
Доля прибыльных
49,0%
Профит-фактор
1,06

По построению стратегия действительно нейтральна к доллару (равный номинал противоположных ног, синхронные временные метки): +171% — не бычья бета, результат положительный в несколько лет без бычьего рынка

Здоровое число сделок в обоих направлениях (782); корректная реализация согласования сигналов на нескольких таймфреймах

Нет значимого преимущества: коэффициент Шарпа 0.444, интервал CI [-0.29, 1.23] пересекает ноль, profit_factor 1.057 (ниже порога 1.2 значимого преимущества).

Предел ёмкости: только impact_cost_pct 26.7% и capacity_usd — всего $1.4M; преимущество есть лишь на игрушечном масштабе, и этого достаточно, чтобы заблокировать продвижение

Не проходит порог L82 устойчивой стратегии с двойным TF (нужен крупный актив с направленной позицией, коэффициент Шарпа >~1.3 / PF >2.0 / DD <20%); здесь спред между парами с коэффициентом Шарпа 0.44 / PF 1.06 / DD 29.8% (CI–92.8%) — применяется прежний порог для семейства рыночно-нейтральных L45 0/84.

Преимущество угасает: показатель +171% сосредоточен в начале периода 2020/2021, недавний режим отрицательный (2026 -11.9%, скользящий коэффициент Шарпа снизился примерно до -8); последний отрезок отложенной выборки -20% отрицателен и, вероятно, не пройдёт проверку OOS/отложенной выборки

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

Проверка не пройдена (Layer 2 — синтетические сценарии): Использованы параметры: ['entry_z', 'fast_bars', 'slow_bars', 'vol_window', 'min_notional', 'per_leg_frac', 'stop_spread_pct'] Проверьте, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735689600000) - steady_downtrend: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() принимает……Показать большеСвернуть

Проверка не пройдена (Layer 2 — синтетические сценарии): Использованы параметры: ['entry_z', 'fast_bars', 'slow_bars', 'vol_window', 'min_notional', 'per_leg_frac', 'stop_spread_pct'] Проверьте, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735689600000) - steady_downtrend: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735689600000) - flat_ranging: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735689600000) - volatility_spike: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735689600000) - zero_volume: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735689600000) - price_gap: TypeError: EthBtcRatioDualTimeframeMomentumConfluenceLS._ts_of() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735689600000)

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