Стратегии
Схождение логарифма отношения LTC/BCH на бессрочных контрактах Bybit, устойчивый к окну якорь EWMA, вход с порогом комиссий, фильтр всплеска объёма одного актива (4H, долларово-нейтральная стратегия)
Итог: Отменено
LtcBchBybitLogRatioEwmaConvergence
Сводка по итогам
В этой гипотезе к сделке на схождение цены бессрочного контракта LTC/BCH на Bybit применены три правила из ответа на quant.stackexchange: якорь, устойчивый к разной длине окна, абсолютный порог комиссий 6% для входа и фильтр структурного слома по асимметрии объёмов. За 3 итераций разработчик ускорил обработку объёма и медианы на каждом баре в итерации 2, а в итерации 3 исправил несогласованность конфигурации параметра плеча. Стратегия всё равно превысила лимит времени в бэктесте песочницы уровня 3 (более 300 с на примерно 20000 барах 4H), и её забросили в цикле верификации. До бэктестинга, оптимизации, проверки аналитиком и оценки рисков дело не дошло, поэтому торговая гипотеза остаётся непроверенной.
Гипотеза
Источник описывает конкретный механизм парной торговли криптовалютными бессрочными контрактами, поэтому стратегия отнесена к классу (a). Она доработана по лучшему ответу источника: окно не выбирается по p-value, установлен явный порог комиссий и добавлен фильтр на случай структурного слома. Выбрана Bybit, поскольку её доля ниже квоты площадки (2.0% против 5% или больше). Дизайн длинный/короткий и долларово-нейтральный, он заполняет недостаточно представленный сегмент long_short (15%). LTC и BCH почти не представлены в корпусе. Это не спред между одной и той же парой активов на разных площадках (SOL Bybit/OKX, DOGE Bybit/OKX, HYPE спот/бессрочный контракт), который постоянно проигрывает в гонке скорости и комиссий. Прогнозы скромные, поскольку t-статистика до исследования составляет около 1-2.
verification_loop: sandbox_timeout: верификация не пройдена (уровень 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300 с на окне примерно в 20000 баров (2400 дней по LTCUSDT.BYBIT-4-HOUR-LAST-EXTERNAL). Почти всегда это означает, что объём вычислений на бар растёт вместе с историей — например, полный просмотр ряда финансирования/дополнительных данных или перестроение списка с вызовом min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй результаты по временной метке, чтобы стоимость обработки одного бара была O(log n), а не O(n).
Реализация
Долларово-нейтральная парная сделка по бессрочным контрактам LTC и BCH на Bybit с барами 4H. Стратегия торгует разрыв между log(LTC/BCH) и его якорем EWMA (период полураспада — 60-180 баров). Вход происходит только при абсолютном разрыве не меньше 6%, фиксированного порога комиссий: дорогой актив продаётся в шорт, дешёвый покупается. Дополнительный фильтр отменяет вход, если необычный всплеск объёма за 24ч наблюдается только по одному активу. Сделка закрывается, когда разрыв пересекает exit_dev в обратном направлении, расширяется против позиции до stop_mult*entry_dev или достигается максимальное время удержания.
Итерация 3 исправляет только сбой Layer-1.5. В optimization_plan исправлен `leverage` на 2.0 как параметр, поэтому теперь параметры включают leverage=2.0 как число с плавающей точкой, что соответствует плану и config.leverage=2.0, и position_size считывает его. Перед отправкой я сверил параметры с планом с помощью src.optimization.domains.validate_domains; проверка пройдена. Все остальные фиксированные значения в точности соответствуют плану, включая их типы: exit_dev 0.0, stop_mult 2.0, leg_fraction 0.25, cooldown_bars 6, volume_asym_ratio 1.8, volume_short_bars 6 и volume_median_bars 180. Начальные значения настраиваемых параметров находятся в допустимых диапазонах: entry_dev 0.06, volume_veto 'on', max_hold_bars 42 и anchor_halflife_bars 120. Максимальный валовой номинал составляет 2 позиций x 0.25 x 2.0 = 1.0x капитала. Логика сигнала, входа и выхода не изменена.
Результаты верификации
sandbox_timeout: верификация не пройдена (уровень 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300 с на окне примерно в 20000 баров (2400 дней по LTCUSDT.BYBIT-4-HOUR-LAST-EXTERNAL). Почти всегда это означает, что объём вычислений на бар растёт вместе с историей — например, полный просмотр ряда финансирования/дополнительных данных или перестроение списка с вызовом min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй результаты по временной метке, чтобы стоимость обработки одного бара была O(log n), а не O(n).
История итераций
Верификация не пройдена (уровень 1.5 — согласованность гипотезы и конфигурации) [класс=hypothesis_mismatch]: - optimization_plan задаёт плечо 2.0
Сводка по итогам
Стратегии с двумя активами и скользящими окнами медианного объёма нужно профилировать относительно лимита песочницы примерно в 20 тыс. баров до отправки: даже переписывание только ради скорости (скользящие суммы и поддержание отсортированных окон через bisect) не уложилось в лимит 300 с.
Стратегия была оставлена в цикле проверки. Дымовой тест песочницы Layer 3 превысил лимит времени 300 с на окне около 20000 баров (2400 дней по LTCUSDT.BYBIT 4-часовых баров), поэтому до проверки бэктеста, аналитика или риска дело не дошло.
Долларово-нейтральная парная сделка на барах 4H по бессрочным контрактам LTCUSDT.BYBIT и BCHUSDT.BYBIT: стратегия играет на возврате отклонения log(LTC/BCH) от якоря EWMA, входя только при абсолютном отклонении не меньше 6% (порога комиссий) и оставаясь вне рынка, если шок объёма за 24ч одного актива превышает шок другого более чем на 1.8x (фильтр против специфичных для актива новостей).
Показателей доходности нет: отчёт о бэктесте пуст, оптимизация не запускалась, поэтому данных о доходности, коэффициенте Шарпа и числе сделок нет.
Анализ
Парная торговля: длина истории для расчёта спреда
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.