Stratégie de suivi des tendances croisées multi-indicateurs combinée au retracement de Fibonacci et au système d'optimisation stop-profit et stop-loss

EMA FIBO TP/SL Trend
Date de création: 2025-02-20 16:43:42 Dernière modification: 2025-02-20 16:43:42
Copier: 1 Nombre de clics: 387
2
Suivre
319
Abonnés

Stratégie de suivi des tendances croisées multi-indicateurs combinée au retracement de Fibonacci et au système d’optimisation stop-profit et stop-loss Stratégie de suivi des tendances croisées multi-indicateurs combinée au retracement de Fibonacci et au système d’optimisation stop-profit et stop-loss

Aperçu

La stratégie est un système de négociation intégré qui combine les croisements des moyennes mobiles indicielles (EMA), des niveaux de rétroaction de Fibonacci, des jugements de tendance et un mécanisme de stop-loss. La stratégie détermine les signaux de négociation par le croisement des EMAs de 9 cycles et de 21 cycles, tout en combinant les niveaux de rétroaction de Fibonacci pour optimiser les positions d’entrée et améliorer l’exactitude des transactions grâce à la surveillance en temps réel de l’état de la tendance.

Principe de stratégie

La logique fondamentale de la stratégie repose sur les éléments clés suivants :

  1. Lorsque l’EMA rapide ((cycle 9)) traverse vers le haut l’EMA lente ((cycle 21), le système génère un signal de multiplication
  2. Lorsque l’EMA rapide traverse l’EMA lente vers le bas, le système génère un signal de vide
  3. En calculant les prix maximaux et minimaux sur 100 cycles, les niveaux de régression de Fibonacci de 23,6%, 38,2%, 50% et 61,8% sont tracés
  4. Jugez l’état actuel de la tendance par la relation entre la position de la clôture et celle de l’EMA rapide
  5. Lors de l’exécution d’une transaction, le système définit automatiquement un stop-loss à un pourcentage fixe (environ 4%) et un stop-loss (environ 2%).

Avantages stratégiques

  1. Confirmation de signaux multidimensionnels: offre des signaux de négociation plus fiables combinés à des croisements EMA, des niveaux de Fibonacci et des états de tendance
  2. Gestion des risques: contrôle automatique des risques grâce à un stop loss par défaut
  3. La capacité de suivi des tendances est forte: l’EMA croisée est associée à la détermination de l’état de la tendance, captant efficacement les tendances du marché.
  4. Retour visuel clair: aide à la prise de décision en affichant les niveaux de prix, les tendances et les signaux de négociation clés
  5. Un niveau élevé de systématisation: logique de transaction claire, réduction des interférences avec les jugements subjectifs

Risque stratégique

  1. Risque de marché oscillant: des croisements fréquents d’EMA peuvent conduire à de faux signaux pendant la phase de liquidation horizontale
  2. Risque de retard: les moyennes mobiles sont essentiellement un indicateur de retard qui peut manquer le meilleur moment d’entrée
  3. Risque de stop-loss fixe: le pourcentage de stop-loss fixe prédéfini peut ne pas être adapté à toutes les conditions du marché
  4. Risque de conflit de signaux: il peut y avoir des signaux contradictoires entre plusieurs indicateurs, ce qui rend la prise de décision plus difficile
  5. Risque de fluctuation du marché: une forte volatilité peut conduire à un point de rupture déraisonnable

Orientation de l’optimisation de la stratégie

  1. Optimisation des arrêts dynamiques: les arrêts peuvent être ajustés en fonction de l’ATR ou de la dynamique des fluctuations du marché
  2. Amélioration du filtrage des signaux: augmentation des indicateurs auxiliaires tels que le trafic et la puissance pour filtrer les faux signaux
  3. Adaptation des paramètres: introduction d’un mécanisme d’adaptation qui modifie le cycle EMA en fonction de la dynamique du marché
  4. Optimisation de l’entrée: optimisation de l’entrée autour des niveaux de Fibonacci, combinée à la forme des prix et au volume des transactions
  5. Gestion de position perfectionnée: un système de gestion de position dynamique conçu en fonction de la volatilité et du risque du compte

Résumer

Cette stratégie a pour avantage d’être multi-dimensionnelle dans la reconnaissance des signaux et systématisée dans la gestion des risques, mais nécessite toujours une optimisation pour les différents environnements de marché. Il est recommandé aux traders d’optimiser l’ajustement des paramètres en fonction des conditions spécifiques du marché et de rester toujours vigilants face au risque.

Code source de la stratégie
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

//@version=5
strategy("EMA Cross Strategy with TP, SL, Fibonacci Levels, and Trend", overlay=true)

// Input for stop loss and take profit percentages
stopLossPercentage = input.int(2, title="Stop Loss (%)") // Stop loss percentage
takeProfitPercentage = input.int(4, title="Take Profit (%)") // Take profit percentage

// EMA Length Inputs
fastEMALength = input.int(9, title="Fast EMA Length")
slowEMALength = input.int(21, title="Slow EMA Length")

// Compute EMAs
fastEMA = ta.ema(close, fastEMALength)
slowEMA = ta.ema(close, slowEMALength)

// Entry conditions for EMA crossover
longCondition = ta.crossover(fastEMA, slowEMA)  // EMA 9 crosses above EMA 21
shortCondition = ta.crossunder(fastEMA, slowEMA) // EMA 9 crosses below EMA 21

// Plot EMAs
plot(fastEMA, color=color.blue, title="Fast EMA (9)")
plot(slowEMA, color=color.red, title="Slow EMA (21)")

// Fibonacci Retracement Levels
lookback = input.int(100, title="Lookback Period for Fibonacci Levels")
highLevel = ta.highest(high, lookback)
lowLevel = ta.lowest(low, lookback)

fib236 = lowLevel + (highLevel - lowLevel) * 0.236
fib382 = lowLevel + (highLevel - lowLevel) * 0.382
fib50 = lowLevel + (highLevel - lowLevel) * 0.5
fib618 = lowLevel + (highLevel - lowLevel) * 0.618

// Display Fibonacci levels (Left of the candle near price)
label.new(bar_index, fib236, text="Fib 23.6%: " + str.tostring(fib236, "#.##"), style=label.style_label_left, color=color.purple, textcolor=color.white, size=size.small)
label.new(bar_index, fib382, text="Fib 38.2%: " + str.tostring(fib382, "#.##"), style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)
label.new(bar_index, fib50, text="Fib 50%: " + str.tostring(fib50, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
label.new(bar_index, fib618, text="Fib 61.8%: " + str.tostring(fib618, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)

// Trend condition: Price uptrend or downtrend
trendCondition = close > fastEMA ? "Uptrending" : close < fastEMA ? "Downtrending" : "Neutral"

// Display Trend Status (Left of candle near price)
var label trendLabel = na
if (not na(trendLabel))
    label.delete(trendLabel)
trendLabel := label.new(bar_index, close, text="Trend: " + trendCondition, style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)

// Buy and Sell orders with Stop Loss and Take Profit
if (longCondition)
    stopLossLevel = close * (1 - stopLossPercentage / 100)
    takeProfitLevel = close * (1 + takeProfitPercentage / 100)
    strategy.entry("BUY", strategy.long)
    strategy.exit("Sell", "BUY", stop=stopLossLevel, limit=takeProfitLevel)
    
    // Display TP, SL, and Buy label (Left of candle near price)
    label.new(bar_index, takeProfitLevel, text="TP\n" + str.tostring(takeProfitLevel, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
    label.new(bar_index, stopLossLevel, text="SL\n" + str.tostring(stopLossLevel, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, close, text="BUY\n" + str.tostring(close, "#.##"), style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)

if (shortCondition)
    stopLossLevel = close * (1 + stopLossPercentage / 100)
    takeProfitLevel = close * (1 - takeProfitPercentage / 100)
    strategy.entry("SELL", strategy.short)
    strategy.exit("Cover", "SELL", stop=stopLossLevel, limit=takeProfitLevel)
    
    // Display TP, SL, and Sell label (Left of candle near price)
    label.new(bar_index, takeProfitLevel, text="TP\n" + str.tostring(takeProfitLevel, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
    label.new(bar_index, stopLossLevel, text="SL\n" + str.tostring(stopLossLevel, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, close, text="SELL\n" + str.tostring(close, "#.##"), style=label.style_label_left, color=color.orange, textcolor=color.white, size=size.small)

// Plot Buy/Sell Signals
plotshape(series=longCondition, title="BUY Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="SELL Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")