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

Просмотреть оригинал

BtcHyperliquidDualTimeframeMomentumConfluenceLS4H

Гипотезы

Hyperliquid BTC Perp, слияние импульса на двух таймфреймах, Long-Short (BTCUSD.HYPERLIQUID, основной 4H + подтверждающий 1D, нейтральная позиция при расхождении, трейлинг-стоп ATR + разворот медленного режима TF, 3 параметров) — репетиция переноса на площадку для первого живого кандидата на Hyperliquid

Гипотезы

LONG-SHORT, одноинструментальный, чисто-OHLCV трендследящий стратегия на основе слияния моментума на BTCUSD.HYPERLIQUID (бессрочный контракт Hyperliquid, счёт MARGIN, плечо 1.0 = как в источнике, значительно ниже лимита площадки 20x). Механизм представляет собой EXACT перенос BtcDualTimeframeMomentumConfluenceLS (Binance USD-M, Sharpe 1.99, 458 сделок, PF 2.40, DD 3.94%, +$4,774 за 36 бумажных сделок за 29 дней): FAST-плечо (знак доходности за последние fast_lookback баров на 4H барах) и SLOW-плечо (знак доходности за последние slow_lookback баров на DAILY барах, через on_extra_bar) должны AGREE, чтобы удерживать позицию; при расхождении позиция FLAT. Выходы без изменений: ATR трейлинг-стоп от текущего экстремума, либо разворот дневного плеча против удерживаемой стороны. Размер позиции относительно капитала через get_account_equity(). PURPOSE: это не заявка на новую альфу, а репетиция готовности к исполнению — прежде чем капитал будет направлен на Hyperliquid, единственный механизм, которому доверяет фабрика, должен быть проверен на собственных ценовых рядах Hyperliquid, её тарифной сетке и почасовом цикле финансирования, а затем отрепетирован на TESTNET. Я осознаю, что HYPERLIQUID находится на 0/131 историческом максимуме и что клоны этой выжившей стратегии умирали в других местах; поэтому планка предварительно установлена BELOW по сравнению с источником. DATA SPAN (проверено по каталогу, не предполагается): BTCUSD.HYPERLIQUID-4-HOUR накопилось сверх лимита API в 5000 свечей с 2024-01-22 → ~2.6 лет / ~5,700 баров, достаточно для 3 окон walk-forward плюс ~6-месячная холдаут-выборка; дневное подтверждающее плечо уходит назад к 2020-08-20. 4H — самый быстрый интервал Hyperliquid с пригодной многолетней историей — субчасовой вариант не предлагается. PARAMETERS (оптимум источника сохранён дословно согласно брифу): fast_lookback=18, slow_lookback=15, trail_atr_mult=3.033, risk_pct=0.0101, max_notional_frac=0.497, leverage=1.0, ATR_PERIOD=14; переопределения только для Hyperliquid size_precision=5 и min_notional=$10. Выставлено три настраиваемых параметра. FEE ARITHMETIC: 0.045% taker/сторона = ~0.09% за круговую сделку на рыночных ордерах в обе стороны. Источник реализовал 1.367%/сделка; при условии, что HALF сохраняется при переносе, а более волатильное окно 2024-2026 даёт ~0.65%/сделка ≈ 7x за круговую сделку и 4x минимальный порог Hyperliquid 0.15% — я предварительно фиксирую 0.45% (5x за круговую сделку). Частота ~55-60 круговых сделок в год (≈1/неделю), далеко от кладбища комиссионных издержек. FUNDING: на Hyperliquid начисляется HOURLY, а движок NOT учитывает финансирование, поэтому удержание позиции ~5 дней несёт ±0.05-0.15% немоделируемого финансирования — отмеченный пробел измерения и основная причина, по которой репетиция на тестнете важна. PORTFOLIO FIT: HYPERLIQUID 6.9% против целевой квоты ≥20% — площадка, наиболее сильно отстающая от цели, с реальными многолетними данными; направление лонг-шорт (14.9% корпуса против 85.1% только-лонг).

Гипотезы

