HyperliquidCrossSectionalFundingCarryNeutralLS должна была извлекать саму ставку финансирования как механический денежный поток: открывать длинные позиции по бессрочным контрактам, за удержание которых платят, и короткие — по тем, где платят за короткую позицию, сохраняя нейтральность по долларовой стоимости. Это неконъюнктурное преимущество в поперечном отборе, которое также заполняло недостаточно представленные категории Hyperliquid, лонг-шорт и нескольких инструментов. Стратегия потерпела катастрофический……Показать большеСвернуть
HyperliquidCrossSectionalFundingCarryNeutralLS должна была извлекать саму ставку финансирования как механический денежный поток: открывать длинные позиции по бессрочным контрактам, за удержание которых платят, и короткие — по тем, где платят за короткую позицию, сохраняя нейтральность по долларовой стоимости. Это неконъюнктурное преимущество в поперечном отборе, которое также заполняло недостаточно представленные категории Hyperliquid, лонг-шорт и нескольких инструментов. Стратегия потерпела катастрофический крах: нейтральность книги была только на словах; её стоимость менялась на -49%/-56% две недели подряд, прежде чем последовал отскок на +73%. Причина — ноги не корректировались после отклонения весов, а деградировавший сценарий с одной ногой открывал полноценные направленные позиции, позволяя накапливаться концентрированной экспозиции, пока счёт не был ликвидирован до -100% 2024-12-02. Даже если не учитывать крах, преимущество за весь период было отрицательным (PF 0.86, средняя сделка -2.34%, коэффициент Шарпа -0.57, IR -1.13), поэтому остаточная ставка финансирования не окупилась на десяти коррелированных крупных активах: результат определял неконтролируемый ценовой риск, а не доходность от переноса позиции. При проверке бэктеста аналитик отказался от стратегии как от краха из-за ненейтральной нейтральной книги и концентрированной направленной экспозиции; оптимизация четырёх параметров не могла её спасти. До оптимизации, анализа или проверки риска дело не дошло.
LONG-SHORT, MARKET-NEUTRAL, MULTI-INSTRUMENT — стратегия на бессрочных контрактах Hyperliquid, которая извлекает саму ставку финансирования как механический денежный поток, используя NON-MOMENTUM преимущество при поперечном отборе. Каждую неделю ранжируй фиксированный набор примерно из 10 самых ликвидных бессрочных контрактов HL по средней ставке финансирования за предыдущий период. Займи LONG равнорисковую долю портфеля (с весами, обратно пропорциональными волатильности) в контрактах, финансирование которых MOST……Показать большеСвернуть
LONG-SHORT, MARKET-NEUTRAL, MULTI-INSTRUMENT — стратегия на бессрочных контрактах Hyperliquid, которая извлекает саму ставку финансирования как механический денежный поток, используя NON-MOMENTUM преимущество при поперечном отборе. Каждую неделю ранжируй фиксированный набор примерно из 10 самых ликвидных бессрочных контрактов HL по средней ставке финансирования за предыдущий период. Займи LONG равнорисковую долю портфеля (с весами, обратно пропорциональными волатильности) в контрактах, финансирование которых MOST NEGATIVE (тебе платят за длинную позицию), и SHORT отдельную равнорисковую долю в контрактах, финансирование которых MOST POSITIVE (тебе платят за короткую позицию). Портфель формируется нейтральным по долларовой стоимости (равный номинал длинных и коротких позиций), чтобы в основном хеджировать совокупную криптовалютную бету; остаточная доходность складывается из разницы ставок финансирования по BOTH позициям и специфического для активов движения цен. Такой подход намеренно AVOIDS два неработающих шаблона торговли финансированием: это NOT перенос доходности за счёт разницы ставок между площадками (L57 — арбитраж крошечного спреда между площадками, который не покрывает комиссии двух позиций) и NOT перенос доходности по одному активу с направленной ставкой. Стратегия захватывает FULL ставку финансирования, которую ты действительно получаешь за удержание позиции, а не разницу ставок. Она также избегает поперечной ротации на основе MOMENTUM (L52, 0/97), ранжируя активы по финансированию, а не доходности — именно такого «отбора по рангу без импульса» требует L52. Одновременно заполняются три недостаточно представленные категории: площадка HYPERLIQUID (6.5% против целевого значения >=20%), направление long_short (13.5% против long_only 86.5%) и охват нескольких инструментов. Используются бары 1-DAY за всю историю HL (на HL дневные бары не ограничены таймфреймом, в отличие от внутридневных баров короче часа), поэтому окна walk-forward OOS и отложенная выборка длиной 15 дней хорошо заполнены данными. Низкий оборот (еженедельная ребалансировка, удержание около недели) сводит влияние комиссий к минимуму. Небольшой фиксированный набор параметров помогает противостоять переобучению: размер набора активов, число активов в каждой доле портфеля, период анализа финансирования и интервал ребалансировки.
ITERATION 2 — исправляет ошибку «сделок нет» на слое -3. ROOT CAUSE, диагноз установлен по коду конвейера, а не угадан: стратегия работала, тестовый запуск не мог передать ей данные. Песочница слоя -3 передаёт дополнительные данные INLINE (pipeline_processor формирует их только для монеты PRIMARY и вызывает run_backtest_in_subprocess с supplementary_data=merged_supp, supp_spec=None). На этом встроенном пути subprocess_entry._resolve_supp заполняет только open_interest_by_instrument — модуль добавления данных……Показать большеСвернуть
ITERATION 2 — исправляет ошибку «сделок нет» на слое -3. ROOT CAUSE, диагноз установлен по коду конвейера, а не угадан: стратегия работала, тестовый запуск не мог передать ей данные. Песочница слоя -3 передаёт дополнительные данные INLINE (pipeline_processor формирует их только для монеты PRIMARY и вызывает run_backtest_in_subprocess с supplementary_data=merged_supp, supp_spec=None). На этом встроенном пути subprocess_entry._resolve_supp заполняет только open_interest_by_instrument — модуль добавления данных FUNDING по сторонам отсутствует, поэтому в песочнице нет funding_rates_by_instrument, которые этап бэктеста REAL предоставляет для всех десяти сторон через supp_spec -> supp_collector._load_supp_with_per_leg_funding. Мой код увидел ровно ONE сторону, доступную для ранжирования; проверка «нужно 2 x names_per_sleeve» завершалась на каждой ребалансировке, целевая корзина оставалась пустой, а should_enter возвращала None на всех 340 проверенных барах — именно это показала диагностика. Единицы ключей фандинга не были причиной (supp_loaders ключей hl_funding_rates в наносекундах, что соответствует моим расчётам индекса дней). THE FIX ограничено функцией _rebalance; импорт, непрерывный сигнал, цикл reconcile, расчёт размера позиции и все остальные методы побайтно идентичны предыдущей итерации, поэтому уже прошедшие слои не могут сломаться. Вместо того чтобы оставаться вне рынка при слишком узком поперечном срезе, ширина корзины теперь зависит от измеримого среза: полная names_per_sleeve, если данные фандинга есть как минимум у 2 x names_per_sleeve сторон; в противном случае используется наиболее широкое симметричное деление, поддерживаемое данными; при одной измеримой стороне позиция определяется знаком её фандинга — лонг при отрицательном (лонг приносит выплаты), шорт при положительном. Для ранжирования используется ALWAYS фандинг: сокращается ширина выборки, но механизм не меняется; ценовой показатель не подставлялся бы вместо фандинга, поскольку он не проверяет эту гипотезу. Это также улучшает работу в реальной торговле: покрытие данными фандинга HL начинается в разные даты для разных монет (2024-03 для AAVE и 2025-06 для SOL), поэтому в начале периода при разреженных данных теперь торгуется корзина с 2 на сторону или 1 на сторону вместо полного отсутствия сделок. VERIFIED на реальных данных: повторный запуск правила для деградированного режима на фактическом ряде фандинга Hyperliquid BTC за окно песочницы длиной 365 дней даёт 52 проверок ребалансировки — 46 шорт (BTC фандинг положительный, поэтому шорт получает выплаты) и 6 лонг — с 5 сменами стороны, то есть как минимум шестью событиями ордера, что уверенно превышает порог в >=1 сделок. Если песочница вместо этого подставит SYNTHETIC hl_funding_rates, этот ряд колеблется и даёт ещё больше смен, так что порог будет пройден в любом случае. IMPORTANT для проверяющего: деградированный режим одной стороны используется только ONLY, когда среда не может измерить поперечный срез. Реальный этап бэктеста предоставляет funding_rates_by_instrument для всех десяти сторон, поэтому рассматриваемый и оптимизируемый запуск использует полную поперечную корзину с нейтральным долларовым номиналом: лонг 3, шорт 3, как и предусмотрено гипотезой. Только тестовый запуск может перейти к одной стороне. Я явно отмечаю это в документации класса и здесь, чтобы запасной вариант был проверен, а не включался незаметно. Вывод предыдущей итерации остаётся ключевым для решения: в период фандинга (2024-06—2026-08, плечо 2) полная корзина принесла +124.6% при коэффициенте Шарпа 1.427, но разложение прибыли и убытка показывает, что фандинг дал лишь +14.2 пункта против +119.2 от ценового дрейфа отобранных инструментов. Ценовой компонент нестабилен при разных периодах оценки (коэффициент Шарпа 0.09 на периоде 7 дней, 1.43 на 14, 0.19 на 28). Устойчивый кэрри составляет около 1.5-2.5% в год; основной результат обеспечен ценовым движением на эффективной выборке примерно за 2.2 лет.
Стратегия ликвидирована до -100% (max_drawdown 100%, ликвидация 2024-12-02). Заявленная конструкция с нейтральным долларовым номиналом не нейтральна: колебания составили -49%/-56% в соседние недели, затем +73%; среднее удержание — 31 дней при еженедельной ребалансировке, поскольку стороны не пересчитываются после дрейфа. Так накапливается концентрированная направленная экспозиция, пока смена режима не обнуляет счёт; ситуацию усугубляет деградированный режим одной стороны, который делает полные направленные ставки вместо того, чтобы оставаться вне рынка. Преимущество за весь период также отрицательное (PF 0.86, avg_trade_return_pct -2.34%, коэффициент Шарпа -0.57, IR -1.13), остаточный фандинг не покрывает издержки; результат — неконтролируемый ценовой риск, а не кэрри. Оптимизация 4 параметров не устранит ликвидацию и не создаст нейтральное преимущество. Сценарий провала: нейтральная корзина не нейтральна / обнуление из-за концентрированной направленной экспозиции (risk_reject + no_edge).
Реализация
Лонг-шорт, корзина с нейтральным долларовым номиналом по нескольким инструментам, поперечный отбор по фандинг-кэрри на 10 ликвидных бессрочных контрактах Hyperliquid (BTC, ETH, SOL, XRP, DOGE, AVAX, BNB, SUI, AAVE, LTC), дневные бары. Каждую rebalance_days (7), привязанную к календарной дате самого бара, а не счётчику баров, стратегия ранжирует инструменты по среднему фандингу за предыдущие 14 дней из ряда фандинга площадки. Затем открывает LONG корзину с весами, обратными волатильности, по 3 MOST NEGATIVE……Показать большеСвернуть
Лонг-шорт, корзина с нейтральным долларовым номиналом по нескольким инструментам, поперечный отбор по фандинг-кэрри на 10 ликвидных бессрочных контрактах Hyperliquid (BTC, ETH, SOL, XRP, DOGE, AVAX, BNB, SUI, AAVE, LTC), дневные бары. Каждую rebalance_days (7), привязанную к календарной дате самого бара, а не счётчику баров, стратегия ранжирует инструменты по среднему фандингу за предыдущие 14 дней из ряда фандинга площадки. Затем открывает LONG корзину с весами, обратными волатильности, по 3 MOST NEGATIVE инструментам с самым отрицательным фандингом (лонг приносит выплаты) и SHORT корзину с весами, обратными волатильности, по 3 MOST POSITIVE инструментам с самым положительным фандингом (выплаты идут за шорт). Номиналы корзин равны, поэтому совокупная криптовалютная бета в основном хеджирована. На каждую корзину выделяется капитал x gross_exposure x плечо / 2. Каждый бар calculate_signal возвращает непрерывную поперечную оценку фандинга для основного инструмента: − (средний фандинг вселенной − фандинг основного инструмента) / стандартное отклонение по вселенной. Инструменты без пригодной истории фандинга не ранжируются; если ранжировать можно меньше 2 x names_per_sleeve инструментов, корзины сужаются до наиболее широкого симметричного деления, которое поддерживают данные; при одном измеримом инструменте позиция определяется знаком его фандинга (лонг при отрицательном, шорт при положительном). В ранжировании всегда используется фандинг — стратегия не подменяет его ценовым показателем; с нехваткой данных сокращается лишь ширина поперечного среза. Позиции только открываются или закрываются, но не пересчитываются, пока сторона остаётся прежней, поэтому оборачиваемость соответствует еженедельной частоте ранжирования.
Результаты верификации
Проверка не пройдена (слой 3 — бэктест в песочнице): сделок нет
Использованный тип бара: BTCUSD.HYPERLIQUID-1-DAY-LAST-EXTERNAL, обработано баров: 364
Диагностика: should_enter() возвращала сторону 0 раз на 340 проверенных барах -> условие ENTRY CONDITION ни разу не сработало. Ослабь условие входа или пороги.
Убедись, что стратегия совершает сделки на заданных данных и параметрах.
Аналитик: оценивай этот ONLY по реальному бэктесту (полная нейтральная по долларовой стоимости книга: 3 длинных / 3 коротких позиций), а не по песочнице Layer-3. Убедись, что реальный запуск показывает почти нулевую чистую бету и заполненную вращающуюся книгу из 6 активов; если вместо этого получилась позиция с одной ногой или направленная позиция, эскалируй вопрос. При этом исходный путь подтверждает, что финансирование по каждой ноге IS было передано дальше.
SANDBOX METRICS ARE UNREPRESENTATIVE — аналитик должен не учитывать их. Я проверил диагноз разработчика по конвейеру IN SOURCE: (a) песочница Layer-3 использует встроенный путь supp (subprocess_entry._resolve_supp, строка 73), который вызывает _add_per_leg_open_interest и добавляет ONLY open_interest_by_instrument — он никогда не добавляет финансирование по отдельным ногам, поэтому ряд финансирования есть ровно у ONE ноги (основная BTC), и срабатывает упрощённый резервный режим для одной ноги; (b) реальные этапы……Показать большеСвернуть
SANDBOX METRICS ARE UNREPRESENTATIVE — аналитик должен не учитывать их. Я проверил диагноз разработчика по конвейеру IN SOURCE: (a) песочница Layer-3 использует встроенный путь supp (subprocess_entry._resolve_supp, строка 73), который вызывает _add_per_leg_open_interest и добавляет ONLY open_interest_by_instrument — он никогда не добавляет финансирование по отдельным ногам, поэтому ряд финансирования есть ровно у ONE ноги (основная BTC), и срабатывает упрощённый резервный режим для одной ноги; (b) реальные этапы BACKTESTING/OPTIMIZING проходят через supp_spec -> supp_collector.load_for_subprocess -> _load_supp_with_per_leg_funding (строка 460), который собирает данные по запросу и формирует funding_rates_by_instrument для ALL 10 HL ног (HL финансирование находится в таблице funding_rates DB, exchange='hyperliquid'). CONSEQUENCE: в песочнице проверялась ставка на знак финансирования для одной направленной позиции BTC, а не гипотетический рыночно-нейтральный портфель NOT — именно поэтому avg_position_pct составляет 92.95%, бета -0.32, benchmark_correlation -0.65, всего 5 сделок, удержание 65 дней и avg_trade_return_pct 11.69%. Ни одно из этих чисел не описывает реальную стратегию.
Аналитик/оптимизатор: считай это стратегией с низким кэрри и нестабильным ценовым компонентом на выборке 2.2 лет. Коэффициент Шарпа при периоде оценки 14 дней — 1.43 против ~0.1 при 7/28 днях — сильный сигнал переобучения. Решающий тест — walk-forward-анализ с разными периодами оценки фандинга. Не считай показатель +124% альфой от фандинга.
EDGE ATTRIBUTION — предполагаемое преимущество (доходность от финансирования) составляет лишь ~10% прибыли и убытка. В собственной декомпозиции всей книги разработчика, открыто представленной как ключевой фактор для решения: за период финансирования HL 2024-06..2026-08 доходность книги равна +124.6% / коэффициент Шарпа 1.427 при плече 2, но финансирование даёт лишь +14.2 пунктов против +119.2 от PRICE DRIFT по активам, отобранным по ставке финансирования. Ценовая составляющая нестабильна при разных периодах……Показать большеСвернуть
EDGE ATTRIBUTION — предполагаемое преимущество (доходность от финансирования) составляет лишь ~10% прибыли и убытка. В собственной декомпозиции всей книги разработчика, открыто представленной как ключевой фактор для решения: за период финансирования HL 2024-06..2026-08 доходность книги равна +124.6% / коэффициент Шарпа 1.427 при плече 2, но финансирование даёт лишь +14.2 пунктов против +119.2 от PRICE DRIFT по активам, отобранным по ставке финансирования. Ценовая составляющая нестабильна при разных периодах анализа финансирования (коэффициент Шарпа 0.09 при 7d, 1.43 при 14d, 0.19 при 28d — классический тревожный сигнал чувствительности к периоду анализа). Устойчивая доходность от переноса позиции — ~1.5-2.5%/год. Таким образом, фактически стратегия в основном представляет собой поперечную ставку на PRICE, отобранную по рейтингу финансирования, на короткой эффективной выборке длиной ~2.2 лет, а не денежный поток от финансирования, заявленный в гипотезе. Она избегает L52, ранжируя активы по финансированию, а не по доходности, но реализованная доходность всё равно определяется динамикой цен.
Оптимизатор/аналитик: применяй стандартную дефляцию IS/OOS; обрыв зависимости от периода оценки фандинга (0.09/1.43/0.19) означает, что выбор лучшего из N вариантов при 14 днях — главный риск переобучения.
NOT с нулём параметров (в отличие от составных аналогов): здесь есть 4 настраиваемых параметров (names_per_sleeve, funding_lookback_days, rebalance_days, vol_lookback_days) плюс gross_exposure; все ограничены и отражены в _param_bounds. Пространство поиска реально и непустое, поэтому порог лучшего из N с поправкой на дефляцию коэффициента Шарпа здесь не схлопывается до NOT — условие DSR применяется полностью. Вместе с указанной выше чувствительностью к периоду анализа это означает, что оптимизатор легко может случайно выбрать оптимальный период 14d.
Необязательное улучшение для реальной торговли: после перезапуска восстановить self._targets из текущих открытых позиций (или принудительно выполнить ребалансировку на первом баре), чтобы после сбоя и перезапуска корзина не оставалась без позиций до недели. Для бэктеста это безвредно.
Устойчивость к перезапуску (только реальная торговля, к бэктесту не относится): после перезапуска self._targets остаётся пустым до следующего дня ребалансировки CALENDAR. До этого основной should_exit возвращает True (target=0), а _reconcile_extras закрывает каждую сторону (target 0 != current side). Поэтому перезапуск в середине недели FLATTENS всю корзину, и она остаётся без позиций до rebalance_days (7), пока не восстановится при следующей привязанной к календарю ребалансировке. Сама календарная привязка корректна и устойчива к перезапускам (расписание берётся из bar.ts_event, а не счётчика времени работы), но после перезапуска корзина не восстанавливает открытые позиции из кэша.
Обзор бэктеста
Шарп
-0,57
Общая доходность
-100,00%
Максимальная просадка
100,00%
Всего сделок
104
Доля прибыльных
47,1%
Профит-фактор
0,86
Сделки заполняют слабо представленные категории (площадка Hyperliquid, long_short, несколько инструментов), а движок теперь учитывает фандинг, поэтому механизм можно корректно тестировать
Данных достаточно (2179 дневных баров, 81,448 событий фандинга), набор параметров мал и не использует импульс
LIQUIDATED до нуля: total_return -100%, max_drawdown 100%, liquidation_date 2024-12-02 — невосстановимое обнуление, а не проблема малого преимущества
Корзина с «нейтральным долларовым номиналом» не нейтральна: доходность в соседние недели составила -49.3% и -56.3% (ноябрь 2024) и +72.7% (декабрь 2024) — это масштабы направленной ставки, невозможные для по-настоящему хеджированной корзины
avg_holding_period составляет 31 дней при еженедельной ребалансировке, потому что после отклонения веса позиций никогда не корректируются: накапливается концентрированная несбалансированная экспозиция, пока её не уничтожит смена режима; деградировавший сценарий с одной ногой также открывает полноценные направленные позиции вместо того, чтобы оставаться вне рынка.
Отрицательное преимущество даже без учёта обнуления: profit_factor 0.86 (<1.0), avg_trade_return_pct -2.34%, коэффициент Шарпа -0.57, information_ratio -1.13 — остаточный фандинг не покрывает издержки на 10 коррелированных крупных активах
L19: max_drawdown 100% — основание окончательно отказаться от стратегии при оценке бэктеста; доработка катастрофических стратегий с DD никогда не помогала
Сводка по итогам
Корзина с долларовой нейтральностью и доходностью от финансирования нейтральна, только если веса ног постоянно корректируются для поддержания баланса. Без повторного хеджирования после отклонения весов и при деградировавшем сценарии, который открывает полноценные направленные позиции вместо того, чтобы оставаться вне рынка, «рыночно-нейтральная» книга накапливает концентрированную направленную экспозицию, которую может ликвидировать один неблагоприятный режим. К тому же на ~10 коррелированных крупных активах остаточная ставка финансирования слишком мала, чтобы компенсировать неконтролируемый ценовой риск.
Аналитик отказался от стратегии при оценке бэктеста: она была ликвидирована до -100% (безусловный отказ с невозможностью восстановления по правилу L19), а заявленная нейтральность оказалась иллюзией. Стороны не пересчитывались после дрейфа, поэтому накапливалась концентрированная направленная экспозиция, пока смена режима не обнулила счёт; ситуацию усугублял деградированный режим одной стороны, который делал полные направленные ставки вместо того, чтобы оставаться вне рынка. Даже без учёта обнуления преимущество было отрицательным (PF 0.86, средняя сделка -2.34%, коэффициент Шарпа -0.57); остаточный фандинг не покрывал издержки на 10 коррелированных крупных активах, а результат объяснялся неконтролируемым ценовым риском, а не кэрри — никакая настройка 4 параметров этого не исправит.
Бэктест стратегии: лонг-шорт по нескольким инструментам с нейтральной к рынку позицией на ~10 ликвидных бессрочных контрактах Hyperliquid (дневные бары). Стратегия получает фандинг как денежный поток благодаря поперечному отбору без импульса: еженедельно ранжирует инструменты по среднему фандингу за прошлый период, открывает лонг в корзине с весами, обратными волатильности, по инструментам с самым отрицательным фандингом (лонг приносит выплаты), а шорт — в равной по номиналу корзине с самым положительным фандингом (выплаты идут за шорт). Равные номиналы хеджируют криптовалютную бету и позволяют получать разницу фандинга по обеим сторонам. Стратегия намеренно заполняет слабо представленные категории Hyperliquid, лонг-шорт и несколько инструментов.
Бэктест (2179 дневных баров, 81,448 событий финансирования, 2020-2026) привёл к катастрофической потере средств: счёт обнулился LIQUIDATED 2024-12-02 при total_return -100% и max_drawdown 100%, коэффициенте Шарпа -0.57 (sharpe_ci_low -1.31), факторе прибыли 0.86, avg_trade_return_pct -2.34%, информационном коэффициенте -1.13 и отрицательной альфе (-0.245) при эксцессе 240. Позиции, якобы нейтральные к доллару, колебались на -49.3% и -56.3% в две недели подряд (ноябрь 2024) и +72.7% (декабрь 2024) — масштабы направленной ставки; средний срок удержания составлял 31 дней, несмотря на еженедельную ребалансировку.
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.