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

Стратегии

BTC COIN-M US-сессионная сезонность продолжения импульса, длинные и короткие позиции (один инструмент BTCUSD_PERP.BINANCE_CM, бары по 1 ч, только OHLCV; вход в направлении значимого импульса ранней сессии US и удержание позиции на внутридневном продолжении до закрытия сессии, 3 параметр)

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

BtcCmInverseUsSessionMomentumContinuationLS

Критерий допуска бэктеста: - метрики ненадежны: 648 сделок / 1409 дней с данными — слишком мало свидетельств (нужно >=5 сделок за >=10 дней); увеличьте частоту сигналов или расширьте окно

Гипотеза

Стратегия LONG-SHORT по календарной сезонности для одного инструмента на обратном бессрочном контракте Binance COIN-M BTCUSD_PERP.BINANCE_CM (маржа в BTC, тейкерская комиссия за полный цикл около 0.06%, только OHLCV — одна позиция, поэтому стратегия избегает ловушки COIN-M для нескольких позиций/финансирования data_unavailable в L20/L34; бары бессрочного контракта BTC CM доступны за всю историю каталога). Источник преимущества — не возврат к среднему NOT, не пробой диапазона NOT, не финансирование NOT, не……Показать большеСвернуть

Стратегия LONG-SHORT по календарной сезонности для одного инструмента на обратном бессрочном контракте Binance COIN-M BTCUSD_PERP.BINANCE_CM (маржа в BTC, тейкерская комиссия за полный цикл около 0.06%, только OHLCV — одна позиция, поэтому стратегия избегает ловушки COIN-M для нескольких позиций/финансирования data_unavailable в L20/L34; бары бессрочного контракта BTC CM доступны за всю историю каталога). Источник преимущества — не возврат к среднему NOT, не пробой диапазона NOT, не финансирование NOT, не ликвидации NOT и не кросс-секционный фактор NOT; это внутридневная аномалия TIME-OF-DAY: направленный импульс, сформировавшийся на открытии US, как правило, продолжается PERSIST в течение сессии US. Механизм: каждый день измеряется доходность BTC за фиксированное окно сигнала ранней сессии US (13:00->15:00 UTC). Если абсолютная доходность за окно превышает порог входа (свежий значимый направленный импульс, а не шум), позиция открывается на закрытии бара 15:00 UTC в направлении SAME и удерживается на продолжении до часа выхода при закрытии сессии (21:00 UTC); не более одной позиции в день. Стратегия намеренно направлена на COIN-M по двум причинам: (1) минимальная комиссия около 0.10% CM ниже минимальной комиссии 0.15% USD-M, что дает умеренному преимуществу внутридневного продолжения больше шансов покрыть издержки; (2) BINANCE_CM представлен недостаточно (3.4% против целевого значения >=5%), а это допустимое применение CM с одной позицией BTC-OHLCV согласно L20. Всего 3 параметров (длина окна сигнала, порог входа, множитель стопа ATR), чтобы избежать переобучения, погубившего предыдущие гипотезы 248.

Перезапуск итерации. В отзыве указано, что предыдущий отказ был артефактом конвейера (ошибка привязки staticmethod в Layer-2, вердикты о доходности QA по неоптимизированному пробному тесту, нехватка слотов бэктеста), поэтому механизм намеренно оставлен без изменений: та же фиксируемая опорная точка -13:00-UTC, тот же вход в направлении продолжения, тот же календарный выход, тот же размер позиции в целых контрактах COIN-M, те же три настраиваемых параметра и ограничения. Повторная отправка побайтно идентичного……Показать большеСвернуть

