ETH Возврат межбиржевого базиса бессрочных контрактов к среднему (Hyperliquid против Binance, 4H, длинная и короткая позиции)
Итог: Отменено
EthCrossVenuePerpBasisMeanReversionLS4H
Сводка по итогам
Эта стратегия была нацелена на недостаточно представленные категории Hyperliquid, межбиржевой торговли и длинно-коротких позиций с нейтральной к рынку сделкой на базисе ETH между Hyperliquid и Binance: стратегия играла против отклонений z-оценки шире 2.0 в расчёте на схождение. Механически она работала безупречно: 446 сделок без сбоев и с нейтральностью к рынку, почти нулевая бета, без ошибок. Но стратегия теряла деньги во все месяцы, кроме одного, и все три года; коэффициент Шарпа составил -9.85, совокупная доходность — -24.9%, а комиссии поглотили 10.1% валовой прибыли. Аналитик в обзоре бэктеста определил убыток как структурный: цикл сделки на двух биржах требует четырёх исполнений и стоит 0.2–0.4%, что превышает величину возврата базиса ETH в несколько б.п.; повышение порога входа лишь сокращает число сделок, не создавая преимущества. После 5 итераций стратегию остановили на этапе до оптимизации как механизм, структурно убыточный из-за комиссий и не заслуживающий оптимизации.
Нейтральный к рынку межбиржевой арбитраж базиса бессрочных контрактов ETH между Hyperliquid (ETHUSD.HYPERLIQUID) и фьючерсами Binance USD-M (ETHUSDT.BINANCE). На двух биржах разные группы участников (HL преобладают опытные трейдеры и розничные спекулянты; у Binance USD-M самая глубокая книга заявок бессрочных контрактов в мире) и циклы финансирования (HL — каждый час, у Binance — каждые 8 ч). Это создаёт кратковременные межбиржевые ценовые спреды в 0.20–0.80%, которые сходятся в течение 1–3 четырёхчасовых баров,……Показать большеСвернуть
Нейтральный к рынку межбиржевой арбитраж базиса бессрочных контрактов ETH между Hyperliquid (ETHUSD.HYPERLIQUID) и фьючерсами Binance USD-M (ETHUSDT.BINANCE). На двух биржах разные группы участников (HL преобладают опытные трейдеры и розничные спекулянты; у Binance USD-M самая глубокая книга заявок бессрочных контрактов в мире) и циклы финансирования (HL — каждый час, у Binance — каждые 8 ч). Это создаёт кратковременные межбиржевые ценовые спреды в 0.20–0.80%, которые сходятся в течение 1–3 четырёхчасовых баров, когда межбиржевые арбитражёры (маркет-мейкеры и трейдеры базиса) закрывают разрыв. Стратегия выявляет процентный спред (HL_close - BIN_close) / BIN_close, превышающий порог скользящей z-оценки |z| > 2.0 за окно в 60 баров, затем открывает длинную позицию на более дешёвой бирже и короткую — на более дорогой с равным номиналом. Позиция закрывается, когда z-оценка возвращается к |z| < 0.3 либо по временному стопу через 4 баров (16 ч). Это NOT классический графический паттерн, NOT направленная сделка на импульс или разворот и NOT перенос позиции ради финансирования, а чистая торговля на возврате межбиржевого спреда к среднему обусловлена структурным арбитражным механизмом. Стратегия одновременно ориентирована на недостаточно представленные категории HYPERLIQUID (квота 4.1% против 20%), межбиржевой торговли (4.6% против квоты 15%) и длинных-коротких позиций (9.2% против целевого значения ~45%).
Исправление итерации -5 (leverage_set_but_unused). Проверка просматривает сохранённый код стратегии на наличие ссылки на кредитное плечо (config.leverage / self._lev / .leverage) и отклоняет его, если указано плечо>1, но в коде оно отсутствует. Я однозначно добавил плечо в расчёт размера позиции: position_size() теперь считывает непосредственно `leverage = float(self.config.leverage)` и вычисляет `notional = equity * exposure_frac * leverage`; зеркальная нога Hyperliquid использует тот же номинал с учётом плеча, поэтому плечо 2x удваивает номинал обеих ног (реальное влияние на маржу, а не неиспользуемый параметр). Это минимальное изменение, которое проходит проверку и сохраняет всю ранее прошедшую логику сигналов (z-оценку спреда, вход и выход, атомарное управление двумя ногами) и импорты. Плечо 2.0 здесь уместно, поскольку позиция нейтральна к рынку (длинная и короткая позиции равного номинала), поэтому 2x на каждую ногу сохраняет направленный риск почти нулевым и при этом делает преимущество от базиса экономически значимым.
Межбиржевая торговля возврата базиса к среднему задаёт структурно отрицательное преимущество, ограниченное комиссиями и не поддающееся настройке, — оптимизация нецелесообразна. Базис бессрочных контрактов ETH между Hyperliquid и Binance составляет лишь несколько б.п. — около 0.3%, но нейтральный к рынку цикл сделки требует FOUR исполнений тейкером (открытие и закрытие обеих ног), поэтому минимальные издержки двух бирж около 0.2-0.4% превышают величину возврата спреда. Бэктест стабильно убыточен: коэффициенты……Показать большеСвернуть
Межбиржевая торговля возврата базиса к среднему задаёт структурно отрицательное преимущество, ограниченное комиссиями и не поддающееся настройке, — оптимизация нецелесообразна. Базис бессрочных контрактов ETH между Hyperliquid и Binance составляет лишь несколько б.п. — около 0.3%, но нейтральный к рынку цикл сделки требует FOUR исполнений тейкером (открытие и закрытие обеих ног), поэтому минимальные издержки двух бирж около 0.2-0.4% превышают величину возврата спреда. Бэктест стабильно убыточен: коэффициенты Шарпа -9.85, Сортино -13.8, profit_factor 0.908, омега 0.097, матожидание -$103/сделку, total_return -24.9%; все месяцы, кроме одного, и все три года (2024 -7.6%, 2025 -11.3%, 2026 -6.0%) убыточны; комиссия составляет 10.1% валовой прибыли ($45.9 тыс. + $23.4 тыс. воздействия на цену). Текущая конфигурация уже выбирает самые широкие отклонения (вход при z>2 за 60 баров), но всё равно несёт убыток при доле прибыльных сделок 48.4% и avg_win ~ avg_loss; повышение entry_z или увеличение срока удержания сократит число сделок, но не позволит базису в несколько б.п. преодолеть порог издержек 4 исполнений. Это не ошибка кода (стратегия работает без сбоев, нейтральна к рынку, бета 0.002); также нет продвигаемой межбиржевой родственной стратегии, застрявшей на неработающей цели, — сам механизм ограничен комиссиями. FAILURE PATTERN: возврат к среднему базиса бессрочных контрактов на крупной площадке (ETH HL против Binance) структурно невыгоден из-за комиссий: торгуемый межбиржевой спред (однозначное число б.п.) меньше издержек цикла сделки на двух биржах с 4 исполнениями, что приводит к стабильному убытку PF<1, который настройка z-порога не устранит.
Реализация
Нейтральная к рынку торговля возврата межбиржевого базиса к среднему по бессрочным контрактам ETH между ETHUSDT.BINANCE (основная нога) и ETHUSD.HYPERLIQUID (дополнительная нога), бары 4H. Процентный спред (HL-BIN)/BIN преобразуется в z-оценку на скользящем окне в 60 баров; при |z|>2.0 стратегия открывает длинную позицию на более дешёвой бирже и короткую на более дорогой с равным номиналом, закрывая обе ноги при схождении (|z|<0.3) либо по временному стопу через 4 баров (16 ч). Номинал каждой ноги = капитал * exposure_frac * кредитное плечо, поэтому настроенное плечо 2x действительно удваивает валовую экспозицию.
Результаты верификации
Проверка не пройдена (leverage_set_but_unused): в конфигурации установлено кредитное плечо=2.0, но стратегия не использует плечо при расчёте размера позиции. Рассчитывай позиции с его учётом — номинал = капитал * доля * плечо / цена (читай self.config.leverage) — либо установи плечо=1.0. Сейчас параметр плеча не используется, поэтому бэктест идентичен варианту 1x.
Обзор бэктеста
Шарп
-9,85
Общая доходность
-24,94%
Максимальная просадка
27,95%
Всего сделок
446
Доля прибыльных
48,4%
Профит-фактор
0,91
Стратегия механически корректна и работает без сбоев: 446 сделок нейтральны к рынку, буфер SyncedBuffer синхронизирован по времени, бета (0.002) и корреляция с бенчмарком (0.03) действительно низкие, ликвидаций и ошибок нет
Ориентируется на недостаточно представленные категории Hyperliquid, межбиржевой торговли и длинно-коротких позиций, как и планировалось
Стабильный структурный убыток: коэффициенты Шарпа -9.85, Сортино -13.8, profit_factor 0.908, омега 0.097, матожидание -$103/сделку, total_return -24.9% — все месяцы, кроме одного, и все три года убыточны
Издержки комиссий определяют результат: цикл сделки с базисом между биржами требует 4 исполнений тейкером (открытие и закрытие позиций на Binance и HL); комиссия составляет 10.1% валовой прибыли ($45.9 тыс. комиссии + $23.4 тыс. воздействия на цену), а базис ETH HL-Binance в несколько б.п. не может преодолеть этот порог издержек
Даже выбор самых широких спредов не помогает: при entry_z>2 доля прибыльных сделок составляет 48.4%, а avg_win ~ avg_loss — широкие отклонения не сходятся к прибыли надёжно, поэтому повышение порога не создаст преимущества
Нет ошибки в коде и нет продвигаемой родственной стратегии на другой бирже — отрицательное преимущество заложено в механизме и не исправляется правками реализации
Анализ
Стратегия убыточна, поскольку торгует спредом, который меньше собственных издержек полного цикла сделки. До того как оптимизация станет целесообразной, нужны два изменения: (1) Добавить фильтр входа с учётом издержек HARD: входить только тогда, когда процентный спред RAW |(HL-BIN)/BIN| на момент сигнала выше порога, покрывающего стоимость цикла сделки по двум ногам (BINANCE ~0.10% + HYPERLIQUID ~0.09% ≈ 0.20% за цикл; требовать, чтобы спред был как минимум ~2x от этого, например > 0.40%). z-оценка 2.0 при……Показать большеСвернуть
Стратегия убыточна, поскольку торгует спредом, который меньше собственных издержек полного цикла сделки. До того как оптимизация станет целесообразной, нужны два изменения: (1) Добавить фильтр входа с учётом издержек HARD: входить только тогда, когда процентный спред RAW |(HL-BIN)/BIN| на момент сигнала выше порога, покрывающего стоимость цикла сделки по двум ногам (BINANCE ~0.10% + HYPERLIQUID ~0.09% ≈ 0.20% за цикл; требовать, чтобы спред был как минимум ~2x от этого, например > 0.40%). z-оценка 2.0 при абсолютной величине спреда всего в несколько б.п. не позволяет торговать — фильтруй по абсолютной величине спреда, а не только по z-оценке. (2) Проверить, что спред REAL, а не артефакт несовпадения баров: записывать распределение исходного спреда на входе. Если входы срабатывают при |спреде| всего 0.05-0.15% (несколько б.п. — около 15 б.п.), предполагаемой премии 0.20-0.80% на этой паре нет, а сигнал представляет собой шум тайминга между биржами. В таком случае механизм не сработает на паре ETH HL-Binance независимо от z-порогов; стратегию следует перенести на пару бирж с действительно более широким базисом, который медленнее сходится, либо отказаться от неё. Также сократи частоту сделок: временной стоп на 4 баров заставляет закрывать позиции с уплатой комиссий, не дожидаясь схождения. Повтори бэктест; если вариант с фильтром издержек всё ещё показывает profit_factor < 1.0, гипотеза несостоятельна и переходить к оптимизации на 2 часов не следует.
История итераций
Проверка не пройдена (слой 2 — синтетические сценарии):
Использованные параметры: ['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars']
Проверь, что __init__ устанавливает все атрибуты из self.parameters.get().
- steady_uptrend: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- steady_downtrend: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- flat_ranging: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- volatility_spike: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- zero_volume: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- price_gap: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
Проверка не пройдена (слой 2 — синтетические сценарии): Использованные параметры: ['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars'] Проверь, что __init__ устанавливает все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000) - steady_downtrend: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() принимает 1 позиционных аргумента, передано 2……Показать большеСвернуть
Проверка не пройдена (слой 2 — синтетические сценарии):
Использованные параметры: ['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars']
Проверь, что __init__ устанавливает все атрибуты из self.parameters.get().
- steady_uptrend: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- steady_downtrend: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- flat_ranging: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- volatility_spike: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- zero_volume: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
- price_gap: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() принимает 1 позиционных аргумента, передано 2 (время бара: 1735689600000)
Сводка по итогам
Возврат к среднему базиса бессрочных контрактов на ликвидной крупной площадке ограничен издержками: цикл сделки на двух биржах с четырьмя исполнениями стоит дороже, чем возврат спреда в несколько б.п.; повышение z-порога не создаст отсутствующее у механизма преимущество.
В обзоре бэктеста до оптимизации аналитик вынес вердикт «отказаться», посчитав отрицательное преимущество структурным, а не следствием ошибки кода: цикл сделки на двух биржах требует четырёх исполнений тейкером, а порог издержек около 0.2–0.4% превышает спред ETH между биржами в несколько б.п., поэтому стратегию остановили до этапа оптимизации в 3 фаз.
Нейтральный к рынку длинно-короткий арбитраж базиса: z-оценка спреда цены бессрочного контракта ETH между Hyperliquid и Binance USD-M; при |z| > 2.0 открывается длинная позиция на более дешёвой бирже и короткая на более дорогой в расчёте на схождение отклонения 0.2–0.8% в течение 1–3 четырёхчасовых баров.
Стратегия работала без сбоев и была нейтральна к рынку (бета 0.002, корреляция с бенчмарком 0.03) на 446 сделках, но стабильно несла убыток: совокупная доходность -24.9%, коэффициенты Шарпа -9.85, Сортино -13.8, фактор прибыли 0.908, матожидание -$103/сделку, доля прибыльных сделок 48.4% при avg_win ≈ avg_loss, комиссия 10.1% валовой прибыли ($45.9 тыс. комиссий + $23.4 тыс. воздействия на цену).
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.