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

Стратегии

Захват спреда ставок финансирования между площадками — нейтральная к дельте кэрри-стратегия на бессрочных контрактах BTC Binance и Hyperliquid (длинная нога с низкой ставкой финансирования / короткая нога с высокой ставкой, вход по порогу)

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

BtcCrossVenueFundingSpreadCarryBinanceHlNeutral

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

Стратегия использовала устойчивую разницу ставок финансирования бессрочных контрактов на BTC между Binance и Hyperliquid, удерживая две ноги, нейтральные к дельте, чтобы получать чистое финансирование и распределять затраты на вход на множество выплат. Бэктест подтвердил, что хедж построен правильно: почти нулевые волатильность, бета и корреляция, финансирование учтено корректно. Но результат — постоянные потери, поглощённые комиссиями: коэффициент Шарпа -11.15, общая доходность -13.7%, каждый месяц убыточный. Основная предпосылка не подтвердилась: спред возвращался к среднему примерно за 1 день, а не сохранялся несколько дней, поэтому каждая сделка приносила около 0.027% кэрри, но обходилась примерно в 0.19% комиссий на двух площадках. После 4 итераций аналитик отказался от стратегии на этапе проверки бэктеста как от механизма, структурно ограниченного комиссиями и не исправимого подбором порогов; до оптимизации дело не дошло.

Гипотеза

Рыночно-нейтральная кэрри-стратегия между площадками, которая использует PERSISTENT FUNDING-RATE DIFFERENTIAL между двумя бессрочными контрактами BTC на Binance USD-M и Hyperliquid. Оба контракта отслеживают спотовую цену BTC с расхождением всего в несколько базисных пунктов, но ставки финансирования задаются независимыми потоками заявок и регулярно расходятся (разный состав участников, разные механизмы финансирования — на Binance интервал 8 ч, на Hyperliquid — один час). Когда ставка финансирования на площадке A……Показать большеСвернуть

Рыночно-нейтральная кэрри-стратегия между площадками, которая использует PERSISTENT FUNDING-RATE DIFFERENTIAL между двумя бессрочными контрактами BTC на Binance USD-M и Hyperliquid. Оба контракта отслеживают спотовую цену BTC с расхождением всего в несколько базисных пунктов, но ставки финансирования задаются независимыми потоками заявок и регулярно расходятся (разный состав участников, разные механизмы финансирования — на Binance интервал 8 ч, на Hyperliquid — один час). Когда ставка финансирования на площадке A значительно выше, чем на площадке B, ты SHORT бессрочный контракт на площадке с высокой ставкой и открываешь LONG позицию по контракту на площадке с низкой (или отрицательной) ставкой, с одинаковым номиналом, получая NET разницу ставок финансирования в каждом периоде и сохраняя чистую дельту BTC около нуля. Позиция удерживается, пока сохраняется спред (обычно несколько дней), поэтому единовременные издержки тейкера за вход и выход по двум ногам распределяются на множество выплат финансирования. Стратегия намеренно SIMPLE: один порог входа, один порог выхода, равные номиналы ног, без подбора параметров для каждого актива — конструкция с малым числом параметров напрямую отвечает на неудачные попытки избежать переобучения в кластерах трендовых и разворотных стратегий. На обеих площадках используется один базовый актив с подтверждённой ликвидностью (BTC), чтобы избежать сбоев из-за отсутствия данных по корзине альткоинов, которые погубили недавние гипотезы на поперечных срезах и гипотезы коинтеграции.

Исправление итерации 4 для тайм-аута по настенным часам в Layer-3 300s. Поиск ставок финансирования уже выполнялся за ALREADY O(log n) (np.searchsorted по массивам, предварительно рассчитанным в __init__), поэтому тайм-аут возник не из-за повторного сканирования ряда, а из-за числа баров и накладных расходов на каждый бар удержания: в отличие от предыдущих итераций без сделок, эта стратегия открывает позиции и удерживает их на TWO площадках, и на каждом баре удержания заново оценивались обе ноги……Показать большеСвернуть

