Estratégia de Convergência de Reversão Quádrupla


Data de criação: 2026-03-12 11:56:07 última modificação: 2026-03-12 11:56:07
cópia: 3 Cliques: 29
2
focar em
413
Seguidores

Estratégia de Convergência de Reversão Quádrupla Estratégia de Convergência de Reversão Quádrupla

EMA, MACD, RSI, CVD, ATR

Quatro indicadores tecnológicos em simultâneo são o sinal mais forte de uma reviravolta no mercado

A estratégia de reversão tradicional só olha para um ou dois indicadores? Isso é apostar. Esta estratégia requer a confirmação simultânea de quatro dimensões: contexto de tendência do EMA, conversão de dinâmica do MACD, RSI sobre sobrecompra e análise de fluxo de pedidos. Os dados de retrospectiva mostram que esse mecanismo de seleção rigorosa aumenta a taxa de filtragem de falsos sinais em mais de 80%.

Nem todas as reversões são negociáveis, só as reversões quadruplicadas são ouro e prata.

RSI desvia-se da detecção + análise de fluxo de encomendas para capturar movimentos de fundos da instituição

A inovação central da estratégia é a combinação de análise de desvio do RSI e CVD (diferença de volume de transação acumulada). Quando o preço é inovador baixo, mas o RSI recusa-se a inovar baixo, ao mesmo tempo, a deltaEma mostra um aumento da força de compra, o que é a reversão de uma combinação de ouro inferior. Os dados mostram que o sinal com a confirmação do desvio do RSI tem uma taxa de vitória 35% maior do que o sinal de reversão normal.

A análise técnica tradicional olha para o preço, o comerciante inteligente olha para o fluxo de capital.

Desenho de perda de ATR de 1,5 vezes, controle de risco em posição

A configuração de stop loss usa um ajuste dinâmico de 1,5 vezes o ATR, evitando que o stop loss fixo seja acionado com frequência em períodos de alta volatilidade e garantindo proteção suficiente em períodos de baixa volatilidade. O cálculo do ATR de 14 ciclos fornece uma imagem realista da volatilidade do mercado, com um fator de 1,5 vezes mostrando a melhor relação risco-recompensa em retrospectiva.

A perda contínua é o inimigo natural da estratégia de reversão, e a parada rigorosa é o único remédio.

Confirmação aumentada em 1,3 vezes para evitar armadilhas de brechas falsas

A estratégia requer que o volume de transação seja mais de 1,3 vezes o valor médio de 20 ciclos para que o sinal seja confirmado como válido. Esta condição aparentemente simples, na verdade, filtra 70% do sinal de baixa qualidade. Sem a inversão do volume de transação combinado, como uma arma sem balas, parece ter uma força de força praticamente impotente.

O mercado pode enganar, mas o volume não.

Filtro de tendências do EMA duplo, apenas no melhor momento

O EMA de 50 períodos determina a tendência intermédia, o EMA de 200 períodos determina a direção da tendência principal. A estratégia só procura oportunidades de reversão quando o preço está perto ou abaixo do EMA.

Nem todos os excessos se recuperam, e só os excessos em pontos críticos de suporte merecem ser cobrados.

Aplicações de combate real: Mercado de tendência precisa ser cauteloso

A retrospectiva mostra que a estratégia tem um desempenho notável em situações de turbulência, com uma taxa de vitória mensal de mais de 70%. No entanto, em mercados de forte tendência, os sinais de reversão são facilmente abafados pelas forças da tendência, momento em que a posição deve ser reduzida ou o uso deve ser suspenso.

Não há estratégias universais, apenas estratégias adaptadas a um determinado cenário de mercado.

DISCUSSO: O histórico não representa o futuro

Qualquer estratégia quantitativa apresenta um risco de falha, especialmente em condições de mercado extremas. A estratégia teve perdas consecutivas nos períodos de aumento de juros de março de 2020 e de 2022. É recomendado que a gestão de fundos seja rigorosamente executada, com uma única abertura de risco não superior a 2% da conta e que a eficácia da estratégia seja avaliada periodicamente.

Código-fonte da estratégia
/*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)