Стратегии
Отложенный второй этап после восходящего шока альткоина: покупка альткоинов Binance SPOT 24ч после ралли AFTER >= 2.5 сигма за 24ч, удержание фиксированные 48ч (10 основных спотовых активов, 4H, только длинные позиции за наличные, пропуск дня поглощения)
Итог: Отменено
AltSpotUpsideShockDelayedSecondLegLong
Сводка по итогам
За семь итераций стратегия проверяла отложенное продолжение движения после восходящих шоков в длинном спотовом портфеле из десяти монет. Базовый вариант дал доходность 180.63% и коэффициент Шарпа 0.970 по 597 сделкам и получил вердикт «оптимизировать» при проверке бэктеста. По отчёту аналитика, итоговый коэффициент Шарпа вырос лишь умеренно, до 1.000; просадки за всю историю и на защищённой контрольной выборке всё ещё превышали зарегистрированный лимит 25%. Стратегию закрыли из-за нарушений лимита риска и недостаточного участия прибыльных лет; комиссии и неубедительная значимость не были решающими причинами.
Гипотеза
BINANCE USD-M приходится на 63% экспериментов; спот ниже целевого значения 15%, а длинные сделки без плеча относятся к споту. Сначала пять других идей проверили предварительно и отклонили как не давшие результата: остаток COIN-против-BTC, шоки с лидирующим спотом против лидирующих бессрочных фьючерсов, доля спотового объёма в поперечном срезе, базис спот-бессрочные фьючерсы в поперечном срезе и остаточный шок с хеджированием BTC. Эта идея прошла отбор с календарным коэффициентом Шарпа около 1.07 в предварительном исследовании, что соответствует порогу урока 166 >= 1.0. Вселенная ограничена 10 активами (урок 173); решение для каждой монеты требует O(1) операций на бар, чтобы избежать тайм-аутов песочницы.
Этот предусмотренный контрактом портфель из десяти монет с отложенным входом после импульса вверх нарушает зарегистрированный лимит просадки 25% как в итоговом повторном тесте на полной истории, так и на защищённой контрольной выборке при фиксированном размере позиции 12% от капитала. Участие в базовом варианте по годам также не проходит заданный обязательный критерий; прибыль сильно сконцентрирована в 2021. Убедительного пути к устойчивому улучшению в рамках контракта для дальнейших итераций нет. Этот вывод отвергает данную реализацию и профиль риска, но не продолжение роста после импульса в целом. Причиной отказа не являются неубедительная статистическая значимость, коэффициент сохранения результата на контрольной выборке или торговые комиссии.
Реализация
Лонг-стратегия по событиям для каждой монеты на 10 альткоинах Binance Spot (4H). Для каждой монеты z = сумма логарифмических доходностей за 6 баров / (стандартное отклонение доходности за 180 баров * sqrt(6)). Когда z >= shock_z (период блокировки 18 баров), выжди 6 баров и купи по цене закрытия этого бара, вложив 12% капитала MTM; выйди по фиксированному времени через hold_bars баров либо по катастрофическому стопу 15%, проверяемому по закрытию. Одновременно удерживается не более 6 монет.
Итерация 7 устраняет несоответствие уровня 1.5: теперь position_fraction — фиксированное значение 0.12 из плана, а не 0.10. Остальные фиксированные параметры плана теперь добавлены в конфигурацию и подключены в коде: max_concurrent=6 (новые входы пропускаются, пока удерживаются или открываются 6 монет; это ограничивает валовую экспозицию значением не более 0.72 капитала на счёте с наличными) и catastrophic_stop_pct=0.15. Стоп проверяется при закрытии бара для каждой монеты, поскольку базовый помощник внутрибараного стопа охватывает только основной инструмент. Параметры включают _optimization_plan дословно; логика шока, входа и выхода не изменилась.
Результаты верификации
Опционально: установи _submit_stop_market с reduce-only для каждой позиции, если нужна внутрибарая защита. Для гипотезы это не требуется.
Катастрофический стоп 15% проверяется по закрытию бара для каждой монеты. Контракт фиксирует catastrophic_stop_pct, но не требует внутрибараного стопа, поэтому это соответствует условиям. При гэпе через уровень исполнение происходит по цене закрытия, которая может быть ниже -15%.
Не требуется.
Логарифмическая доходность рассчитывается между последовательными полученными ценами закрытия. Пропущенный бар 4H означает, что одна доходность охватывает два интервала, из-за чего std и сумма за 6 баров немного завышаются. Если отсутствует сам бар к сроку, вход разрешён на следующем баре (ts <= due + interval). Влияние на данные Binance Spot невелико.
В песочнице средний результат на сделку составил +1.58% по 597 закрытым сделкам — примерно 8x от затрат на круговую сделку на споте 0.20%; при этом PF 1.40. При проверке бэктеста стоит обратить внимание на два момента. (1) Максимальная просадка составляет 29.5%, что превышает ограничение контракта 25% max_drawdown_pct. В окне FTX убыток составил 10.7%, а просадка длилась 517 дней. (2) Доходность сильно асимметрична вправо: асимметрия 4.26, эксцесс 59, крупнейшая прибыль — $32.6k при средней прибыли $2.1k. Проверь концентрацию по годам и монетам, особенно плоскую подвыборку 2025+ — эта слабость уже указана в гипотезе. В журнале учитывается одна сделка на событие (сделки с одной позицией), поэтому урок L133 неприменим.
Обзор бэктеста
- Шарп
- 0,97
- Общая доходность
- 180,63%
- Максимальная просадка
- 29,53%
- Всего сделок
- 597
- Доля прибыльных
- 49,7%
- Профит-фактор
- 1,40
Детальные записи подтверждают 597 закрытых сделок, все с длинной позицией по десяти монетам, что соответствует прогнозу 550–650; в 580 удержание длилось ровно 48 часов. Код реализует задержку входа в шесть баров и период блокировки повторного сигнала длиной 18 баров.
Средняя чистая доходность сделки составляет 1.576% против порога проверки спота 0.25%; PF 1.396 и коэффициент Шарпа 0.970 оправдывают оптимизацию. Учёт сходится, открытых позиций нет.
Просадка 29.535% превышает зарегистрированное ограничение риска 25%. При оптимизации нужно оценивать допустимые по риску варианты, не меняя зафиксированный контрактом размер позиции.
Опасение QA насчёт концентрации подтверждается: доходность 2021 составила 161%, тогда как 2025 и 2026 принесли убытки 10.68% и 2.83%. На DOGE и SOL приходится приблизительно 59% прибыли в долларах по закрытым сделкам.
Относительно бенчмарка IR составляет -0.733, а диагностический показатель исполненного прогноза не дал результата (IC -0.0028, t=-0.08). Ни то ни другое не подтверждает ошибку в коде, но при проверке на будущих данных нужно отделить эффект отложенного окна от рыночной экспозиции.
Не удалось записать файл исходящих данных: в этой сессии файловая система доступна только для чтения.
Анализ
Детали базового варианта подтверждают 597 сделок с длинной позицией; в 580 удержание длилось ровно 48 часов, что соответствует заявленному механизму.
Итоговая средняя чистая доходность сделки составляет 1.941%, выше заданного порога экономики 0.40%; фактор прибыли вырос до 1.443.
Анализ чувствительности разработки не выявил резких обрывов. Учёт базового варианта сходится, открытых позиций на конец нет.
Оптимизация повышает коэффициент Шарпа за всю историю лишь с 0.970 до 1.000, одновременно сокращая число сделок с 597 до 505.
Итоговая просадка на полной истории составляет 26.895%; просадка на защищённой контрольной выборке — 26.032%. Обе превышают зарегистрированный лимит риска 25% при зафиксированном контрактом размере позиции.
В базовом варианте положительными были лишь 3 лет из 7; это заданный обязательный критерий провала, а на 2021 приходится 85% прибыли. Итоговые годовые доходности не предоставлены.
Результаты по всей выборке OOS и значимость на контрольной выборке неубедительны, но это не научное опровержение. Согласованность на контрольной выборке остаётся неясной, несмотря на consistent_with_oos=true.
Предоставленная запись контрольного шлюза «отчёта об оптимизации нет» устарела: оптимизация завершена, итоговые параметры представлены.
Прогнозы по числу сделок и экономическим показателям сбылись, но обещание по просадке не выполнено. Объединённый HAC OOS коэффициент Шарпа 0.546 ниже прогнозного значения 0.6; этот прогноз не является порогом допуска.
История итераций
Проверка не пройдена (уровень 4 — проверка QA) [класс=code_defect]: - [критично] Разогрев основного плеча применяется дважды. Базовый класс не вызывает calculate_signal, пока не накопится min_bars_required() баров. Поэтому возврат 182 запускает пустой буфер _rets у ETH только на баре 182; первые 180 доходностей доступны на баре 362. Дополнительные плечи обновляются с первого бара и готовы к бару 181. В результате ETH пропускает подходящие импульсы, а предусмотренный контрактом разогрев в 200 баров не инициализирует сигнал, в отличие от остальных девяти предположительно идентичных плеч. (строка 71) — исправление: разреши calculate_signal работать с первого бара основного плеча, например возвращая 1 из min_bars_required(). Сохрани существующую проверку готовности на 180 доходностей в _update_coin. Убедись, что основное и дополнительные плечи с одинаковой историей цен становятся готовыми и планируют импульсы на одинаковых временных отметках после предписанного разогрева.
Разреши calculate_signal запускаться с первого основного бара, например возвращая 1 из min_bars_required(). Сохрани существующую проверку готовности по 180 доходностям в _update_coin. Убедись, что основной и дополнительные ноги с одинаковой историей цен становятся готовы и планируют шоки на одинаковые временные метки после заданного периода прогрева.
Разогрев основного плеча применяется дважды. Базовый класс не вызывает calculate_signal, пока не накопится min_bars_required() баров. Поэтому возврат 182 запускает пустой буфер _rets у ETH только на баре 182; первые 180 доходностей доступны на баре 362. Дополнительные плечи обновляются с первого бара и готовы к бару 181. В результате ETH пропускает подходящие импульсы, а предусмотренный контрактом разогрев в 200 баров не инициализирует сигнал, в отличие от остальных девяти предположительно идентичных плеч.
Если запланированный бар входа отсутствует, обработай событие и отбрось его, не открывая позицию на следующем баре.
Отложенный вход остаётся допустимым в течение полного интервала после запланированного времени. Если запланированный бар отсутствует, стратегия может войти через 28 часов после шока вместо заданных 24 часов.
Проверка не пройдена (уровень 1.5 — согласованность гипотезы и конфигурации) [class=hypothesis_mismatch]: - optimization_plan фиксирует position_fraction на уровне 0.12
Реализуй предусмотренный контрактом катастрофический стоп 15% для каждого инструмента наряду с выходом по фиксированному времени удержания. Используй стоп только для сокращения позиции, без emulation_trigger для внутрибараной защиты, и отмени его при закрытии позиции по расписанию.
Замороженный исследовательский контракт требует catastrophic_stop_pct=0.15, но _exit_due проверяет только прошедшее время удержания. Ни один путь входа не устанавливает защитный стоп, а базовый класс автоматически не реализует catastrophic_stop_pct. Поэтому позиция может оставаться открытой после убытка 15% до запланированного выхода.
Применяй единый лимит одновременных позиций к обоим путям входа. Учитывай открытые позиции этой стратегии по всем десяти инструментам и ожидающие резервы на вход; отклоняй новые события, когда заняты шесть слотов.
Ограничение замороженного контракта max_concurrent=6 нигде не применяется. И входы по дополнительным инструментам, и входы по основному инструменту проверяют только состояние позиции конкретного инструмента и достаточность наличных. Базовые помощники входа не ограничивают число позиций в портфеле. Семь или восемь одновременных позиций размером 12% капитала могут поместиться в доступные средства, нарушив контракт на шесть позиций.
Сводка по итогам
Высокая средняя доходность сделок не компенсировала превышение лимитов просадки и концентрацию годовой прибыли при фиксированном контракте на размер позиций.
Аналитик отказался от стратегии, поскольку итоговая просадка на полной истории 26.895% и просадка на защищённой контрольной выборке 26.032% превысили зарегистрированный лимит 25% при фиксированном размере позиции 12% от капитала. В базовом варианте положительными были лишь 3 года из 7, что не проходит обязательный критерий участия; 85% прибыли сконцентрировано в 2021.
Покупай десять основных спотовых активов Binance независимо друг от друга через 24 часов после восходящего ралли на 2.5 сигма, затем удерживай 48 часов, чтобы захватить отложенное продолжение движения.
Базовый вариант показал доходность 180.63%, коэффициент Шарпа 0.970 по 597 закрытым сделкам и максимальную просадку 29.535%. По итогам аналитика коэффициент Шарпа составил 1.000 по 505 сделкам, средняя чистая доходность сделки — 1.941%, максимальная просадка — 26.895%.
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.