Точный перенос BtcDualTimeframeMomentumConfluenceLS (стратегии, прошедшей отбор на Binance USD-M) на другую торговую площадку, как предусмотрено гипотезой: код сигналов, выхода и расчёта размера позиции воспроизведён дословно из исходного файла стратегии; изменены только константы, специфичные для площадки (size_precision 5, min_notional $10), а оптимальные значения исходной стратегии перенесены в настройки по умолчанию (fast_lookback=18, slow_lookback=15, trail_atr_mult=3.033, risk_pct=0.0101, max_notional_frac=0.497, ATR_PERIOD=14 зафиксировано, кредитное плечо 1.0). Для торговли выбраны фьючерсы HYPERLIQUID (MARGIN), поскольку портфель открывает позиции SHORT — спотовая торговля не позволяет реализовать половину этого механизма. Дневной компонент подтверждения — это дополнительный компонент на таймфрейме SLOWER по тому же инструменту, поэтому барьер согласования компонентов в базовом шаблоне никогда не блокирует сигнал 4H (синхронизируются только компоненты с одинаковым таймфреймом); перед отправкой было подтверждено наличие в каталоге обоих каталогов баров: BTCUSD.HYPERLIQUID-4-HOUR и -1-DAY. Вычислительная сложность обработки каждого бара составляет O(lookback) при фиксированных окнах (ATR по 15 барам, два обращения по индексу), поэтому лимит времени песочницы в 300 с не находится под угрозой. Частота входов: фильтр совпадения сигналов требует согласованности знаков по 2 условиям; при трендовом режиме это требование выполняется большую часть времени, а его состояние меняется несколько раз в месяц — исходная стратегия совершила 458 сделок, поэтому отсутствие сделок в песочнице не является реальным риском. Каждое ограничение диапазона параметра в __init__ идентично объявлено в _param_bounds, поэтому оптимизатор никогда не проверяет значение, которое код незаметно заменяет. Кредитное плечо остаётся равным 1.0 и при ограничении номинальной стоимости позиции считывается из self.config.leverage, как и в исходной стратегии. Одна существенная оговорка, прямо указанная в самой гипотезе: на Hyperliquid платежи за финансирование начисляются ежечасно, а движок их не учитывает, поэтому удержание позиции в течение нескольких дней подразумевает примерно ±0.05–0.15% неучтённого финансирования — этот бэктест оценивает перенос стратегии только с учётом цены и комиссий, поэтому фактическим конечным результатом работы является пробный запуск в тестовой сети.

Гипотезы

negative_expectancy на надёжной выборке. Решающий показатель — валовой, а не издержки: общий ценовой PnL составляет +$1,497 за 172 сделок (~0.02% от номинала каждая) против $3,777 комиссии и $4,487 фандинга, фактически уплаченных → чистый результат -$6,767, PF 0.90, Sharpe -0.137. Оптимизация не может поднять механизм с почти нулевым валовым захватом сверх кругового спреда 0.09% плюс часового цикла фандинга при 3.6-дневных удержаниях. Сбой конкретен: длинная нога по-прежнему работает (+0.409%/сделку), но 92 коротких позиций теряют -0.744%/сделку, так что long-short симметрия источника не переносится на окно HL 2024-2026.

Реализация

Long-short, на одном инструменте, чисто OHLCV слияние импульса на двух таймфреймах на бессрочном контракте BTCUSD.HYPERLIQUID. Нога FAST (знак трейлингового возврата за 18 баров на барах 4H) и нога SLOW (знак трейлингового возврата за 15 баров на барах DAILY, передаётся через on_extra_bar) должны AGREE, чтобы удерживать позицию: обе вверх -> LONG, обе вниз -> SHORT, расхождение -> FLAT. Выходы — трейлинг-стоп ATR (3.033 x ATR на момент входа от текущего максимума/минимума позиции) или разворот дневной ноги против удерживаемой стороны. Размер позиции пропорционален капиталу: риск 1.01% капитала на дистанции трейлинг-стопа, валовой номинал ограничен 49.7% капитала, плечо 1.0, размер квантован по точности размера HL в 5 знаков после запятой с минимальным номиналом $10. calculate_signal возвращает непрерывный импульсный возврат 4H на каждом баре; дискретные ворота слияния сигналов находятся в should_enter.

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

Вынести привязку _side/_extreme/_entry_atr из should_enter() в ветку с существующей позицией calculate_signal (которая уже обрабатывает случай _side == 0), либо в хук on_position_opened.

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

should_enter() изменяет состояние позиции (self._side, self._extreme, self._entry_atr) до того, как станет известно, отправлен ли ордер. Если position_size() возвращает 0, либо базовый шаблон отбрасывает вход при проверке минимального номинала, стратегия остаётся с ненулевым _side и устаревшими _extreme/_entry_atr, фактически будучи вне позиции. Это самовосстанавливается (на следующем баре calculate_signal видит, что pos равно None, и сбрасывает все три поля, а should_exit() достигается только когда позиция существует), так что неверного торгового решения не возникает — но предикат с побочными эффектами хрупок, если путь входа базового шаблона когда-либо изменится. Предпочтительнее привязывать трейлинговое состояние к on_position_opened / первому calculate_signal после входа.

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

