
RSI, EMA, DIVERGENCE, VOLUME, ATR
Il ne s’agit pas d’une simple stratégie de revers. La stratégie propulse le taux de réussite des transactions de revers vers de nouveaux sommets en confirmant la résonance des quadruples indicateurs techniques, à savoir le décalage du RSI, le rejet de la structure, l’inversion de la ligne K et le volume de transactions. Les données de retracement montrent que la probabilité de revers est significativement plus élevée lorsque au moins 3 indicateurs techniques émettent des signaux simultanément que la stratégie d’un seul indicateur.
Le mécanisme de filtrage strict permet de filtrer efficacement un grand nombre de faux signaux, mais au prix d’une fréquence de négociation réduite.
L’écart RSI est l’arme centrale de la stratégie. Grâce à la détection des pivots de 5 cycles, le système identifie automatiquement les phénomènes d’écart de prix nouveaux hauts / nouveaux bas qui ne sont pas synchronisés avec l’indicateur RSI.
Le décalage de la courbe: le prix est bas mais le RSI n’est pas bas, ce qui indique l’épuisement de la dynamique baissière. Le décalage de la courbe: le prix est élevé mais le RSI n’est pas élevé, ce qui suggère une faiblesse. Ce signal de décalage est particulièrement efficace à la fin d’une tendance, mais il est susceptible de générer des signaux plus tôt dans une tendance forte.
Avantage clé: les signaux de déviation sont généralement deux à cinq cycles avant les retournements de prix, offrant aux traders une précieuse opportunité de mise en avant.
Le système 50⁄200 double EMA construit un cadre de tendance clair. La structure rejette les signaux qui demandent au prix de toucher la moyenne critique mais de ne pas réussir à la briser efficacement, puis de rebondir rapidement ou de revenir en arrière. Cette “fausse rupture” est souvent le précurseur d’une forte inversion.
Structure de baisse: le cours a dépassé les 200 EMA, mais le cours de clôture est revenu à la hausse et est supérieur à 50 EMA. Structure de baisse: le prix a dépassé les 200 EMA, mais le cours de clôture est revenu à la baisse et est inférieur à 50 EMA. Cette conception assure la cohérence de la direction des transactions avec les principales tendances.
Effets de combat: Dans les marchés tendances, le taux de victoire des signaux de rejet structurels peut atteindre 65 à 70%, bien au-delà de la ligne de base de 50% pour les entrées aléatoires.
La stratégie intègre deux modèles classiques de lignes K inversées: les formes de submersion et les variantes de lignes d’appui / de suspension. Ces formes reflètent intuitivement la conversion instantanée de la force de plomb et constituent un indicateur fiable de la première inversion à court terme.
Inversion de l’horizon: l’entité de la ligne K actuelle engloutit complètement la ligne négative précédente, ou une ligne d’ombre descendante longue et l’entité est située dans la moitié supérieure. Inversion de la baisse: l’entité de la ligne K actuelle engloutit complètement la ligne droite précédente, ou une ligne d’ombre descendante longue et l’entité est située dans la moitié inférieure.
Paramètres clés: La longueur de l’objet doit être supérieure à 2 fois celle de la ligne d’ombre pour assurer la fiabilité du signal de retour. Ce filtrage rigoureux évite les interférences de formes floues telles que les étoiles croisées.
Le volume de transaction est l’indicateur ultime pour vérifier la véracité du comportement des prix. La stratégie exige que le signal de reprise soit accompagné d’une amplification de 1,5 fois le volume de transaction moyen, afin d’assurer qu’il y a suffisamment de fonds pour faire basculer les prix.
Logique du volume de transaction: le renversement de la hausse nécessite une mise à l’ordre du jour, le renversement de la baisse nécessite une mise à l’ordre du jour. La moyenne du volume de transaction de 20 cycles est utilisée comme référence, le volume de transaction actuel doit dépasser 150% de la référence pour déclencher le signal.
Signification pratique: l’inversion sans quantité est souvent un faux signal, alors que l’inversion amplifiée est nettement plus persistante. Les statistiques montrent que la durée moyenne du signal inversion amplifiée est plus de 40% plus longue que celle de l’inversion sans quantité.
Le stop loss est réglé sur 1,2 fois l’ATR, le stop stop est réglé sur 2,5 fois l’ATR et le rapport risque/bénéfice est de 1:2,08. Ce mécanisme d’ajustement dynamique est capable de s’adapter aux caractéristiques volatiles de différents marchés, évitant ainsi le problème du stop loss à points fixes qui est fréquemment déclenché pendant les périodes de forte volatilité.
Le cycle ATR est réglé sur 14, équilibrant la sensibilité et la stabilité. Dans les marchés à forte volatilité, la distance d’arrêt s’élargit automatiquement, réduisant les interférences de bruit; dans les environnements à faible volatilité, l’arrêt se resserre, améliorant l’efficacité des fonds.
Remarque importante: la stratégie présente un risque de pertes continues, particulièrement en cas de mauvais rendement sur un marché en crise. Il est recommandé d’utiliser un filtre de tendance et d’éviter de négocier fréquemment pendant le comptage horizontal.
Le paramètre de résonance minimale de 3 est le paramètre optimal, vérifié par de nombreux retours de test. Le paramètre de 2 augmente la fréquence des transactions mais réduit le taux de victoire, le paramètre de 4 améliore la précision mais réduit considérablement les opportunités de transactions.
Paramètres adaptés aux différentes caractéristiques du marché:
Les retours historiques montrent que la stratégie a bien fonctionné dans les marchés tendances, mais les investisseurs doivent reconnaître que la performance passée ne représente pas les gains futurs et que la gestion rigoureuse des risques et de la gestion des fonds est la clé de la réussite.
/*backtest
start: 2026-01-07 15:30:00
end: 2026-03-15 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("Quad Confluence Reversal v13 – Funded Relay FIXED", overlay=true, margin_long=100, margin_short=100, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// ────────────────────────────────────────────────
// INPUTS
// ────────────────────────────────────────────────
rsiLen = input.int(14, "RSI Length", minval=5)
volMult = input.float(1.5, "Volume Surge ×", minval=1.0, step=0.1)
minConfl = input.int(3, "Min Confluences (2-4)", minval=2, maxval=4)
useDiv = input.bool(true, "Use Divergence")
useStr = input.bool(true, "Use Structure Rejection")
useCdl = input.bool(true, "Use Reversal Candle")
useVol = input.bool(true, "Use Volume Confirmation")
showLbl = input.bool(true, "Show Signal Labels")
slMult = input.float(1.2, "SL ATR ×", step=0.1)
tpMult = input.float(2.5, "TP ATR ×", step=0.1)
// ────────────────────────────────────────────────
// INDICATORS
// ────────────────────────────────────────────────
rsi = ta.rsi(close, rsiLen)
emaFast = ta.ema(close, 50)
emaSlow = ta.ema(close, 200)
volAvg = ta.sma(volume, 20)
atrVal = ta.atr(14)
// ────────────────────────────────────────────────
// CONFLUENCE CONDITIONS
// ────────────────────────────────────────────────
bool divBull = false
bool divBear = false
if useDiv
float pLowPrice = ta.pivotlow(low, 5, 5)
float pLowRsi = ta.pivotlow(rsi, 5, 5)
float pHighPrice = ta.pivothigh(high, 5, 5)
float pHighRsi = ta.pivothigh(rsi, 5, 5)
if not na(pLowPrice) and not na(pLowRsi)
divBull := low < pLowPrice[10] and rsi > pLowRsi[10]
if not na(pHighPrice) and not na(pHighRsi)
divBear := high > pHighPrice[10] and rsi < pHighRsi[10]
bool strBull = close > emaSlow and low <= emaSlow and close > emaFast
bool strBear = close < emaSlow and high >= emaSlow and close < emaFast
bool cdlBull = (close > open and open <= low[1] and close >= high[1]) or
(low < low[1] and close > open and (close - open) > (high - close)*2)
bool cdlBear = (close < open and open >= high[1] and close <= low[1]) or
(high > high[1] and close < open and (open - close) > (close - low)*2)
bool volBull = volume > volAvg * volMult and close > open
bool volBear = volume > volAvg * volMult and close < open
// ────────────────────────────────────────────────
// CONFLUENCE COUNTERS – BLOQUES INDENTADOS (esto elimina el error)
// ────────────────────────────────────────────────
int conflBull = 0
if useDiv
if divBull
conflBull += 1
if useStr
if strBull
conflBull += 1
if useCdl
if cdlBull
conflBull += 1
if useVol
if volBull
conflBull += 1
int conflBear = 0
if useDiv
if divBear
conflBear += 1
if useStr
if strBear
conflBear += 1
if useCdl
if cdlBear
conflBear += 1
if useVol
if volBear
conflBear += 1
bool goLong = conflBull >= minConfl
bool goShort = conflBear >= minConfl
// ────────────────────────────────────────────────
// ENTRIES & EXITS
// ────────────────────────────────────────────────
if goLong
strategy.entry("Long 🟢", strategy.long)
if goShort
strategy.entry("Short 🔴", strategy.short)
strategy.exit("Exit Long", from_entry = "Long 🟢", stop = close - atrVal * slMult, limit = close + atrVal * tpMult)
strategy.exit("Exit Short", from_entry = "Short 🔴", stop = close + atrVal * slMult, limit = close - atrVal * tpMult)
// ────────────────────────────────────────────────
// PLOTS & VISUALS
// ────────────────────────────────────────────────
plot(emaFast, "EMA 50", color.orange, linewidth=1)
plot(emaSlow, "EMA 200", color.purple, linewidth=2)
plotshape(goLong, title="Long Signal", style=shape.triangleup, location=location.belowbar, color=color.new(#00FF41, 0), size=size.small, text="🟢📈")
plotshape(goShort, title="Short Signal", style=shape.triangledown, location=location.abovebar, color=color.new(#FF3366, 0), size=size.small, text="🔴📉")
if showLbl and goLong
label.new(bar_index, low, "🟢 LONG\nConfs: " + str.tostring(conflBull) + "/4", color=color.new(#00FF41, 40), textcolor=color.black, style=label.style_label_up, size=size.normal)
if showLbl and goShort
label.new(bar_index, high, "🔴 SHORT\nConfs: " + str.tostring(conflBear) + "/4", color=color.new(#FF3366, 40), textcolor=color.black, style=label.style_label_down, size=size.normal)
// ────────────────────────────────────────────────
// ALERTS
// ────────────────────────────────────────────────
alertcondition(goLong, title="🟢 LONG ATTACK", message="LONG – {{conflBull}}/4 – Vol Surge: {{volume > volAvg * volMult ? 'YES 🔥' : 'NO'}}")
alertcondition(goShort, title="🔴 SHORT ATTACK", message="SHORT – {{conflBear}}/4 – Vol Surge: {{volume > volAvg * volMult ? 'YES 🔥' : 'NO'}}")