
La stratégie est un système de trading intégré qui utilise l’analyse de plusieurs périodes, la fusion des indicateurs techniques et l’identification des formes pour trouver des opportunités de trading à haute probabilité. Son idée centrale est d’analyser la cohérence des tendances sur cinq périodes différentes (une minute, cinq minutes, quinze minutes, une heure et quatre heures), en combinant des ruptures de volume, des formes d’absorption et des indicateurs de dynamique pour capturer avec précision le mouvement du marché. La stratégie intègre également un mécanisme de stop-loss automatique qui ajuste les paramètres de gestion du risque en fonction de la dynamique volatile du marché.
Le cœur de la stratégie repose sur les éléments clés suivants:
Analyse des tendances à plusieurs périodesLa stratégie passe d’abord par une fonction personnalisée:getTrend()L’analyse des tendances de 5 périodes différentes. Sur chaque période, le système vérifie si l’EMA rapide est supérieure à l’EMA lente, si le RSI est supérieur à 50 et si le prix est supérieur à l’EMA rapide pour déterminer le signal de multiplication. Les conditions opposées déterminent le signal de rupture.
Confirmation du consensus sur les tendancesLe système ne considère l’entrée que si les cinq périodes de temps affichent le même signal de tendance. Ce mécanisme de consensus de tendance rigoureux améliore considérablement la fiabilité du signal.
Optimisation des conditions d’admissionEn plus du consensus sur les tendances, les conditions d’admission sont les suivantes:
Système de gestion des risquesLa stratégie utilise la méthode de calcul de stop loss dynamique, définit un niveau de stop loss basé sur les fluctuations de prix récentes (High/Low Price Difference) et définit un objectif de stop loss en utilisant les paramètres de multiplication (Default 2.0)
Visualisation du support/résistanceLe système identifie et affiche automatiquement les principaux niveaux de support et de résistance, aidant les traders à comprendre la structure actuelle du marché grâce à une assistance visuelle.
Filtrage des signaux en plusieurs dimensions: La possibilité de faux signaux est considérablement réduite en exigeant la cohérence de plusieurs indicateurs techniques et de plusieurs périodes de temps. Ce mécanisme de confirmation multiple permet à la stratégie de déclencher un signal de transaction uniquement dans un réglage à haute probabilité.
Gestion des risques adaptéeLes niveaux de stop-loss et de stop-loss ne sont pas fixes, mais calculés sur la base de la dynamique de la volatilité du marché actuel, ce qui permet à la stratégie de maintenir un ratio de risque/rendement approprié dans des conditions de volatilité différentes.
Un système de visualisation completLa stratégie contient une gamme complète d’outils visuels, y compris des tableaux de tendances, des cadres de support/résistance, des marqueurs de signaux de trading et des lignes de stop/loss prévisibles, qui fournissent aux traders une analyse intuitive du marché.
Confirmation de la livraisonEn demandant des signaux de négociation accompagnés d’une augmentation significative du volume des transactions, la stratégie est capable d’identifier des mouvements de marché réellement dynamiques, et pas seulement des fluctuations aléatoires des prix.
Intégration de la reconnaissance de forme: Les formes englobantes, comme condition d’entrée, augmentent la précision de la stratégie, car ces formes de tirage représentent généralement des changements significatifs dans l’humeur du marché.
Rééquilibre fréquent des besoinsLes signaux de négociation peuvent être relativement rares, car la stratégie dépend de la cohérence sur plusieurs périodes de temps. En l’absence d’opportunités de négociation pendant une longue période, les traders peuvent être incités à abaisser les normes, ce qui entraîne l’exécution de transactions peu souhaitables.
Dépendance du signalLa stratégie dépend fortement des indicateurs techniques et des formes, et ces signaux peuvent être inefficaces ou fournir des indications trompeuses dans certaines conditions de marché, comme lors d’événements d’actualité ou de volatilité extrême.
Risques de sur-optimisation: la stratégie utilise plusieurs paramètres et conditions, ce qui peut conduire à une optimisation excessive des données historiques et à une mauvaise performance dans des conditions de marché réelles. Il est nécessaire d’effectuer un retour d’expérience approfondi sur des délais suffisamment longs et dans des conditions de marché différentes.
Complexité informatique: L’analyse multi-temporelle et le calcul de multiples indicateurs nécessitent des ressources informatiques importantes, ce qui peut entraîner des problèmes de performance ou des retards sur certaines plateformes de négociation.
Détection retardée d’un changement de tendance: Comme la stratégie nécessite une cohérence sur plusieurs périodes, elle peut manquer des opportunités dans les premiers stades d’un changement de tendance jusqu’à ce que la nouvelle tendance soit établie sur toutes les périodes.
Adaptation des paramètresLa mise en place d’un mécanisme permettant d’ajuster automatiquement la longueur de l’EMA, la marge RSI et les exigences de CMI en fonction de la volatilité du marché actuel ou de la période de négociation pour s’adapter à différentes conditions du marché.
Système de pondération du tempsAu lieu de simplement exiger que toutes les périodes soient identiques, on peut mettre en place un système de pondération dans lequel les signaux des périodes les plus élevées ont plus d’impact, ce qui peut produire des signaux plus opportuns tout en conservant des normes de qualité élevées.
Catégorie des états du marché: Ajout d’algorithmes pour détecter si le marché actuel est dans un état de tendance ou d’intervalle et ajuster les paramètres de stratégie en conséquence. Par exemple, un seuil CMI plus élevé peut être nécessaire dans un marché intermédiaire.
Intégration du machine learning: optimisation des règles d’entrée et de sortie à l’aide d’algorithmes d’apprentissage automatique, identification des combinaisons de signaux les plus efficaces en fonction des données historiques et amélioration continue avec l’accumulation de nouvelles données.
Améliorer la diversité: Ajout d’autres indicateurs techniques non pertinents, tels que le niveau de rétractation de Fibonacci, le niveau de prix clé ou l’indicateur de l’humeur du marché, pour fournir une dimension de confirmation supplémentaire.
La stratégie de trading automatique de capture de dynamique de type fusion multi-cadres est un système de trading complet permettant d’identifier des opportunités de trading à haute probabilité grâce à des mécanismes de confirmation multiples rigoureux. La stratégie vise à fournir un signal de trading de haute qualité tout en gérant le risque de chaque transaction grâce à une combinaison d’analyse de tendance, de confirmation de volume de transaction, de reconnaissance de forme et de gestion dynamique du risque.
Bien que les conditions strictes de la stratégie puissent conduire à un nombre relativement faible de signaux de négociation, c’est en fait l’un de ses principaux avantages, car elle donne la priorité à la qualité des signaux plutôt qu’à la quantité. La stratégie peut encore améliorer ses performances et son adaptabilité grâce à des mesures d’optimisation suggérées, en particulier des paramètres d’adaptation et une classification des états du marché.
Pour les traders qui recherchent des méthodes de négociation systématiques et disciplinées, cette approche d’analyse à plusieurs niveaux et d’authentification rigoureuse offre un cadre robuste permettant de rester cohérent dans différents environnements de marché tout en réduisant l’impact des biais émotionnels grâce à des règles automatisées.
/*backtest
start: 2024-04-11 00:00:00
end: 2025-04-09 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("M.Shiham-XAUUSD Sniper Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, max_lines_count=500, max_boxes_count=500)
// === Input ===
fastLen = input.int(9, "Fast EMA")
slowLen = input.int(21, "Slow EMA")
rsiLen = input.int(14, "RSI Period")
tpMultiplier = input.float(2.0, "TP Multiplier")
slMultiplier = input.float(1.0, "SL Multiplier")
// === Function Trend Check ===
getTrend(tf) =>
emaFast = request.security(syminfo.tickerid, tf, ta.ema(close, fastLen))
emaSlow = request.security(syminfo.tickerid, tf, ta.ema(close, slowLen))
rsi = request.security(syminfo.tickerid, tf, ta.rsi(close, rsiLen))
price = request.security(syminfo.tickerid, tf, close)
isBuy = emaFast > emaSlow and rsi > 50 and price > emaFast
isSell = emaFast < emaSlow and rsi < 50 and price < emaFast
isBuy ? 1 : isSell ? -1 : 0
// === Trend by Timeframe ===
trend1m = getTrend("1")
trend5m = getTrend("5")
trend15m = getTrend("15")
trend1h = getTrend("60")
trend4h = getTrend("240")
// === Alert Conditions ===
allBuy = trend1m == 1 and trend5m == 1 and trend15m == 1 and trend1h == 1 and trend4h == 1
allSell = trend1m == -1 and trend5m == -1 and trend15m == -1 and trend1h == -1 and trend4h == -1
alertcondition(allBuy, title="All TF Buy", message="🔔 BUY SIGNAL! All timeframes agree: BUY XAUUSD")
alertcondition(allSell, title="All TF Sell", message="🔔 SELL SIGNAL! All timeframes agree: SELL XAUUSD")
txt(val) => val == 1 ? "BUY" : val == -1 ? "SELL" : "-"
clr(val) => val == 1 ? color.green : val == -1 ? color.red : color.gray
// === Table Dashboard (Optional Toggle) ===
showTable = input.bool(true, "Show Trend Dashboard")
var table t = table.new(position.top_right, 2, 6, border_width=1)
if showTable and bar_index % 5 == 0
table.cell(t, 0, 0, "Timeframe", text_color=color.white, bgcolor=color.black)
table.cell(t, 1, 0, "Signal", text_color=color.white, bgcolor=color.black)
table.cell(t, 0, 1, "1 MIN", text_color=color.white)
table.cell(t, 1, 1, txt(trend1m), bgcolor=clr(trend1m), text_color=color.white)
table.cell(t, 0, 2, "5 MIN", text_color=color.white)
table.cell(t, 1, 2, txt(trend5m), bgcolor=clr(trend5m), text_color=color.white)
table.cell(t, 0, 3, "15 MIN", text_color=color.white)
table.cell(t, 1, 3, txt(trend15m), bgcolor=clr(trend15m), text_color=color.white)
table.cell(t, 0, 4, "1 H", text_color=color.white)
table.cell(t, 1, 4, txt(trend1h), bgcolor=clr(trend1h), text_color=color.white)
table.cell(t, 0, 5, "4 H", text_color=color.white)
table.cell(t, 1, 5, txt(trend4h), bgcolor=clr(trend4h), text_color=color.white)
// === Support/Resistance Box ===
pHigh = ta.pivothigh(high, 5, 5)
pLow = ta.pivotlow(low, 5, 5)
// === Volume Spike ===
avgVol = ta.sma(volume, 20)
volSpike = volume > avgVol * 2
// === Breakout + Alert ===
breakoutUp = high > ta.highest(high, 20)[1] and volSpike
alertcondition(breakoutUp, title="Breakout Up", message="🚀 XAUUSD Breakout Up with Volume")
breakoutDown = low < ta.lowest(low, 20)[1] and volSpike
alertcondition(breakoutDown, title="Breakout Down", message="⚠️ XAUUSD Breakout Down with Volume")
// === Engulfing Pattern ===
bullishEngulf = open[1] > close[1] and close > open and open < close[1] and close > open[1]
bearishEngulf = open[1] < close[1] and close < open and open > close[1] and close < open[1]
// === Moving Averages, Momentum & RSI ===
rsi = ta.rsi(close, rsiLen)
cmiPeriod = 14
cmi = 100 * math.abs(close - close[cmiPeriod]) / (ta.highest(high, cmiPeriod) - ta.lowest(low, cmiPeriod))
vwma = ta.vwma(close, 20)
plot(cmi, title="CMI", color=color.purple, display=display.none)
plot(vwma, title="VWMA", color=color.orange, display=display.none)
ma30 = ta.sma(close, 30)
plot(ma30, title="MA 30", color=color.blue)
// === STRATEGY MODE: Auto Entry & TP/SL ===
longEntry = allBuy and bullishEngulf and volSpike and rsi > 55 and cmi > 30 and close > vwma
shortEntry = allSell and bearishEngulf and volSpike and rsi < 45 and cmi > 30 and close < vwma
if (longEntry)
strategy.entry("Buy", strategy.long)
entry = close
sl = entry - (high - low) * slMultiplier
tp = entry + (entry - sl) * tpMultiplier
strategy.exit("TP Buy", from_entry="Buy", stop=sl, limit=tp)
if (shortEntry)
strategy.entry("Sell", strategy.short)
entry = close
sl = entry + (high - low) * slMultiplier
tp = entry - (sl - entry) * tpMultiplier
strategy.exit("TP Sell", from_entry="Sell", stop=sl, limit=tp)
if longEntry
entry = close
sl = entry - (high - low) * slMultiplier
tp = entry + (entry - sl) * tpMultiplier
if shortEntry
entry = close
sl = entry + (high - low) * slMultiplier
tp = entry - (sl - entry) * tpMultiplier
// === Plot Signals ===
plotshape(bullishEngulf, title="Bullish Engulfing", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="Bull")
plotshape(bearishEngulf, title="Bearish Engulfing", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="Bear")
plotshape(breakoutUp, title="Breakout Up", location=location.belowbar, color=color.blue, style=shape.labelup, text="BO↑")
plotshape(breakoutDown, title="Breakout Down", location=location.abovebar, color=color.orange, style=shape.labeldown, text="BO↓")