Исправление итерации 4 для тайм-аута по настенным часам в Layer-3 300s. Поиск ставок финансирования уже выполнялся за ALREADY O(log n) (np.searchsorted по массивам, предварительно рассчитанным в __init__), поэтому тайм-аут возник не из-за повторного сканирования ряда, а из-за числа баров и накладных расходов на каждый бар удержания: в отличие от предыдущих итераций без сделок, эта стратегия открывает позиции и удерживает их на TWO площадках, и на каждом баре удержания заново оценивались обе ноги (get_account_equity + PnL по каждой ноге), а также внутренняя переоценка позиций на двух площадках в NautilusTrader; в итоге около 56 тыс. баров 1-HOUR приходились точно на предел тайм-аута в 300 с. Внесены два минимальных изменения без влияния на преимущество стратегии: (1) интервалы обеих ног увеличены с 1-HOUR до 4-HOUR — сигнал основан на финансировании, а не на ценовом паттерне, поэтому число баров сокращается примерно на 4x при неизменной логике кэрри, что полностью согласуется с гипотезой многодневного удержания; (2) затратная проверка ограничителя совокупного PnL выполняется раз в kill_check_every (=6) баров, чтобы затраты на каждый бар удержания оставались постоянными (недорогие выходы при схождении и максимальном сроке удержания проверяются на каждом баре). Логика входа, сигнал на разнице ставок финансирования, размеры двух ног и все импорты не изменены, поэтому проверки Layers 1-2 проходят. max_hold_bars изменено на 180, чтобы сохранить намерение резервного ограничения примерно в 30 дней при новом таймфрейме 4-HOUR.

Кэрри-стратегия между площадками, где комиссии поглощают доход; чистый результат структурно отрицательный — оптимизировать нецелесообразно. IMPORTANT: это NOT отказ из-за неучтённого финансирования (финансирование IS учитывалось), и NOT ошибка хеджа — портфель действительно нейтрален к дельте (annualized_volatility 1.18%, бета -0.0007). Стратегия отклонена по CREDITED результату: постоянные убытки (коэффициент Шарпа -11.15, total_return -13.7%, profit_factor 0.865, матожидание -$66/сделку), каждый месяц выборки……Показать большеСвернуть

Кэрри-стратегия между площадками, где комиссии поглощают доход; чистый результат структурно отрицательный — оптимизировать нецелесообразно. IMPORTANT: это NOT отказ из-за неучтённого финансирования (финансирование IS учитывалось), и NOT ошибка хеджа — портфель действительно нейтрален к дельте (annualized_volatility 1.18%, бета -0.0007). Стратегия отклонена по CREDITED результату: постоянные убытки (коэффициент Шарпа -11.15, total_return -13.7%, profit_factor 0.865, матожидание -$66/сделку), каждый месяц выборки длиной 14 месяцев убыточный. Причина — порог комиссий при торговле на двух площадках: затраты тейкера на сделку туда и обратно (~0.10% Binance + ~0.09% HL ≈ 0.19%/сделку) требуют, чтобы разница ставок сохранялась около 7 дней при разнице 10% APR, только чтобы выйти в безубыток. Но спред возвращается к среднему, и позиция закрывается примерно за 1 день (avg_holding 1д 2ч, exit_apr 0.03), поэтому каждая сделка приносит около 0.027% кэрри при затратах около 0.19% на комиссии: они примерно в 7x раза выше кэрри, комиссии составляют 14% валовой прибыли, а валовой результат уже около безубыточности. Предпосылка гипотезы («удержание несколько дней, затраты распределяются на множество выплат») не выполняется. Подбор порогов это не исправит: даже при более высоком пороге входа разрыв ставок финансирования Binance—HL BTC редко сохраняется достаточно долго, чтобы покрыть затраты на двух площадках, и вся выборка убыточна. Ошибки в коде нет, и продвинутого варианта на нерабочей цели не осталось — на этом горизонте механизм поглощается комиссиями. FAILURE PATTERN: кэрри-стратегия на разнице ставок финансирования Binance и Hyperliquid BTC нейтральна к дельте, но структурно поглощается комиссиями: затраты на сделку туда и обратно на двух площадках около 0.19% требуют, чтобы разница ставок сохранялась около 7 дней на каждые 10% APR преимущества, тогда как разрыв возвращается к среднему примерно за 1 день. Результат — устойчивые убытки PF<1 (каждый месяц убыточный), которые нельзя обратить подбором порогов входа и выхода.

