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

Стратегии

Бэктест стратегии Калмана Hyperliquid LTC–BCH с явным направлением сделки

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

HyperliquidLtcBchKalmanSpreadReversion

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

Гипотеза проверяла, приносит ли прибыль возврат кратковременных отклонений логарифмического спреда цены LTC/BCH на Hyperliquid к среднему за 1–5 дней. Использовались модель состояния Калмана/AR(1), явно заданное направление сделок и фильтр входа по прогнозу с учётом издержек. Код не прошёл проверку уровня 3, поскольку бэктест в песочнице превышал лимит 300 с. В итерациях 2 и 3 разработчик не менял правила торговли и отметил, что хронометрированные повторы тратили время на сканирование каталогов с данными при высокой нагрузке на ввод-вывод узла; базовая стратегия без логики не работала быстрее. После 3 итераций запуск оставили в цикле проверки, до получения метрик бэктеста, оптимизации или анализа специалистом.

Гипотеза

Проверить, предсказывают ли временные отклонения логарифма цены LTC/BCH от скрытого состояния возврата к среднему экономически значимую конвергенцию за 1–5 дней. Использовать синхронизированные бары 4-HOUR и противоположные бессрочные позиции равного долларового размера. Адаптировать механизм пространства состояний из источника, явно задав полярность спреда: высокий спред LTC минус BCH означает короткую позицию по LTC и длинную по BCH. Одной ошибки прогноза недостаточно; для входа прогнозируемая конвергенция должна покрывать издержки исполнения. Заявления источника о результативности не принимаются как доказательства.

Сохраняет парный механизм с фильтром Калмана, заданный пользователем, и устраняет неоднозначность знака. Доля Hyperliquid ниже целевой: 7.6% против 20%; исполнение противоположных позиций по двум инструментам решает проблему концентрации только в длинных позициях 83.2%. LTC и BCH исключают BTC и неудачную формулировку AAVE–UNI. В отличие от арбитража одного актива между биржами, здесь проверяется многодневное относительное неверное ценообразование разных активов, а не малые расхождения между площадками. Данных о концентрации в корпусе нет, поэтому подтвердить новизну на уровне инструментов нельзя. Область между площадками не расширяется: дополнительные площадки не усиливают этот механизм.

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

Реализация

Скрытое состояние AR(1) после фильтра Калмана для логарифма отношения цен LTC/BCH (4H, бессрочные контракты Hyperliquid). Когда стандартизированная инновация превышает entry_z, а прогноз за 30 баров сходится к оценённому среднему более чем на min_projected_gross_pct и комиссии полного цикла: высокий спред — короткая позиция LTC / длинная BCH, низкий — длинная LTC / короткая BCH, на равную сумму в долларах. Выход при пересечении среднего на входе, max_holding_bars, чистом стопе 2% от валовой суммы или недействительности модели (период полураспада за пределами 6-30 баров). Переоценка каждые 6 баров по сетке с привязкой к эпохе, только на основе предыдущих закрытий.

Итерация 3, уровень -3 sandbox_timeout. Правила торговли не менялись; обновлён только docstring с данными о времени. Хронометрированные повторы на реальном окне песочницы показывают, что тайм-аут связан не с работой стратегии: эта стратегия выполнялась 254 с по часам (118 с CPU), а тривиальная FactoryStrategy без действий на тех же двух инструментах и окне — 430 с по часам (129 с CPU). Большая часть времени уходит на ввод-вывод каталога на загруженном узле. Варианты из урока L155: (a) конфигурация и инструменты соответствуют гипотезе, (b) данные есть для обоих инструментов, (c) стоимость обработки бара — O(1) плюс ограниченная по времени переоценка каждые 6 баров, независимо от длины периода. Изменение кода не позволит уложить базовое время движка в 300 с; нужно инженерно проверить ввод-вывод и пропускную способность песочницы либо повторить запуск на менее загруженном узле. Локальный повтор завершился с 52 сделками: коэффициент Шарпа -0.18, PF 0.92, avg_trade_return_pct 0.32. Это число сделок ниже заранее зарегистрированного 120; аналитик должен учесть это после завершения бэктеста.

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

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

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

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

После 3 итераций стратегию оставили в цикле проверки. Каждый раз дымовой тест песочницы уровня 3 превышал лимит времени 300 с на окне примерно из 20,000 баров (2400 дней) для LTCUSD.HYPERLIQUID с длительностью бара 4 часов. Проверка бэктеста, аналитический и риск-этапы не были достигнуты.

Квант-трейдинг: парная сделка бессрочными контрактами LTC/BCH равного долларового размера на Hyperliquid с часовыми барами 4. Модель трактует логарифмический спред цены LTC минус BCH как скрытое состояние возврата к среднему (AR(1)/Калман): продаёт LTC и покупает BCH, когда спред завышен, и действует наоборот, когда он занижен. Вход — только если прогноз конвергенции за 1–5 дней достаточно велик, чтобы покрыть издержки исполнения.

Данных о результативности нет: отчёт бэктеста пуст, оптимизация не запускалась, поэтому сообщить доходность, коэффициент Шарпа или число сделок нельзя.

Анализ

Зачем открывать длинную позицию, если фактическая цена выше прогнозной? (Фильтр Калмана для парной торговли)

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