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

Стратегии

BNB Согласование тренда на двух таймфреймах, длинные и короткие позиции (BNBUSDT.BINANCE USD-M, основной 8H + подтверждение 1D, без позиции при расхождении, размер по волатильности, выход по скользящему стопу ATR, 3 параметров)

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

BnbDualTimeframeTrendConfluenceLS

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

Чистое преимущество на обучающей выборке при высоком PBO и отрицательном результате на отложенной — это провал из-за отсутствия обобщения; механизм уже дважды погиб от переобучения на том же инструменте и слишком медленно проверяет собственный OOS, поэтому настраивать его дальше некуда.

Гипотеза

Точная реализация заявленного механизма: основной сигнал тренда на 8H подтверждается сигналом на 1D; при расхождении — без позиции; размер позиции зависит от волатильности; выход по скользящему стопу ATR; три настраиваемых параметра (ema_ratio, daily_lookback, trail_atr_mult), объявленные _param_bounds совпадают с ограничениями в коде. Сигнал возвращается непрерывно в естественных единицах (спред ATR, нормированный на EMA, около +-5) и в should_enter сравнивается с нулём, поэтому он не становится нулевым или……Показать большеСвернуть

Точная реализация заявленного механизма: основной сигнал тренда на 8H подтверждается сигналом на 1D; при расхождении — без позиции; размер позиции зависит от волатильности; выход по скользящему стопу ATR; три настраиваемых параметра (ema_ratio, daily_lookback, trail_atr_mult), объявленные _param_bounds совпадают с ограничениями в коде. Сигнал возвращается непрерывно в естественных единицах (спред ATR, нормированный на EMA, около +-5) и в should_enter сравнивается с нулём, поэтому он не становится нулевым или постоянным. Площадка — Binance USD-M futures, поскольку стратегия открывает короткие позиции и использует плечо 2x; плечо учитывается в position_size через ограничение максимального номинала, которое срабатывает при низкой волатильности, когда размер позиции по риску иначе превысил бы номинал капитала. Дневная часть использует инструмент SAME на более крупном таймфрейме, поэтому на неё не распространяется ограничение выравнивания одинаковых таймфреймов и она не может задержать основной путь; extra_instruments передаёт BNBUSDT.BINANCE, позиционно согласованный с дневным типом бара. Частота входов определяется простым совпадением двух условий, которое несколько раз в год меняет направление на данных 8H BNB; риск отсутствия сделок мал. Вычисления на бар имеют сложность O(1) (EMA, ограниченный дек TR), поэтому ограничение дымовой проверки в 300s не под угрозой. По инструкции отмечу оговорку: в прошлых переносах этот рецепт согласования на двух таймфреймах неоднократно не удавалось обобщить за пределами BTC; поэтому ожидаю, что ключевой проверкой станет walk-forward-анализ.

Переобучение / отсутствие обобщения (NOT преимущество после комиссий — доходность на сделку 1.36% превышает порог). Не пройдены два обязательных контрольных условия HARD: Sharpe на контрольной выборке -0.993 <= 0 на неиспользованном окне последнего года (52 сделок — преимущество на форвардном участке NEGATIVE, а не пограничное), а также PBO 0.6376 > 0.5 (отбор, вероятнее всего, привёл к переобучению; худшее окно 0.79). Проверка устойчивости подтверждает, что выбранный Sharpe — шум от выбора лучшего из N:……Показать большеСвернуть