Исключить BTCUSD.HYPERLIQUID из extra_instruments; extra_bar_types сам по себе передаёт дневное плечо в on_extra_bar().

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

config.extra_instruments содержит BTCUSD.HYPERLIQUID, который является также основным instrument_id. Базовый шаблон затем дважды подписывается на тот же инструмент для небарных данных (в данном случае не запрошены, поэтому эффекта нет), буферизует дневные бары в _extra_bars[BTCUSD.HYPERLIQUID] (не читается этой стратегией — она хранит собственные _daily_closes) и дважды вызывает close_all_positions/cancel_all_orders для основного инструмента в on_stop (идемпотентно). Сегодня это безвредно, поскольку для дневной ноги важен только extra_bar_types, а таймфрейм 1-DAY отличается от основного 4-HOUR, так что _sync_extra_iids остаётся пустым (барьер выравнивания корректно не блокирует сигнал 4H, как и заявлено в обосновании). Тем не менее дублирующая запись — это шум.

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

Опционально: пусть min_bars_required() также учитывает дневной прогрев (например, max(fast_lookback+1, ATR_PERIOD+1, (slow_lookback+1)*6) + 2), чтобы диагностика входа относила «мёртвый» преамбульный период к прогреву, а не к воротам входа.

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

Дневной подтверждающей ноге нужно slow_lookback + 1 = 16 дневных закрытий, прежде чем _slow_dir покинет 0, то есть ~96 основных баров 4H, тогда как min_bars_required() ограничивает вход только по ноге 4H (21 баров). Между баром 21 и примерно баром 96 стратегия молча неспособна войти в позицию (слияние сигналов никогда не может выполниться при _slow_dir == 0). Это корректно и не является забеганием вперёд, но обходится примерно в 16 дней в каждом окне walk-forward и проявится как мёртвая преамбула, а не как явные ворота прогрева.

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

Экономика в песочнице противоречит предварительно зарегистрированному утверждению, причём на СОБСТВЕННОМ SOURCE'а OWN OPTIMUM (fast=18, slow=15, trail=3.033 перенесены дословно), поэтому обычное оправдание «неоптимизированная просадка» здесь слабее обычного: avg_trade_return_pct -0.088% против предварительно зарегистрированного +0.45% (5x круговой сделки), PF 0.966, Sharpe -0.137, total_return -2.27% за 172 сделок / 799 дней. Комиссии составляют 5.78% от валовой прибыли, а воздействие — $1,122, так что дело не только в издержках — валовой захват на сделку лишь незначительно положителен. Атрибуция по режимам обратна тому, что должен показывать трендследящий алгоритм: стрессовый терциль -10.96% (sharpe -1.34), спокойный -0.26%, при этом вся прибыль сосредоточена в среднем терциле (+7.28%) — то есть ворота слияния сигналов не улавливают волатильные тренды, для которых они предназначены, на ценовом ряде HL. Ещё два момента, которые аналитик должен учесть при разборе бэктеста: (1) FUNDING IS NOT MODELLED на Hyperliquid (funding_events_available: 0), тогда как портфель удерживается ~3.6 дней при часовом цикле фандинга, так что измеренный PnL несёт неучтённые +-0.05-0.15%/сделку — гипотеза честно это отмечает, но это означает, что показатель HL является результатом только по цене и комиссиям; (2) ряд 4H начинается 2024-01-22 (~2.6 г., ~5,700 баров) и даёт лишь ~55-75 круговых сделок в год, так что walk-forward с окном 3 плюс holdout 6 мес. будет делить примерно 200 сделок за всю историю — стоит ожидать широких доверительных интервалов по Sharpe (в песочнице CI уже охватывает от -1.57 до +1.28). Код — точный перенос; если перенос на площадку будет оцениваться, оценивать его следует по прогону на полной истории с учётом этих оговорок.

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

Точный дословный перенос выжившего механизма: 172 сделок за 799 дней, 4,787 баров, без отбраковок по диагностике входа, metrics_reliable=true — чистое измерение вопроса о переносе на площадку.

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

Фандинг IS начислялся в этом прогоне (26,347 событий фандинга, поле фандинга по сделке заполнено), так что отмеченный в гипотезе пробел измерения фактически закрыт.

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