Перезапуск итерации. В отзыве указано, что предыдущий отказ был артефактом конвейера (ошибка привязки staticmethod в Layer-2, вердикты о доходности QA по неоптимизированному пробному тесту, нехватка слотов бэктеста), поэтому механизм намеренно оставлен без изменений: та же фиксируемая опорная точка -13:00-UTC, тот же вход в направлении продолжения, тот же календарный выход, тот же размер позиции в целых контрактах COIN-M, те же три настраиваемых параметра и ограничения. Повторная отправка побайтно идентичного кода не проходит проверку неизменности хеша, поэтому я внес одно существенное изменение в самое слабое место кода: защитный стоп ATR теперь проверяется по LOW/HIGH бара, а не только по CLOSE. На барах длительностью 1 часов стоп, проверяемый только по закрытию, не срабатывает, если уровень пробит внутри бара, но цена закрывается обратно за ним; поэтому убыточная позиция могла пережить сколь угодно большое движение против нее до календарного выхода 21:00 — стоп является единственным ограничителем этого риска, и его недооценка как раз представляет собой ошибку стопа по закрытию бара, о которой предупреждают правила кодирования. Триггер срабатывает внутри бара; выход по-прежнему исполняется на закрытии бара через рыночный выход базового шаблона, поэтому цена исполнения внутри бара не предполагается. Я также объявил _param_bounds для трех параметров с ограничениями (signal_window_hours [1,5], entry_threshold [0.002,0.02], atr_stop_mult [1.0,4.0]), чтобы оптимизатор не перебирал значения, которые код незаметно заменяет ограниченными; в строке документации уже было обещано такое соответствие. Проверено по каталогу за окно песочницы (бары BTCUSD_PERP.BINANCE_CM длительностью 1 часов, последние примерно 830 дней): импульс 13:00->15:00 UTC превышает порог 0.6% в 296 из 726 дней, поэтому входы происходят часто и запуск не останется без сделок; медианная абсолютная величина импульса составляет 0.46%, что значительно превышает стоимость полного цикла около 0.10% CM, которую должно покрыть продолжение.

Отрицательное математическое ожидание на надежной выборке за 6.1 лет с 748 сделками: avg_trade_return_pct составляет -0.109% (ниже нуля, еще до того, как применяется комиссия за полный цикл около 0.10% CM), profit_factor 0.84, коэффициент Шарпа -0.81, счет ликвидирован до -100%. Реализация точно соответствует гипотезе, а конвейер входа работает исправно, поэтому это рыночный вердикт: импульс ранней сессии US определяет направление, но реализованное внутридневное продолжение имеет отрицательную чистую доходность при любом режиме волатильности и почти в каждом году. Оптимизация не может поднять преимущество, которое отрицательно еще до учета издержек; для трех параметров (окно, порог, стоп ATR) нет области значений, превращающей отрицательную премию за продолжение в положительную. Опасения QA насчет преимущества подтверждаются на полной истории. abandon_class=negative_expectancy.

Реализация

Внутридневная сезонность длинных и коротких позиций по времени суток на обратном бессрочном контракте BTC COIN-M (BTCUSD_PERP.BINANCE_CM, бары длительностью 1 часов, только OHLCV). Каждый день UTC закрытие бара, заканчивающегося в 13:00 UTC, фиксируется как ориентир сессии US; два часа спустя (бар, заканчивающийся в 15:00 UTC) измеряется импульс ранней сессии US как цена закрытия / ориентир - 1. Если его величина превышает entry_threshold (значение по умолчанию 0.6%), стратегия открывает позицию в направлении……Показать большеСвернуть

Внутридневная сезонность длинных и коротких позиций по времени суток на обратном бессрочном контракте BTC COIN-M (BTCUSD_PERP.BINANCE_CM, бары длительностью 1 часов, только OHLCV). Каждый день UTC закрытие бара, заканчивающегося в 13:00 UTC, фиксируется как ориентир сессии US; два часа спустя (бар, заканчивающийся в 15:00 UTC) измеряется импульс ранней сессии US как цена закрытия / ориентир - 1. Если его величина превышает entry_threshold (значение по умолчанию 0.6%), стратегия открывает позицию в направлении SAME — длинную при восходящем импульсе, короткую при нисходящем, — чтобы использовать внутридневное продолжение, не более одного входа в день UTC. Выход происходит при закрытии сессии US (бар, заканчивающийся в 21:00 UTC), по фиксированному стопу atr_stop_mult x ATR от цены входа, проверяемому теперь внутри бара по его минимуму/максимуму, либо по защитному ограничению max_hold_bars, если бар 21:00 отсутствует. Размер позиции корректен для обратного контракта: risk_pct капитала делится на долю стопа, чтобы получить номинал USD, ограниченный max_gross_frac капитала, и пересчитывается в контракты WHOLE по $100 через contracts_for_notional (ни в коем случае не по линейной формуле капитал/цена). Три настраиваемых параметра: signal_window_hours, entry_threshold, atr_stop_mult.

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