Переобучение / отсутствие обобщения (NOT преимущество после комиссий — доходность на сделку 1.36% превышает порог). Не пройдены два обязательных контрольных условия HARD: Sharpe на контрольной выборке -0.993 <= 0 на неиспользованном окне последнего года (52 сделок — преимущество на форвардном участке NEGATIVE, а не пограничное), а также PBO 0.6376 > 0.5 (отбор, вероятнее всего, привёл к переобучению; худшее окно 0.79). Проверка устойчивости подтверждает, что выбранный Sharpe — шум от выбора лучшего из N: deflated_sharpe 0.708 << 0.95, is_significant=false, и результат не проходит программный FDR (проверку проходят 3 из 239, candidate_p 0.2917). Walk-forward-анализ показывает классическое угасание: среднее IS 1.22 -> среднее OOS 0.672; одно окно OOS -0.05. Согласно правилу «переобучение или нежизнеспособная предпосылка», обвал высокого IS/OOS вместе с отрицательным результатом на контрольной выборке означает ABANDON, а не пересмотр: идентичный механизм лонг-шорт на основе согласования импульса на двух таймфреймах BNB уже ALREADY дважды погиб из-за переобучения на этом же инструменте BNBUSDT (Sharpe родственных стратегий 0.97/PF 1.82 — переобучение, 0.38/PF 1.19 — переобучение), а этот вариант ниже единственного уровня, который когда-либо выдерживал проверку в этом классе (ADA dual-TF: Sharpe 1.6/PF 2.19). Чувствительность ровная, резкого порога нет, и неиспытанной устойчивой области тоже нет, поэтому итерацию (попытка 1 из 2) некуда настраивать лучше — применение той же схемы снова приводит к переобучению. Сам oos_vault отмечен как недостаточно мощный (ожидается около 63 сделок против необходимых 100), поэтому имеющейся истории недостаточно, чтобы проверить такой медленный механизм. Тип неудачи: переобучение / отсутствие обобщения (BNB, клон согласования тренда на двух таймфреймах).

Реализация

BNBUSDT Binance USD-M: бессрочный контракт, согласование тренда на двух таймфреймах, длинные и короткие позиции. Быстрая часть на барах 8-HOUR рассчитывает спред EMA, масштабированный по волатильности ((EMA_fast - EMA_slow) / ATR, непрерывный на каждом баре); медленная часть на барах 1-DAY определяет знак доходности за daily_lookback дней. Позиция открывается, только если направления совпадают (оба вверх -> LONG, оба вниз -> SHORT); при любом расхождении стратегия остаётся без позиции. Выход происходит при срабатывании скользящего стопа ATR (откат на trail_atr_mult x ATR входа от лучшего закрытия после входа), смене дневного тренда против позиции или смене спреда 8H против позиции. Размер позиции в первую очередь определяется риском (капитал * risk_pct / расстояние до скользящего стопа), так что риск на сделку составляет около 1.5% капитала при любом режиме; размер ограничен max_notional_frac * капитал * плечо.

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

После перезапуска восстанавливай направление по фактической открытой позиции в кэше (cache.positions_open), а не по знаку сигнала.

should_exit() восстанавливает self._side по знаку текущего сигнала, если состояние утрачено (при перезапуске). В бэктесте это безопасный резервный вариант (состояние не теряется в середине запуска), но после аварийного перезапуска на реальном счёте он может неверно определить направление открытой позиции и ошибочно сработать на выход по скользящему стопу или режиму. Только рекомендация.

Примечание разработчика и недавняя история фабрики стратегий указывают на то, что этот механизм склонен к переобучению: согласование импульса на двух или нескольких таймфреймах неоднократно не удавалось обобщить за пределами BTC (ETH, XRP, AAVE, LINK, DOT — все заброшены как переобученные или fee_edge). Значение win_rate в песочнице низкое (34.7%, только короткая позиция 29.9%), а прибыль обеспечена несколькими крупными выигрышами (avg_win 2640 против avg_loss 1007, largest_win 17.6k, эксцесс 6.4); Sharpe в песочнице CI [-0.12, 1.42] охватывает ноль. Это не препятствие — код точно реализует замысел, — но ключевая проверка здесь — обобщение по walk-forward/OOS, поэтому при оценке бэктеста относись к основным метрикам с осторожностью.

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

Шарп
0,67
Общая доходность
86,12%
Максимальная просадка
13,93%
Всего сделок
331
Доля прибыльных
32,9%
Профит-фактор
1,37

avg_trade_return_pct 0.952% с большим запасом превышает порог комиссий Binance USD-M 0.15%; комиссия составляет лишь 3.74% от валовой прибыли, поэтому преимущество положительно до вычета издержек и не зависит от низких комиссий.

Надёжная выборка: 331 сделок за 6.3 лет, profit_factor 1.373, max_drawdown умеренный 13.9%, recovery_factor 5.8.

Сделки точно соответствуют гипотезе: сбалансированная книга согласованных сигналов с длинными позициями 184 и короткими 147; низкая доля выигрышных сделок (33%) компенсируется крупными выигрышами (avg_win 2747 против avg_loss 982). Это ожидаемый профиль системы согласования тренда, а не несоответствие механизма.

