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

Стратегии

бэктестинг LINK 4H ATR: пробой | Stratmill

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

LinkFourHourAtrExpansionBreakoutLong

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

Эта стратегия ввела новый класс механизма — смену режима волатильности: она открывает длинную позицию LINK, когда ATR резко расширяется вместе с бычьим баром, новым максимумом за 5 баров и фильтром восходящего тренда. Гипотеза состояла в том, что всплески волатильности LINK, вызванные новостным фоном, продолжат движение. Комбинация условий 4 сработала корректно в 45 сделках, но преимущество было явно отрицательным: фактор прибыли 0.61, Sharpe -3.30, общая доходность -28.2%; убыток был во все годы, кроме 2024. Профиль был дважды неблагоприятным: доля прибыльных сделок 44.4%, а средняя прибыль ниже среднего убытка. Аналитик отказался от стратегии на этапе проверки бэктеста, на второй итерации: предпосылка о продолжении движения после расширения волатильности не работает на этом инструменте (покупка кульминационных пробоев с возвратом к среднему), а небольшой выборки из 45 сделок недостаточно для оптимизации. Поэтому стратегия не перешла к оптимизации или оценке риска.

Гипотеза

Торговая стратегия только для длинных позиций, одного инструмента и одного таймфрейма на барах LINKUSDT.BINANCE 4H, реализующая NEW MECHANISM CLASS: VOLATILITY EXPANSION как основной сигнал входа, а не пробой канала. Механизм: выявлять бары, на которых текущий ATR существенно превышает его сглаженное среднее за 30 баров (atr_14 / atr_sma_30 >= 1.4), AND бар закрывается бычьим AND цена достигает нового максимума за 5 баров, что трактуется как «смена режима волатильности» с направленным смещением. Условие……Показать большеСвернуть

Торговая стратегия только для длинных позиций, одного инструмента и одного таймфрейма на барах LINKUSDT.BINANCE 4H, реализующая NEW MECHANISM CLASS: VOLATILITY EXPANSION как основной сигнал входа, а не пробой канала. Механизм: выявлять бары, на которых текущий ATR существенно превышает его сглаженное среднее за 30 баров (atr_14 / atr_sma_30 >= 1.4), AND бар закрывается бычьим AND цена достигает нового максимума за 5 баров, что трактуется как «смена режима волатильности» с направленным смещением. Условие долгосрочного восходящего тренда (цена закрытия > sma_100) не даёт открывать позиции против нисходящего тренда. CRITICALLY DISTINCT от всех существующих механизмов конвейера: (a) NOT пробой Дончиана — основным триггером служит коэффициент расширения ATR, а не уровень пробоя канала; (b) NOT всплеск объёма — используется волатильность диапазона бара (ATR), а не объём сделок; (c) NOT свечной паттерн или паттерн позиции закрытия — используется агрегация ATR нескольких баров, а не геометрия одного бара или короткого окна; (d) NOT стратегия определения размера позиции по целевой волатильности — расширение волатильности является SIGNAL, а не входным параметром размера позиции. Класс механизма — «смена режима волатильности»; он описан в моделях Engle 1982 ARCH и литературе Mandelbrot 1963 о кластеризации волатильности, а для криптовалют применён Bekiros 2017 в работе «Устойчивость волатильности на рынках криптовалют». LINK — новый инструмент 4H в конвейере: существует только LinkDailyMultiWeekTrendContinuationLong (дневной таймфрейм), стратегии LINK 4H нет. У LINK есть отдельные циклы новостей (интеграции оракулов, запуски CCIP, новости о партнёрстве Chainlink BUILD, токенизация RWA), порождающие события расширения волатильности, не связанные с BTC/ETH/SOL бета-коэффициентом. Один инструмент и один таймфрейм напрямую исключают сбойный сценарий с несколькими инструментами audit_stale. Стратегия открывает только длинные позиции, потому что (i) сочетание расширения волатильности, бычьего бара и восходящего тренда смещено в бычью сторону; (ii) фильтр тренда не позволяет торговать против нисходящего тренда; (iii) короткие позиции по основным криптовалютам эмпирически опровергнуты.

Итерация 2 исправляет сбой «замороженный сигнал (значение=0.0)» в Layer-2 в пяти синтетических сценариях. Первопричиной был антипаттерн сигнала с условием: calculate_signal возвращал коэффициент расширения только при срабатывании сочетания всех 4 условий (vol_expanded AND бычий AND new_high AND trend_up), а в противном случае — 0.0; на гладких синтетических данных это происходило на каждом баре, поэтому значение было постоянным: 0.0. Исправление: calculate_signal теперь ALWAYS возвращает непрерывную меняющуюся от……Показать большеСвернуть

Итерация 2 исправляет сбой «замороженный сигнал (значение=0.0)» в Layer-2 в пяти синтетических сценариях. Первопричиной был антипаттерн сигнала с условием: calculate_signal возвращал коэффициент расширения только при срабатывании сочетания всех 4 условий (vol_expanded AND бычий AND new_high AND trend_up), а в противном случае — 0.0; на гладких синтетических данных это происходило на каждом баре, поэтому значение было постоянным: 0.0. Исправление: calculate_signal теперь ALWAYS возвращает непрерывную меняющуюся от бара к бару оценку = tanh((расширение-1)*2 + (цена закрытия/SMA-1)), зависящую от коэффициента расширения ATR, естественной непрерывной переменной решения, меняющейся на каждом баре во всех сценариях, включая zero_volume, где цены всё ещё движутся. Строгое решение о входе не изменилось: оно вычисляется в том же месте и сохраняется в self._long_trigger; теперь его используют should_enter и position_size вместо знака исходного сигнала, поэтому поведение сделок в Layer-3 и логика выхода (уже прошедшая Layer 1) побайтно идентичны прежним. Импорты не менялись (только numpy), что сохраняет прохождение Layer-1. Биржа и плечо не изменились: фьючерсы BINANCE с плечом 2.0, при этом position_size действительно использует плечо (капитал * position_pct * плечо).

