Stratégie de convergence par inversion quadruple


Date de création: 2026-03-12 11:56:07 Dernière modification: 2026-03-12 11:56:07
Copier: 3 Nombre de clics: 29
2
Suivre
413
Abonnés

Stratégie de convergence par inversion quadruple Stratégie de convergence par inversion quadruple

EMA, MACD, RSI, CVD, ATR

Quatre indicateurs techniques à la fois, le signal le plus fort pour un retournement de marché

La stratégie traditionnelle d’inversion ne regarde qu’un ou deux indicateurs? C’est le jeu. Cette stratégie nécessite la confirmation simultanée de quatre dimensions: le contexte de la tendance EMA, la conversion de la dynamique MACD, le surboutique RSI et l’analyse des flux d’ordres. Les données de retrospective montrent que ce mécanisme de filtrage strict augmente le taux de filtrage des faux signaux à plus de 80%.

Ce n’est pas chaque inversion qui vaut la peine d’être échangée, seulement une inversion quadruplement confirmée est de l’argent et de l’or.

RSI dévie de la détection + analyse des flux de commandes pour capturer les mouvements de fonds institutionnels

L’innovation centrale de la stratégie réside dans la combinaison de l’analyse de la déviation du RSI et de la différence de la circulation cumulée (CVD). Lorsque le prix est innovant mais que le RSI refuse de s’innover, le deltaEma montre une augmentation de la force d’achat, c’est-à-dire une paire d’or inversée en bas. Les données montrent que le signal avec la confirmation de la déviation du RSI a un taux de victoire 35% plus élevé que le signal de retournement ordinaire.

L’analyse technique traditionnelle regarde le prix, le trader intelligent regarde les flux de capitaux.

1,5 fois la conception de l’arrêt d’ATR, le contrôle des risques est en place

Le paramètre de stop loss utilise un ajustement dynamique de 1,5 fois l’ATR, ce qui permet d’éviter que les stop loss fixes ne soient fréquemment déclenchés pendant les périodes de forte volatilité, tout en assurant une protection suffisante pendant les périodes de faible volatilité. Le calcul de l’ATR à 14 cycles fournit un portrait réaliste des fluctuations du marché, le facteur de 1,5 fois affichant le meilleur rapport risque/bénéfice lors de la rétroévaluation.

Les pertes consécutives sont l’ennemi juré de la stratégie de renversement, et le stop strict est le seul remède.

Les transactions sont multipliées par 1,3 pour éviter les pièges de fausses percées

La stratégie nécessite un trafic supérieur à 1,3 fois la moyenne de 20 cycles pour confirmer l’efficacité du signal. Cette condition apparemment simple filtre en fait 70% des signaux de mauvaise qualité.

Le marché peut tromper, mais pas le volume.

Les deux EMA filtrent les tendances et ne se mettent en jeu qu’au meilleur moment

L’EMA à 50 cycles détermine la tendance intermédiaire, l’EMA à 200 cycles détermine la direction de la tendance principale. La stratégie ne cherche des occasions de reprise que lorsque le prix est proche ou inférieur à l’EMA, cette pensée “avance dans l’adversité” qui augmente le taux de réussite des transactions de 45% à 65%.

Les baisses de prix ne sont pas toutes répercutées, mais seulement les baisses de prix des supports clés qui méritent d’être couvertes.

Application en temps réel: les marchés en tremblement de terre sont excellents, les marchés en tendance doivent être prudents

La rétrospective montre que la stratégie se démarque dans les conditions de choc, avec un taux de victoire mensuel de plus de 70%. Cependant, dans les marchés à forte tendance, les signaux de renversement sont sujets à l’étouffement des forces de la tendance, auquel cas il est recommandé de réduire la position ou de suspendre son utilisation.

Il n’y a pas de stratégie universelle, seulement celle qui convient à un marché particulier. En reconnaissant cela, vous dépassez les 90% des traders.

Astuce: les retours sur les résultats passés ne sont pas des récompenses à venir

Toute stratégie quantitative présente un risque d’échec, en particulier dans des conditions de marché extrêmes. La stratégie a enregistré des pertes consécutives au cours des périodes de hausse des taux en mars 2020 et en 2022. Il est recommandé d’appliquer une gestion rigoureuse des fonds, avec une seule marge de risque ne dépassant pas 2% du compte et d’évaluer régulièrement l’efficacité de la stratégie.

Code source de la stratégie
/*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)