Méthode de trading géométrique : le code du marché du cercle triangulaire en diamant

EMA RSI PATTERN
Date de création: 2025-09-26 08:59:35 Dernière modification: 2025-09-26 08:59:35
Copier: 0 Nombre de clics: 180
2
Suivre
319
Abonnés

Méthode de trading géométrique : le code du marché du cercle triangulaire en diamant Méthode de trading géométrique : le code du marché du cercle triangulaire en diamant

Je ne sais pas ce qu’il y a de magique dans cette stratégie.

Cette stratégie simplifie les mouvements de prix complexes en trois belles formes: les diamants en forme de rose représentent un signal de retour, les triangles en forme de rose représentent la continuation de la tendance et les cercles en forme d’oignon représentent les filtres vibratoires. C’est comme si on mettait une paire de “ lunettes géométriques ” sur le marché et que l’on voyait instantanément la véritable intention des prix !

La logique de base de la stratégie est très simple: l’EMA forme rapidement une bande de nuages pour juger de la tendance générale, puis, en fonction de la position du prix par rapport à la bande de nuages, applique des “étiquettes” différentes aux différentes ruptures de hauts et de bas. Les ruptures au-dessous de la bande de nuages sont des signaux de retour en diamant, les ruptures au-dessus de la bande de nuages sont des signaux de continuation triangulaire, et les signaux qui ne sont pas suffisamment séparés par l’EMA sont filtrés par le cercle marqué comme “bruit”.

Les trois principaux systèmes de signalisation ont été détectés

Le phare en diamantIl s’agit d’une opportunité de capture d’une inversion spécialement conçue pour être déclenchée lorsque le prix atteint des sommets plus élevés en dessous de la zone de nuage EMA ou des sommets plus bas en haut de la zone de nuage.

Le signal triangulaireIl s’active lorsque le prix atteint des sommets plus élevés au-dessus de la bande de nuages ou des sommets plus bas au-dessous de la bande de nuages. Imaginez que vous surfez en continuant à la tête de la vague, le taux de réussite est naturellement plus élevé.

Filtre circulaire: cette conception est trop soignée! lorsque l’isolement de l’EMA est inférieur au seuil de réglage, tous les signaux sont marqués comme “bruit de secousse”.

La conception de l’aérodynamique: simple et brutale, mais efficace

La logique d’arrêt de perte utilise des positions de points clés antérieures: le stop multiple est fixé au point bas antérieur, le stop vide au point haut antérieur. L’avantage de cette méthode est qu’elle a une base technique claire et qu’elle n’est pas balayée par une “fausse percée” en raison d’une configuration aléatoire.

Le mécanisme de sortie du RSI est également très intelligent: les positions multiples sont à plat lorsque le RSI recule au-dessus de 70 et les positions vides sont à plat lorsque le RSI rebondit au-dessous de 30. Cela permet à la fois de verrouiller les bénéfices et d’éviter le risque de continuer à détenir des positions dans des zones extrêmement sur-achetées et sur-vente.

La stratégie de l’armée de Terre-Neuve: pour qui est-elle ?

Le meilleur scénario: suivi de tendances et inversion de tendances à court et moyen terme, en particulier dans un environnement de marché modérément volatil. La stratégie ajuste automatiquement la taille de la position: le signal de revers est testé avec 50% de la position et le signal de continuation est suivi avec 100% de la position.

Un guide pour éviter les fossesBien qu’il y ait un mécanisme de filtrage circulaire, les signaux deviennent rares si le marché est horizontal pendant une longue période. De plus, cette stratégie repose davantage sur l’analyse technique, et les informations fondamentales importantes peuvent rendre la géométrie “invalide”.

N’oubliez pas que la meilleure stratégie n’est pas la plus complexe, mais celle qui convient le mieux à votre style de trading !