CLEAN RESTART 2026-09-04 — история вердиктов этого запуска и записи обучения были удалены, и он был перезапущен с этапа проверки. Предыдущий отказ был вызван конвейером, а не рынком: стенд Layer-2 неверно привязывал вспомогательные методы @staticmethod (исправлено), QA выносил окончательные вердикты о доходности по неоптимизированному пробному тесту (удалено — теперь QA оценивает только корректность), а тайм-ауты песочницы были вызваны нехваткой слотов бэктеста (исправлено). Гипотеза и код стратегии не изменились. Оцените код по существу; доходность будет определена позднее полным бэктестом и оптимизатором.

Изменять код не требуется; сообщите аналитику о несоответствии поля метрик.

Для avg_holding_bars указано значение 0.0, тогда как avg_holding_period — это '5h 13m': особенность отображения метрик, а не ошибка кода. Сама логика удержания позиции (вход на баре закрытия 15:00, выход на баре закрытия 21:00 или при срабатывании стопа ATR внутри бара, горизонт около 6 баров) корректна и согласуется со средним значением 5h13m.

Для подстраховки можно добавить в should_enter() явную проверку закрытой позиции; при текущем поведении это не требуется, поскольку базовый шаблон блокирует вход.

should_enter() сама по себе не проверяет, что позиция закрыта; она полагается на базовый шаблон, который блокирует вход при открытой позиции. Поскольку бар входа (час ts 14) возникает раз в день UTC, а позиция удерживается до выхода 21:00 в тот же день, на практике возможность входа есть только один раз в день, и условие «не более одной позиции в день» выполняется — однако эта гарантия неявно обеспечивается базовым шаблоном, а не задана явно здесь.

Неоптимизированная песочница показывает отрицательный результат: total_return -22%, коэффициент Шарпа -0.55, avg_trade_return_pct -0.139% (ниже нуля, а не просто ниже минимальной комиссии), profit_factor 0.79, а комиссия составляет 19.16% валовой прибыли на 296 внутридневных сделках. Это классическая картина «преимущество внутридневного продолжения не покрывает издержки полного цикла»: сигнальный импульс 0.6% отбирает входы, но ничего не говорит о реализованном движении продолжения, и здесь доходность продолжения……Показать большеСвернуть

Неоптимизированная песочница показывает отрицательный результат: total_return -22%, коэффициент Шарпа -0.55, avg_trade_return_pct -0.139% (ниже нуля, а не просто ниже минимальной комиссии), profit_factor 0.79, а комиссия составляет 19.16% валовой прибыли на 296 внутридневных сделках. Это классическая картина «преимущество внутридневного продолжения не покрывает издержки полного цикла»: сигнальный импульс 0.6% отбирает входы, но ничего не говорит о реализованном движении продолжения, и здесь доходность продолжения на сделку отрицательна после учета издержек полного цикла около 0.06-0.10% CM и высокой оборачиваемости. Это NOT дефект кода (win_rate 0.43, PF 0.79, коэффициент Шарпа -0.55 — обычные значения, не характерные для ошибки полярности или обратного расчета размера позиции). regime_performance показывает, что преимущество присутствует только в «нормальном» терциле волатильности (+7.1%, коэффициент Шарпа 0.54), а в спокойные/стрессовые периоды результат резко отрицательный. Аналитику следует проверить на полной истории, дает ли хоть какая-либо область параметров (entry_threshold, signal_window_hours) доходность продолжения на сделку, уверенно покрывающую издержки полного цикла CM; если нет, предположение о продолжении движения в определенное время суток не подтверждается. Это рекомендация, она не блокирует процесс.

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