Реализация

Дельта-нейтральная межплощадочная кэрри-стратегия на разнице ставок финансирования BTC между BTCUSDT.BINANCE (USD-M, финансирование каждые 8 ч, основная нога и нога сигнала) и BTCUSD.HYPERLIQUID (финансирование каждый час, нога хеджирования). На каждом баре рассчитывается годовая разница ставок финансирования diff = bn_rate*1095 - hl_rate*8760; если |diff| >= entry_apr, открывается SHORT на площадке с высокой ставкой финансирования и LONG на площадке с низкой ставкой, с одинаковым номиналом USD; стратегия получает чистый спред финансирования, сохраняя дельту BTC около нуля. Выход происходит при схождении спреда (|diff| <= exit_apr после минимального времени удержания), достижении максимального срока удержания или срабатывании ограничителя совокупного PnL с ограниченной частотой проверок. Стратегия работает на барах 4-HOUR; плечо=2 передаётся в position_size через self.leverage.

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

Проверка не пройдена (слой 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300с. Почти всегда это означает, что объём работы на каждом баре растёт вместе с историей — например, полный повторный просмотр ряда финансирования или дополнительных рядов либо создание списка с вызовом min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Предварительно вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй результаты поиска по временной метке, чтобы затраты на бар составляли O(log n), а не O(n).

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

Шарп
-11,15
Общая доходность
-13,74%
Максимальная просадка
13,92%
Всего сделок
354
Доля прибыльных
46,9%
Профит-фактор
0,86

Действительно нейтральная к дельте стратегия: annualized_volatility 1.18%, бета -0.0007, корреляция -0.03 — хедж из двух ног построен правильно (ошибки с утечкой направленного риска нет), а финансирование учтено, поэтому кэрри измерен корректно

Простая конструкция с небольшим числом параметров; один базовый актив с подтверждённой ликвидностью (BTC); достаточно данных о финансировании (7865 событий) и 177 сделок в доступном для торговли периоде

Постоянные потери на комиссиях: коэффициент Шарпа -11.15, total_return -13.7%, profit_factor 0.865, матожидание -$66/сделку; убыточен EVERY месяц выборки длиной 14 месяцев (2025-03–2026-05)

Порог комиссий: затраты на сделку туда и обратно на двух площадках около 0.19% против примерно 0.027%/день кэрри при входе с разницей 10% APR. Среднее удержание — лишь 1д 2ч; комиссии примерно в 7x раза выше полученного кэрри, составляют 14% валовой прибыли, а валовая прибыль около безубыточности (avg_win 908 ~ avg_loss 927)

Предпосылка гипотезы («удержание несколько дней, затраты распределяются на множество выплат») не выполняется: exit_apr 0.03 закрывает позиции, когда спред возвращается к среднему примерно за 1 день, поэтому затраты не амортизируются

Это повторяющаяся ситуация, когда комиссии поглощают доход от кэрри на разнице ставок финансирования между площадками; подбор порогов не создаст разрыв, который сохраняется достаточно долго, чтобы покрыть затраты на двух площадках

Анализ

Стратегия правильно формирует сбалансированные ноги, нейтральные к дельте, но CHURNS: среднее удержание составляет 11ч 38м, тогда как для амортизации комиссии тейкера около 0.10% за ногу гипотеза предполагает удержание в течение нескольких дней. Комиссии и влияние на цену составляют около 21% валовой прибыли, а доходность каждого дня отрицательна — чистые потери на затратах, кэрри не получен. Рекомендации разработчику: (1) SMOOTH разницу ставок финансирования до сравнения с порогом: ты сравниваешь мгновенную……Показать большеСвернуть

Стратегия правильно формирует сбалансированные ноги, нейтральные к дельте, но CHURNS: среднее удержание составляет 11ч 38м, тогда как для амортизации комиссии тейкера около 0.10% за ногу гипотеза предполагает удержание в течение нескольких дней. Комиссии и влияние на цену составляют около 21% валовой прибыли, а доходность каждого дня отрицательна — чистые потери на затратах, кэрри не получен. Рекомендации разработчику: (1) SMOOTH разницу ставок финансирования до сравнения с порогом: ты сравниваешь мгновенную ставку Binance за 8ч (x3x365) с мгновенной почасовой ставкой HL (x24x365); годовой пересчёт x8760 усиливает почасовой шум, поэтому разница скачет между порогами входа и выхода. Используй скользящее среднее фактически полученного финансирования на каждой площадке (например, за последние 8-24ч), чтобы сигнал отражал разницу PERSISTENT, а не один шумный тик. (2) Существенно увеличь min_hold_bars (например, до 8-24 баров) и добавь гистерезис либо увеличь разрыв между порогами входа и выхода, чтобы позиция, открытая на реальном спреде, удерживалась достаточно долго для превышения накопленными выплатами финансирования затрат на вход. (3) Добавь проверку инструментирования, что финансирование действительно начисляется по BOTH ногам при правильном позиционировании: раздели PnL на полученное финансирование и цену/комиссии, чтобы убедиться в положительном кэрри до того, как полагаться на чистый результат. (4) Рассматривай вход только после того, как SIGN разницы ставок остаётся стабильной в течение N периодов, а не только на основании её величины. Повтори бэктест и подтверди, что avg_holding_period измеряется днями, а дневная доходность больше не является отрицательной повсеместно, прежде чем запрашивать оптимизацию.

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

Проверка не пройдена (слой 2 — синтетические сценарии): Использованы параметры: ['exit_apr', 'entry_apr', 'per_leg_pct', 'min_notional', 'max_hold_bars', 'min_hold_bars', 'qty_precision', 'kill_switch_pct'] Проверь, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735689840000) - steady_downtrend: TypeError:……Показать большеСвернуть

