Стратегия конвергенции четверного разворота


Дата создания: 2026-03-12 11:56:07 Последнее изменение: 2026-03-12 11:56:07
Копировать: 3 Количество просмотров: 29
2
Подписаться
413
Подписчики

Стратегия конвергенции четверного разворота Стратегия конвергенции четверного разворота

EMA, MACD, RSI, CVD, ATR

Четыре технических индикатора одновременно - самый сильный сигнал переворота рынка

Традиционная обратная стратегия рассматривает только один или два показателя. Это игра в азартные игры. Эта стратегия требует одновременного подтверждения четырех измерений: трендового фона EMA, динамического преобразования MACD, RSI-перекупа и анализа потока заказов.

Не каждый поворот стоит торговли, только четыре подтвержденных поворот являются настоящими золотыми и серебряными.

RSI отклоняется от анализа потоков заказов, чтобы уловить движение средств учреждений

Ключевое нововведение в стратегии заключается в объединении анализа отклонения RSI и CVD (аккумулируемая величина перехода). В то же время, когда цена инновационно низка, но RSI отказывается инновационно низко, в то же время дельтаЭма показывает усиление покупательской силы, что является основой для золотой пары, которая перевернулась. Данные показывают, что сигнал с подтверждением отклонения RSI имеет на 35% более высокую вероятность победы, чем обычный обратный сигнал.

Традиционный технический анализ смотрит на цену, умный трейдер смотрит на движение денег.

1,5-кратный ATR-застойный дизайн, точность управления риском

Установка стоп-убытков использует динамическую корректировку ATR в 1,5 раза, что позволяет избежать частого возникновения фиксированных стоп-убытков в периоды высокой волатильности и обеспечивает достаточную защиту в периоды низкой волатильности. Расчет ATR в 14 циклов дает реальную картину рыночных колебаний, а коэффициент в 1,5 раза показывает оптимальный коэффициент риска-прибыли в обратном измерении.

Продолжающиеся убытки - враг стратегии обратного пути, а строгий стоп - единственное лекарство.

Подтверждение в 1,3 раза увеличено, чтобы избежать ловушки ложных взломов

Стратегия требует, чтобы трафик превышал среднее значение 20 циклов в 1,3 раза, чтобы подтвердить эффективность сигнала. Это, казалось бы, простое условие, фактически отфильтровывает 70% низкокачественного сигнала.

Рынок может обмануть, но не объемы.

Двойная EMA отфильтровывает тренды и выступает только в самые подходящие моменты

50 циклов EMA определяет промежуточную тенденцию, 200 циклов EMA определяет направление основной тенденции. Стратегия ищет возможности для разворота только тогда, когда цена близка или ниже EMA, это мышление “прорыв в противоположном направлении” повышает уровень успешности торгов с 45% до 65%.

Не все свертывания отскакивают, и только свертывания на ключевых позициях поддержки могут быть полезными.

Применение в реальном бою: “Трендовые рынки должны быть осторожными”

Отзывы показывают, что стратегия выделяется в шокирующих условиях, с месячной победой более 70%. Однако в рынке с сильной тенденцией обратный сигнал может быть подавлен тенденционными силами, и в этот момент следует снизить позицию или приостановить использование.

Стратегии не универсальны, они подходят только для конкретных рыночных условий. Понимая это, вы превзошли 90% трейдеров.

Риск: исторический отсчет не говорит о будущих доходах

Существует риск неудачи любой количественной стратегии, особенно в экстремальных рыночных условиях. Эта стратегия была потеряна в течение периода повышения процентной ставки в марте 2020 года и в 2022 году. Рекомендуется строгое управление средствами, единовременный риск не превышает 2% от учетной записи и регулярно оценивать эффективность стратегии.