Результат положительный при всех режимах волатильности (спокойный 1.05 / обычный 0.68 / стрессовый +0.37) и в большинстве стрессовых окон — в стрессовом терциле обвала нет.

Базовый Sharpe 0.666 умеренный, а Sharpe CI [-0.12, 1.39] охватывает ноль; доля выигрышных сделок 33% (только короткие позиции 28%) и тяжёлый правый хвост распределения означают, что результат зависит от нескольких крупных выигрышей (эксцесс 6.4).

Предупреждение для этого класса: стратегии совпадения импульса на одном инструменте с двумя TF на основе BTC плохо обобщаются (ETH/XRP/AAVE копий отброшены из-за переобучения), а QA указывает, что именно этот механизм склонен к переобучению. Проверка обобщения на скользящем анализе/OOS — решающий критерий.

2026 YTD отрицательный (-1.44%); недавний скользящий Sharpe оставался резко отрицательным до 2025, а затем восстановился.

Анализ

avg_trade_return_pct 1.36% превышает пороговую комиссию Binance USD-M 0.15% примерно на 9x; комиссия составляет лишь 3.28% от валовой прибыли, поэтому это NOT не случай, когда преимущество уничтожается комиссиями, — на выборке валовое преимущество до вычета издержек реально.

Анализ чувствительности не выявил проблем: нет параметров с резким обрывом (cliff_count 0), поверхность гладкая, walk-forward is_overfitted=false, оптимизированная просадка умеренная (10.5%).

Порог HARD — отложенная выборка не пройдена: Sharpe -0.993 при 52 сделках на неизвестном ранее окне последнего года. Форвардный результат оказался NEGATIVE, то есть не просто ухудшился (consistent_with_oos истинно лишь потому, что сама оценка WF-OOS зашумлена).

Порог HARD: PBO 0.6376 > 0.5; вероятнее всего, подбор параметров привёл к переобучению (худшее окно PBO 0.79).

Выбранный Sharpe неотличим от шума выбора лучшего из N: deflated_sharpe 0.708 < 0.95, is_significant=false, и он не проходит проверку на уровне программы FDR (Benjamini-Hochberg q=0.10 оставляет прошедшими проверку 3 из 239; candidate_p 0.2917).

IS->OOS: спад подтверждает переобучение: средний Sharpe IS 1.22 -> средний OOS 0.672; одно окно OOS на уровне -0.05.

oos_vault отмечен как UNDERPOWERED (ожидается около 63 сделок против необходимых 100) — этот механизм слишком медленный, чтобы проверить его вне выборки на доступной истории.

Идентичный механизм BNB согласования импульса на двух таймфреймах LS уже дважды оставили OVERFIT без дальнейшего использования на этом же инструменте (у родственных стратегий Sharpe 0.97/PF 1.82 и 0.38/PF 1.19); этот вариант ниже единственного сохранившегося уровня (ADA: Sharpe 1.6/PF 2.19).

Benjamini-Hochberg при q=0.10 среди 239 кандидатов программы сохраняет 3. Кандидат, который не проходит эту проверку, неотличим от шума самой программы, какими бы хорошими ни выглядели его отдельные статистики.

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

Вердикт аналитика после оптимизации: не пройдены два порога HARD — Sharpe на отложенной выборке -0.99 (≤0) и PBO 0.6376 (>0.5); проверка устойчивости подтвердила, что Sharpe был шумом выбора лучшего из N (дефлированный 0.708 < 0.95, спад IS→OOS 1.22→0.672).

Система согласования тренда для длинных и коротких позиций на BNBUSDT USD-M: позиция открывается, только если совпадают направление спреда EMA, масштабированного по волатильности на 8H, и тренд на 1D; размер сначала рассчитывается по риску, выход — по скользящему стопу ATR или смене тренда.

Первичный бэктест показал 86.1% за 6.3 лет и 331 сделок при Sharpe 0.67, PF 1.37, доле выигрышных сделок 33% и максимальной просадке 13.9%; оптимизация подняла Sharpe на обучающей выборке до 0.89 (PF 1.57, средняя доходность сделки 1.36% от номинала), но на отложенном окне последнего года Sharpe оказался отрицательным: -0.99 при 52 сделках.

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