Стратегии
Ротация с относительным импульсом ETH против BTC, долларово-нейтральная длинная/короткая стратегия (два инструмента: бессрочные контракты ETHUSDT.BINANCE + BTCUSDT.BINANCE, дневные бары — длинная позиция по более сильному активу / короткая по более слабому на основании импульса соотношения ETH/BTC MOMENTUM, с фильтром по мёртвой зоне, чистый OHLCV, 2 параметр)
Итог: Отменено
EthBtcRelativeMomentumRotationLS
Точно реализует гипотезу: долларово-нейтральная ротация на импульсе соотношения ETH/BTC, нейтральная к рынку (benchmark_meaningful=false, поэтому стратегия «купи и держи» обоснованно не служит эталоном)
Гипотеза
Отрицательное математическое ожидание на надёжной выборке из 582 сделок за 6.7 лет: profit_factor 0.9999 (валовой результат на уровне нуля, чистого преимущества нет), avg_trade_pnl_usd -0.137, CAGR -1.22%, recovery_factor отрицательно. Показатель +7.83% total_return полностью нереализован (end_unrealized_pct 7.91) — это незакрытая позиция на конец периода, а не реализованное преимущество. Коэффициент Шарпа 0.26 с CI [-0.48, 1.01] охватывает ноль, max_drawdown 56.6%, а impact_cost_pct 101% (ёмкость около $98k) означает, что одного рыночного воздействия достаточно, чтобы поглотить всё преимущество. Импульс относительной силы ETH/BTC недостаточно устойчив, чтобы приносить прибыль после издержек при долларово-нейтральной торговле; это вывод о входе, который IS гипотезу. Оптимизация параметров 2 (периода ретроспективного анализа и мёртвой зоны) не превратит результат на уровне нуля до вычета издержек/PF<1 в прибыльный. Не стоит тратить 2 часов на оптимизацию. abandon_class=negative_expectancy.
Реализация
Результаты верификации
CLEAN RESTART 2026-09-04 — история вердиктов и записи обучения этого запуска были удалены, после чего он был перезапущен с этапа проверки. Предыдущий отказ был вызван конвейером, а не рынком: стенд Layer-2 неверно привязывал вспомогательные методы @staticmethod (исправлено), QA выносил окончательные вердикты о производительности по неоптимизированному дымовому тесту (это убрано — теперь QA оценивает только корректность), а тайм-ауты песочницы возникали из-за нехватки слотов для бэктестов (исправлено). Гипотеза и код стратегии не изменились. Оцените код по существу; производительность будет определена позднее полным бэктестом и оптимизатором.
Околонулевое/отрицательное преимущество на измеримой выборке за всю историю (550 сделок, PF 0.965, -22.4%, avg_trade_return_pct +0.061% ниже комиссии за две ноги) — низкодисперсная пара ETH/BTC, которую сама гипотеза отметила как более слабую, чем SOL/ETH. Реализация была корректной, поэтому вывод о наличии преимущества остаётся за аналитиком. Отказ на этапе обзора бэктеста согласно предварительно зарегистрированному условию разработчика (PF не преодолел 1); не оптимизировать.
Максимальная просадка 57.8% (CI до 83%, длительность 1894 дней) по портфелю, номинально нейтральному к рынку: долларовая нейтральность есть только при входе, а 70% совокупная экспозиция увеличивает убытки из-за отсутствия преимущества при устойчивых трендах соотношения ETH/BTC между стопами 6%. Это не ошибка хеджирования — сверка равных номиналов корректна, — но профиль риска, о котором следует сообщить директору по рискам.
Обзор бэктеста
- Шарп
- 0,26
- Общая доходность
- 7,83%
- Максимальная просадка
- 56,58%
- Всего сделок
- 582
- Доля прибыльных
- 45,9%
- Профит-фактор
- 1,00
Точно реализует гипотезу: долларово-нейтральная ротация на импульсе соотношения ETH/BTC, нейтральная к рынку (benchmark_meaningful=false, поэтому стратегия «купи и держи» обоснованно не служит эталоном)
Надёжная, измеримая выборка: 582 парных ротаций за 6.7 лет, metrics_reliable=true, конвейер входа работает штатно (291 длинных / 291 коротких, пропусков нет)
Подлинно 2-параметрическая поверхность с низким переобучением
profit_factor 0.9999 — валовой результат на уровне нуля, настраивать не на что: чистого преимущества нет
Отрицательное математическое ожидание на надёжной выборке: avg_trade_pnl_usd -0.137, CAGR -1.22%, recovery_factor отрицательно
Показатель +7.83% полностью нереализован (end_unrealized_pct 7.91) — незакрытая конечная позиция, а не реализованное преимущество
max_drawdown 56.6% (CI до 80%); коэффициент Шарпа 0.26 с CI [-0.48, 1.01] охватывает ноль — неотличим от отсутствия навыка
impact_cost_pct 101% с capacity_usd ~$98k — одно только рыночное воздействие поглощает всё преимущество; жизнеспособно только в игрушечных масштабах
regime_performance «нормальные» терцильные доходности -56% на уровне 60% DD — отсутствие структурного преимущества относительной силы
История итераций
Проверка не пройдена (уровень 2 — синтетические сценарии): Использованные параметры: ['deadband', 'leg_frac', 'max_days', 'vol_window', 'mom_lookback', 'size_precision', 'stop_ratio_pct', 'min_notional_btc', 'min_notional_eth'] Проверьте, что __init__ задает все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: super(type, obj): obj must be an instance or subtype of type (временная метка бара: 1735689600000) - steady_downtrend: TypeError: super(type, obj): obj must be an instance or subtype of type (временная метка бара: 1735689600000) - flat_ranging: TypeError: super(type, obj): obj must be an instance or subtype of type (временная метка бара: 1735689600000) - volatility_spike: TypeError: super(type, obj): obj must be an instance or subtype of type (временная метка бара: 1735689600000) - zero_volume: TypeError: super(type, obj): obj must be an instance or subtype of type (временная метка бара: 1735689600000) - price_gap: TypeError: super(type, obj): obj must be an instance or subtype of type (временная метка бара: 1735689600000)
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.