Code source de la stratégie
/*backtest
start: 2024-09-26 00:00:00
end: 2025-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=5
strategy("💎🔺⚫ Diamond-Triangle-Circle Strategy", overlay=true)

// === INPUTS ===
ema_fast = input.int(10, "Fast EMA Length")
ema_slow = input.int(20, "Slow EMA Length")
min_ema_separation = input.float(0.1, "Min EMA Separation %", minval=0.01, maxval=1.0)
rsi_length = input.int(14, "RSI Length")
rsi_exit_level = input.int(70, "RSI Exit Level")

// === CALCULATIONS ===
ema_fast_val = ta.ema(close, ema_fast)
ema_slow_val = ta.ema(close, ema_slow)
rsi = ta.rsi(close, rsi_length)

// EMA Cloud and separation
cloud_bull = ema_fast_val > ema_slow_val
ema_separation_pct = math.abs(ema_fast_val - ema_slow_val) / close * 100
chop_filter = ema_separation_pct >= min_ema_separation

// Price position relative to cloud
price_above_cloud = close > math.max(ema_fast_val, ema_slow_val)
price_below_cloud = close < math.min(ema_fast_val, ema_slow_val)

// === HIGHER LOW DETECTION ===
lowPoint = ta.lowest(low, 3)
prevLowPoint = ta.lowest(low[3], 3)
isHigherLow = low == lowPoint and low > prevLowPoint
higherLowConfirmed = isHigherLow and close > open

// === LOWER HIGH DETECTION ===
highPoint = ta.highest(high, 3)
prevHighPoint = ta.highest(high[3], 3)
isLowerHigh = high == highPoint and high < prevHighPoint
lowerHighConfirmed = isLowerHigh and close < open

// === SIGNAL CLASSIFICATION ===
// Diamond Signal - Reversal (below cloud)
diamondBullish = higherLowConfirmed and price_below_cloud and chop_filter
diamondBearish = lowerHighConfirmed and price_above_cloud and chop_filter

// Triangle Signal - Continuation (above cloud)
triangleBullish = higherLowConfirmed and price_above_cloud and chop_filter
triangleBearish = lowerHighConfirmed and price_below_cloud and chop_filter

// Circle Signal - Chop (filtered out - display only)
chopBullish = higherLowConfirmed and not chop_filter
chopBearish = lowerHighConfirmed and not chop_filter

// === RSI EXIT LOGIC ===
rsi_was_above_70 = rsi[1] >= rsi_exit_level and rsi < rsi[1]
rsi_was_below_30 = rsi[1] <= (100 - rsi_exit_level) and rsi > rsi[1]

// === STOP LOSS LOGIC ===
var float long_stop = na
var float short_stop = na

if diamondBullish or triangleBullish
    long_stop := prevLowPoint
    
if diamondBearish or triangleBearish  
    short_stop := prevHighPoint

// === STRATEGY EXECUTION ===
// Long Entries
if diamondBullish
    strategy.entry("Diamond Long", strategy.long, qty=50, comment="💎 Reversal")
    
if triangleBullish
    strategy.entry("Triangle Long", strategy.long, qty=100, comment="🔺 Continuation")

// Short Entries    
if diamondBearish
    strategy.entry("Diamond Short", strategy.short, qty=50, comment="💎 Reversal")
    
if triangleBearish
    strategy.entry("Triangle Short", strategy.short, qty=100, comment="🔺 Continuation")

// === EXITS ===
// Long Exits
if strategy.position_size > 0
    if close <= long_stop
        strategy.close_all(comment="Stop Loss")
    else if rsi_was_above_70
        strategy.close_all(comment="RSI Exit")

// Short Exits        
if strategy.position_size < 0
    if close >= short_stop
        strategy.close_all(comment="Stop Loss")  
    else if rsi_was_below_30
        strategy.close_all(comment="RSI Exit")

// === VISUAL ELEMENTS ===
// EMA Cloud
ema1 = plot(ema_fast_val, "Fast EMA", color.new(color.blue, 60), linewidth=1)
ema2 = plot(ema_slow_val, "Slow EMA", color.new(color.blue, 60), linewidth=1)
fill(ema1, ema2, color=cloud_bull ? color.new(color.green, 85) : color.new(color.red, 85), title="EMA Cloud")

// Signal Shapes
plotshape(diamondBullish, "Diamond Long", shape.diamond, location.belowbar, 
         color.new(color.lime, 0), size=size.small, text="💎")
plotshape(diamondBearish, "Diamond Short", shape.diamond, location.abovebar,
         color.new(color.red, 0), size=size.small, text="💎")

plotshape(triangleBullish, "Triangle Long", shape.triangleup, location.belowbar, 
         color.new(color.green, 20), size=size.small, text="🔺")
plotshape(triangleBearish, "Triangle Short", shape.triangledown, location.abovebar,
         color.new(color.orange, 20), size=size.small, text="🔺")

plotshape(chopBullish, "Chop Long", shape.circle, location.belowbar, 
         color.new(color.gray, 50), size=size.tiny, text="⚫")
plotshape(chopBearish, "Chop Short", shape.circle, location.abovebar,
         color.new(color.gray, 50), size=size.tiny, text="⚫")

// Stop Loss Lines
plot(strategy.position_size > 0 ? long_stop : na, "Long Stop", color.red, linewidth=2)
plot(strategy.position_size < 0 ? short_stop : na, "Short Stop", color.red, linewidth=2)

// Background coloring for market conditions
bgcolor(not chop_filter ? color.new(color.yellow, 95) : na, title="Chop Zone")


// === ALERTS ===
alertcondition(diamondBullish, title="Diamond Long Signal", message="💎 REVERSAL LONG - {{ticker}} at {{close}}")
alertcondition(diamondBearish, title="Diamond Short Signal", message="💎 REVERSAL SHORT - {{ticker}} at {{close}}")
alertcondition(triangleBullish, title="Triangle Long Signal", message="🔺 CONTINUATION LONG - {{ticker}} at {{close}}")
alertcondition(triangleBearish, title="Triangle Short Signal", message="🔺 CONTINUATION SHORT - {{ticker}} at {{close}}")
alertcondition(strategy.position_size == 0 and strategy.position_size[1] != 0, title="Position Closed", message="💰 POSITION CLOSED - {{ticker}} at {{close}}")