Шарп
-0,81
Общая доходность
-100,00%
Максимальная просадка
100,00%
Всего сделок
748
Доля прибыльных
42,2%
Профит-фактор
0,84

Точная реализация: сделки соответствуют предполагаемому механизму продолжения движения US в течение сессии для длинных и коротких позиций (748 сделок, примерно 373 длинных / 375 коротких, один вход в день, корректное сигнальное окно 13:00->15:00 / выход 21:00).

Надежная большая выборка за 6.1 лет (50,537 баров): результат статистически значим, а не случаен.

Конвейер входа работает исправно (875 сигналов = 875 заявок, нет отбрасываний из-за нулевого размера позиции, минимального номинала или нехватки средств), поэтому это рыночный вердикт, а не дефект кода.

Отрицательное математическое ожидание: avg_trade_return_pct -0.109% составляет BELOW ZERO, это не просто значение ниже минимальной комиссии около 0.10% CM: внутридвижение продолжения имеет отрицательную доходность еще до учета издержек.

profit_factor 0.84 (<1), win_rate 0.42, математическое ожидание -$42.64/сделку, коэффициент Шарпа -0.81, коэффициент Сортино -0.74.

Счет ликвидирован (total_return -100%, max_drawdown 100%) на 2025-05-18.

Убыток во всех режимах волатильности (спокойном -53%, нормальном -100%, стрессовом -16%) и во всех календарных годах, кроме 2022; ни одна область параметров не показывает устойчивого преимущества.

Комиссия 16.66% от валовой прибыли подтверждает классическую картину «преимущество не покрывает издержки полного цикла», на которую указал QA; порог импульса отбирает входы, но ничего не говорит о реализованном продолжении, чистая доходность которого отрицательна.

Анализ

Критерий допуска бэктеста: - метрики ненадежны: 648 сделок / 1409 дней с данными — слишком мало свидетельств (нужно >=5 сделок за >=10 дней); увеличьте частоту сигналов или расширьте окно

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

Проверка не пройдена (Layer 4 — проверка QA) [класс=premise_falsified]: - Гипотеза о продолжении импульса в течение сессии US опровергнута: вход в направлении импульса 13:00-15:00 UTC и удержание до закрытия 21:00 дают отрицательную чистую доходность LOSER. profit_factor 0.757 (<1), total_return -43.11%, avg_trade_return_pct -0.169% (отрицательно), математическое ожидание -$105, коэффициент Шарпа -0.145, альфа -0.107 на 296 хорошо измеренных сделках. win_rate 0.432 при симметричной выплате (avg_win $760 ~=……Показать большеСвернуть

Проверка не пройдена (Layer 4 — проверка QA) [класс=premise_falsified]: - Гипотеза о продолжении импульса в течение сессии US опровергнута: вход в направлении импульса 13:00-15:00 UTC и удержание до закрытия 21:00 дают отрицательную чистую доходность LOSER. profit_factor 0.757 (<1), total_return -43.11%, avg_trade_return_pct -0.169% (отрицательно), математическое ожидание -$105, коэффициент Шарпа -0.145, альфа -0.107 на 296 хорошо измеренных сделках. win_rate 0.432 при симметричной выплате (avg_win $760 ~= avg_loss $765) — импульс ранней сессии US продолжается лишь примерно в 43% случаев, поэтому эффект, на котором зарабатывает стратегия, отсутствует (слегка обращен в противоположную сторону), а на удержании около 6 часов он приносит убыток после издержек полного цикла около 0.10% CM. Плечо 2.0 увеличивает просадку до 61.7% (с CI до 90%). Направление реализовано правильно (продолжение, как задано; ошибки полярности/последовательности нет), поэтому реализация точная, но данные опровергают гипотезу сезонности. - Плечо 2.0 при avg_position около 87% превращает ставку на сессию без преимущества в просадку 61.7% (с CI до 90.2%) и end_unrealized -11.9% — дополнительный риск при отрицательном математическом ожидании.

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