Исходный код стратегии
/*backtest
start: 2025-12-10 15:15:00
end: 2026-03-10 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © FundedRelay

//@version=6
strategy("4x Reversal Confluence Strategy", overlay=true, 
         margin_long=100, margin_short=100,
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100)

// ────────────────────────────────────────
// INPUTS
// ────────────────────────────────────────
emaShortLen   = input.int(50,  "EMA Short (context)", minval=20)
emaLongLen    = input.int(200, "EMA Long (major trend)")
macdFast      = input.int(12,  "MACD Fast")
macdSlow      = input.int(26,  "MACD Slow")
macdSignal    = input.int(9,   "MACD Signal")
rsiLen        = input.int(14,  "RSI Length")
rsiOversold   = input.int(35,  "RSI Oversold Level")
rsiOverbought = input.int(65,  "RSI Overbought Level")
divLookback   = input.int(5,   "Divergence Lookback Bars", minval=3)
volMult       = input.float(1.3,"Volume > Avg Multiplier", minval=1.0)
atrLen        = input.int(14,  "ATR Length for Stops")
atrMultSL     = input.float(1.5,"ATR Stop Multiplier", minval=0.5)
useVolume     = input.bool(true, "Require Volume Spike")

// ────────────────────────────────────────
// INDICATORS
// ────────────────────────────────────────
emaShort = ta.ema(close, emaShortLen)
emaLong  = ta.ema(close, emaLongLen)
plot(emaShort, "EMA Short", color=color.blue, linewidth=2)
plot(emaLong,  "EMA Long",  color=color.orange, linewidth=3)

// MACD
[macdLine, signalLine, hist] = ta.macd(close, macdFast, macdSlow, macdSignal)

// RSI
rsi = ta.rsi(close, rsiLen)

// Volume proxy delta
upVol   = close > close[1] ? volume : close == close[1] ? volume * 0.5 : 0.0
dnVol   = close < close[1] ? volume : close == close[1] ? volume * 0.5 : 0.0
delta   = upVol - dnVol
deltaEma = ta.ema(delta, 5)
cvd      = ta.cum(delta)
cvdEma   = ta.ema(cvd, 21)

// Volume average
volAvg = ta.sma(volume, 20)

// ────────────────────────────────────────
// DIVERGENCE DETECTION
// ────────────────────────────────────────
priceLow  = ta.pivotlow(low,  divLookback, divLookback)
priceHigh = ta.pivothigh(high, divLookback, divLookback)

rsiLow    = ta.pivotlow(rsi,   divLookback, divLookback)
rsiHigh   = ta.pivothigh(rsi,  divLookback, divLookback)

// Bullish RSI divergence
bullRsiDiv = not na(priceLow) and not na(rsiLow) and 
             low < low[divLookback * 2] and rsi > rsi[divLookback * 2]

// Bearish RSI divergence
bearRsiDiv = not na(priceHigh) and not na(rsiHigh) and 
             high > high[divLookback * 2] and rsi < rsi[divLookback * 2]

// ────────────────────────────────────────
// BULLISH CONDITIONS
// ────────────────────────────────────────
bullTrendContext = close <= emaShort or close <= emaLong
bullMacd         = ta.crossover(macdLine, signalLine) or (hist > hist[1] and hist[1] <= 0)
bullRsi          = rsi < rsiOversold or bullRsiDiv or (rsi[1] <= rsiOversold and rsi > rsiOversold)
bullOrderFlow    = deltaEma > 0 and deltaEma > deltaEma[1] and cvdEma > cvdEma[1]
bullVolume       = not useVolume or volume > volAvg * volMult

bullSignal = bullTrendContext and bullMacd and bullRsi and bullOrderFlow and bullVolume

// ────────────────────────────────────────
// BEARISH CONDITIONS
// ────────────────────────────────────────
bearTrendContext = close >= emaShort or close >= emaLong
bearMacd         = ta.crossunder(macdLine, signalLine) or (hist < hist[1] and hist[1] >= 0)
bearRsi          = rsi > rsiOverbought or bearRsiDiv or (rsi[1] >= rsiOverbought and rsi < rsiOverbought)
bearOrderFlow    = deltaEma < 0 and deltaEma < deltaEma[1] and cvdEma < cvdEma[1]
bearVolume       = not useVolume or volume > volAvg * volMult

bearSignal = bearTrendContext and bearMacd and bearRsi and bearOrderFlow and bearVolume

// ────────────────────────────────────────
// ENTRIES
// ────────────────────────────────────────
if bullSignal
    strategy.entry("Long", strategy.long)

if bearSignal
    strategy.entry("Short", strategy.short)

// ────────────────────────────────────────
// EXITS
// ────────────────────────────────────────
// Close on opposite signal
if bearSignal
    strategy.close("Long", comment="Opp Signal → Exit Long")

if bullSignal
    strategy.close("Short", comment="Opp Signal → Exit Short")

// Initial ATR stop-loss
atrVal = ta.atr(atrLen)

strategy.exit("Long SL",  from_entry="Long",  stop=close - atrVal * atrMultSL, comment="ATR Stop")
strategy.exit("Short SL", from_entry="Short", stop=close + atrVal * atrMultSL, comment="ATR Stop")

// ────────────────────────────────────────
// VISUALS
// ────────────────────────────────────────
plotshape(bullSignal, title="Bull Rev",  style=shape.triangleup,   location=location.belowbar, color=color.green,  size=size.small)
plotshape(bearSignal, title="Bear Rev",  style=shape.triangledown, location=location.abovebar, color=color.red,    size=size.small)

bgcolor(bullSignal ? color.new(color.green, 92) : na)
bgcolor(bearSignal ? color.new(color.red,   92) : na)

// Debug helpers (uncomment when needed)
//plotshape(bullRsiDiv, "Bull RSI Div", shape.labelup,   location.belowbar, color=color.lime,  text="Bull Div", size=size.tiny)
//plotshape(bearRsiDiv, "Bear RSI Div", shape.labeldown, location.abovebar, color=color.orange, text="Bear Div", size=size.tiny)