Проверка не пройдена (слой 2 — синтетические сценарии): Использованы параметры: ['exit_apr', 'entry_apr', 'per_leg_pct', 'min_notional', 'max_hold_bars', 'min_hold_bars', 'qty_precision', 'kill_switch_pct'] Проверь, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735689840000) - steady_downtrend: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735689840000) - flat_ranging: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735689840000) - volatility_spike: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735689840000) - zero_volume: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735689840000) - price_gap: TypeError: BtcCrossVenueFundingSpreadCarryBinanceHlNeutral._rate_at() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735689840000)

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

Даже правильно нейтральная к дельте кэрри-стратегия между площадками терпит неудачу, если спред возвращается к среднему быстрее, чем можно амортизировать затраты на сделку туда и обратно на двух площадках. Ограничивающий фактор — не построение хеджа, а срок сохранения преимущества кэрри; настройка порогов не может его увеличить.

Проверка бэктеста вынесла вердикт «отказаться» на этапе до оптимизации, сочтя стратегию структурно убыточной из-за комиссий, а не неисправной: расходы на полный цикл сделки на двух площадках — около 0.19% — требуют, чтобы разрыв ставок финансирования сохранялся примерно 7 дней на каждые 10% APR преимущества, но он возвращается к среднему, а позиция закрывается примерно за 1 день, поэтому комиссии составили примерно 7x от дохода по переносу позиции.

Рыночно-нейтральная кэрри-стратегия между площадками: короткая позиция по бессрочному контракту BTC с высокой ставкой финансирования и длинная — по контракту с низкой ставкой, с равным номиналом на Binance USD-M и Hyperliquid. Вход осуществляется, когда годовая разница ставок финансирования превышает примерно 10% APR; позиция удерживается, пока она сохраняется, чтобы получать чистые выплаты финансирования при почти нулевой дельте BTC.

Хедж действительно был дельта-нейтральным (годовая волатильность 1.18%, бета -0.0007, корреляция -0.03), финансирование начислялось, но стратегия стабильно теряла средства: общая доходность -13.7%, коэффициент Шарпа -11.15, фактор прибыли 0.865, математическое ожидание -$66 на сделку по 177 сделкам; каждый месяц выборки длиной 14 месяцев был убыточным, а комиссия составила 14% от валового результата.

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