Бэктестинг: базовый механизм не даёт преимущества на небольшой выборке. Сочетание расширения ATR, бычьего бара, нового максимума за -5 баров и восходящего тренда на LINK 4H приводит к покупке кульминационных пробоев с возвратом к среднему: profit_factor 0.61, ожидание -640/сделку, Sharpe -3.30; убыток во все годы, кроме 2024. Преимущество дважды неблагоприятно (win_rate 44.4% AND avg_win < avg_loss), поэтому настраивать долю успешных сделок или соотношение прибыли и убытка не на чем. Всего 45 сделок за 6.4 лет — оптимизация подгонит параметры под шум. Сигнал реализован правильно (45/45 входов, пропущено 0), значит, проблема в гипотезе (предпосылка о продолжении движения после расширения волатильности не работает на этом инструменте и таймфрейме), а не в коде — тратить 2 часов на оптимизацию не стоит.

Реализация

Только длинные позиции: пробой при расширении ATR (смена режима волатильности) на бессрочном контракте LINKUSDT.BINANCE USD-M, бары 4H, только OHLCV. Открывает длинную позицию, когда Wilder ATR(14) расширяется до >= 1.4x своего среднего за 30 баров AND бар закрывается бычьим AND цена достигает нового максимума за 5 баров при фильтре восходящего тренда close>SMA(100). Выход: фиксация прибыли, стоп-лосс, слом тренда (close<SMA) или временной стоп через 12 баров. calculate_signal() возвращает непрерывную оценку tanh на основе коэффициента расширения ATR и соотношения цены к тренду, поэтому сигнал меняется на каждом баре; строгая комбинация условий входа 4 сохраняется в self._long_trigger и используется в should_enter/position_size. Кредитное плечо 2.0 (~1.2x от капитала в номинале).

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

Проверка не пройдена (уровень 2 — синтетические сценарии): Использованные параметры: ['atr_period', 'min_notional', 'position_pct', 'trend_period', 'max_hold_bars', 'stop_loss_pct', 'atr_sma_period', 'expansion_ratio', 'take_profit_pct', 'breakout_lookback'] Убедись, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: Замороженный сигнал: все сигналы 396 идентичны (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется. - steady_downtrend: Замороженный сигнал: все сигналы 396 идентичны (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется. - flat_ranging: Замороженный сигнал: все сигналы 396 идентичны (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется. - zero_volume: Замороженный сигнал: все сигналы 396 идентичны (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется. - price_gap: Замороженный сигнал: все сигналы 396 идентичны (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется.

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

Шарп
-3,30
Общая доходность
-28,18%
Максимальная просадка
30,17%
Всего сделок
45
Доля прибыльных
44,4%
Профит-фактор
0,61

Сигнал работает правильно: 45 входов из 13808 баров, пропущено 0 — комбинация условий 4 реализована согласно спецификации

Один инструмент и один таймфрейм, риска устаревших данных по нескольким активам нет

Отрицательное матожидание: profit_factor 0.61, ожидание -640/сделку, total_return -28.2%

Дважды неблагоприятно: win_rate 44.4% AND avg_win (2213) < avg_loss (2924)

Sharpe -3.30, Sortino -4.87, max_drawdown 30.2% — резко отрицательная доходность с учётом риска

Убыточна во все годы, кроме 2024 (2020 -5%, 2021 -12%, 2022 -8%, 2023 -6%, 2025 -10%) — не выдерживает разные рыночные режимы

Всего 45 сделок за 6.4 лет — выборка слишком мала для содержательной оптимизации, даже если бы преимущество было небольшим

Механизм покупает всплески волатильности на новых максимумах, которые возвращаются к среднему, на LINK 4H — вход структурно несвоевременен

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

Вход на продолжение движения при расширении волатильности структурно несвоевременен на LINK 4H: покупка всплесков новых максимумов при расширении ATR приводит к кульминационным движениям с возвратом к среднему и дважды неблагоприятному преимуществу (доля прибыльных сделок ниже -50%, AND средняя прибыль ниже среднего убытка). При примерно 7 сделках в год выборка слишком мала для оптимизации, даже если бы существовало небольшое преимущество.

Аналитик на проверке бэктеста вынес вердикт «отказаться»: сигнал срабатывал корректно (45/45 входов, ни один не пропущен), значит, причина в гипотезе — предпосылка о продолжении движения после расширения волатильности ведёт к покупке кульминационных пробоев новых максимумов, которые возвращаются к среднему на LINK 4H. Дважды неблагоприятное преимущество не оставляет возможности настраивать долю успешных сделок или соотношение прибыли и убытка, а всего 45 сделок за 6.4 лет означали бы подгонку оптимизации под шум.

Стратегия только для длинных позиций и одного инструмента на фьючерсах Binance LINKUSDT 4H (плечо 2.0x) реализует новый класс механизма «смена режима волатильности»: открывает длинную позицию, когда ATR расширяется до ≥1.4x среднего за 30 баров AND бар закрывается бычьим AND цена достигает нового максимума за 5 баров; вход ограничен фильтром восходящего тренда 100-SMA.

За 45 сделок за 6.4 лет доходность составила -28.2%, фактор прибыли — 0.61, доля прибыльных сделок — 44.4%, ожидание — -$641/сделку, коэффициенты Sharpe и Sortino — -3.30 и -4.87, максимальная просадка — 30.2%; преимущество было дважды неблагоприятным (средняя прибыль $2,213 < средний убыток $2,924), убыток был во все годы, кроме 2024.

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