Сделки соответствуют гипотезе (80 лонг / 92 шорт, удержание ~3.6 дн., выходы по ATR/режиму) — это не дефект кода.

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

Отрицательное математическое ожидание на достаточной выборке: PF 0.90, Sharpe -0.137, всего -2.27%, математическое ожидание -$39.34/сделку, avg_trade_return_pct -0.088% против порога жизнеспособности 0.15% и предварительно зарегистрированного +0.45%.

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

Проверено по детальному файлу: валовой PRICE PnL составляет всего +$1,497 за 172 сделок (~0.02% от номинала/сделку) до вычета комиссии $3,777 и фандинга $4,487 — захват цены практически нулевой, так что это не проблема калибровки комиссий.

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

Короткая нога — источник проблемы: средний захват цены LONG +0.409%/сделку против SHORT -0.744%/сделку по 92 коротким позициям.

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

Убыточен в 2024 и 2025, положителен только в 2026 сделках из 23; 760 дней в просадке, 11 последовательных убыточных сделок.

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

Атрибуция по режимам переворачивает трендовую предпосылку (стрессовый -10.97%, Sharpe -1.34; вся прибыль в среднем терциле по волатильности), подтверждая опасения QA.

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

Sharpe CI -1.50 до +1.23, PSR 0.42 — walk-forward с окном 3 плюс holdout разделил бы ~170 сделок за всю историю.

Сводка по итогам

BtcHyperliquidDualTimeframeMomentumC-078dad301a

Сводка по итогам

Этот прогон был репетицией готовности к исполнению, а не новым заявлением об альфе — точный перенос выжившей стратегии #1 с Binance из фабрики на собственный ценовой ряд Hyperliquid, её комиссии и часовой цикл фандинга, с предварительно зарегистрированным порогом, намеренно установленным ниже, чем у источника. Перенос выполнен чисто (172 сделок, без отбраковок по диагностике входа, metrics_reliable, и фандинг действительно начислялся, закрыв отмеченный в гипотезе пробел измерения), но экономика не оправдалась: -2.27% общая доходность, Sharpe -0.137, PF 0.90 и -0.088% на сделку, убыток в 2024 и 2025 и 760 дней в просадке. Решающая деталь заключалась в том, что валовой ценовой PnL был примерно нулевым (+$1,497 за 172 сделок) до вычета комиссии $3,777 и фандинга $4,487, при этом короткая нога (-0.744%/сделку) свела на нет всё ещё работающую длинную ногу (+0.409%/сделку). Аналитик отказался от неё на этапе разбора бэктеста на итерации 1, до того как перейти к оптимизации на этапе 3; этапы после оптимизации — аналитик и риск-офицер — так и не были достигнуты.

Сводка по итогам

Преимущество механизма зависит от площадки и временного окна: перенос проверенного long-short правила без изменений может утратить симметрию, благодаря которой оно работало, поэтому перед тем как считать издержки препятствием, следует проверить валовой захват цены по каждой ноге отдельно.

Сводка по итогам

Этап разбора бэктеста вернул вердикт «отказаться» ещё до запуска какой-либо оптимизации, сославшись на отрицательное математическое ожидание (-$39.34/сделку) на надёжной выборке из 172 сделок, где длинная нога всё ещё захватывала +0.409%/сделку, а 92 коротких позиций теряли -0.744%/сделку. При почти нулевом валовом захвате цены оптимизация не могла правдоподобно преодолеть круговой спред в 0.09% плюс часовой фандинг Hyperliquid при удержаниях ~3.6 дней.

Сводка по итогам

Дословный перенос выжившей стратегии USD-M с Binance на другую площадку: long-short трендследящий алгоритм слияния импульса на двух таймфреймах на BTCUSD.HYPERLIQUID, требующий согласия быстрой ноги 4H и дневной медленной ноги, нейтральная позиция при расхождении, выход по трейлинг-стопу ATR или развороту дневного режима.

Сводка по итогам

За 799 дней и 4,787 баров 4H было совершено 172 сделок (80 лонг / 92 шорт) с общей доходностью -2.27%, Sharpe -0.137, profit factor 0.90, win rate 36.0%, максимальной просадкой 10.97% и avg_trade_return_pct из -0.088% против порога жизнеспособности 0.15% и предварительно зарегистрированного +0.45%. Валовой ценовой PnL составил всего +$1,497 против $3,777 фактически уплаченной комиссии и $4,487 фандинга; атрибуция по режимам перевернула трендовую предпосылку (стрессовый терциль -10.97%, Sharpe -1.34).
Отчёт по стратегии

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