Stratégie de suivi des tendances de la moyenne mobile de Fibonacci à plusieurs niveaux

FIB EMA MA SMA
Date de création: 2024-11-29 15:09:56 Dernière modification: 2024-11-29 15:09:56
Copier: 0 Nombre de clics: 486
1
Suivre
1617
Abonnés

Stratégie de suivi des tendances de la moyenne mobile de Fibonacci à plusieurs niveaux

Aperçu

La stratégie est un système de suivi des tendances qui combine des retraits Fibonacci, des moyennes mobiles multiples et des volumes de transactions. La stratégie confirme les tendances en analysant la position des prix à différents niveaux de retraits Fibonacci (,0,382, ,618, ) en combinaison avec des EMAs pluricycliques (<20/50/100/200) et identifie les opportunités de négociation potentielles par un filtrage des marges de transaction. Le système est conçu pour une gestion complète des risques, y compris des stop-loss et des stop-loss à pourcentage fixe.

Principe de stratégie

La logique centrale de la stratégie est basée sur une approche d’analyse technique à plusieurs niveaux:

  1. Utilisez 30 cycles comme intervalle de rétroaction pour calculer le niveau de rétraction de Fibonacci et construisez un cadre de résistance de support pour le mouvement des prix
  2. Construction d’un système de confirmation de tendance à plusieurs niveaux à l’aide d’une moyenne mobile indicielle sur des cycles 20/50/100/200
  3. Un signal de multiplication est déclenché si le prix est au-dessus de la moyenne lorsque le prix est proche du niveau de Fibonacci de 0,382 et que le volume de transactions est supérieur à la dépréciation
  4. Un signal de coupe est déclenché si le prix est en dessous de la moyenne lorsque le prix est proche du niveau de Fibonacci de 0,618 et que le volume de transactions est supérieur à la dépréciation
  5. Un système de stop-loss basé sur un pourcentage de 6% et 3% respectivement

Avantages stratégiques

  1. Analyse multidimensionnelle: les trois dimensions de la forme, de la tendance et du volume des prix sont combinées pour améliorer la fiabilité du signal
  2. Gestion des risques: des conditions de stop-loss claires sont définies pour contrôler efficacement le risque de chaque transaction
  3. Confirmation complète de la tendance: utilisation d’un système de lignes moyennes multiples permettant de déterminer plus précisément la force et la direction de la tendance
  4. Le filtrage des signaux est rigoureux: les conditions de prix, de moyenne et de quantité de transaction doivent être remplies simultanément pour réduire la probabilité de fausses percées.
  5. Haute visibilité: les points d’entrée et de sortie sont clairement indiqués par un système de balises, facilitant l’analyse et l’optimisation

Risque stratégique

  1. Risque de marché oscillant: Faux signaux peuvent être fréquents dans les marchés oscillants horizontaux, il est recommandé d’ajouter des filtres sur les indicateurs d’oscillation
  2. Risque de dérapage: sous la contrainte de conditions de volumes, il est possible d’exécuter des dérapages et de modifier les seuils de volumes en fonction des conditions réelles.
  3. Risque de gestion des fonds: le pourcentage fixe de stop loss peut ne pas être suffisamment flexible dans certaines situations et il est recommandé de l’ajuster en fonction de la dynamique de la volatilité
  4. Dépendance à la tendance: la stratégie est plus performante dans une tendance évidente, mais peut subir des pertes continues pendant la période de conversion de tendance
  5. Sensitivité des paramètres: les combinaisons de plusieurs paramètres augmentent le risque de suradaptation et nécessitent une vérification de retour sur différentes périodes de temps

Orientation de l’optimisation de la stratégie

  1. Optimisation de l’arrêt dynamique: introduction de l’indicateur ATR pour l’ajustement dynamique de la distance d’arrêt afin d’améliorer l’adaptabilité aux fluctuations du marché
  2. Quantité de la force de la tendance: vous pouvez ajouter des indicateurs de force de la tendance tels que l’ADX, augmenter les positions pendant les tendances fortes et réduire les transactions pendant les tendances faibles
  3. Approfondissement de l’analyse des volumes de transactions: il est recommandé d’augmenter les analyses des volumes de transactions moyens et anormaux pour améliorer l’exactitude de l’analyse des volumes de transactions
  4. Optimisation du timing d’entrée: vous pouvez combiner des indicateurs de volatilité comme le RSI pour rechercher des opportunités de surachat et de survente dans le sens de la tendance
  5. Amélioration de la gestion des positions: il est recommandé d’ajuster le pourcentage de détention en fonction de l’intensité de la tendance et de la dynamique de la volatilité du marché

Résumer

Il s’agit d’une stratégie de suivi de tendance multicouche bien conçue, qui construit un cadre d’analyse tridimensionnel en combinant des outils d’analyse technique classiques. L’avantage de la stratégie réside dans la rigueur de la reconnaissance des signaux et l’intégrité de la gestion des risques, mais il faut également prêter attention à la performance dans les marchés en crise.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ALD Fib Ema SAKALAM", overlay=true)

// Inputs
lookback = input.int(30, title="Lookback Period for Fibonacci", minval=10)
volumeThreshold = input.float(500000, title="24h Volume Threshold", step=50000)
stopLossPct = input.float(3.0, title="Stop Loss %", minval=0.5)
takeProfitPct = input.float(6.0, title="Take Profit %", minval=1.0)
maLength = input.int(50, title="Trend Filter MA Length", minval=1)

// Moving Average (Trend Filter)
ma = ta.sma(close, maLength)

// High and Low for Fibonacci Levels
var float swingHigh = na
var float swingLow = na

if bar_index > lookback
    swingHigh := ta.highest(high, lookback)
    swingLow := ta.lowest(low, lookback)

// Fibonacci Levels Calculation
fib0 = swingLow
fib1 = swingHigh
fib382 = swingHigh - 0.382 * (swingHigh - swingLow)
fib618 = swingHigh - 0.618 * (swingHigh - swingLow)

// 24-hour Volume Calculation
volume24h = ta.sma(volume, 24)

// Plot Fibonacci Levels
plot(fib0, title="Fib 0", color=color.new(color.red, 80))
plot(fib382, title="Fib 0.382", color=color.new(color.green, 50))
plot(fib618, title="Fib 0.618", color=color.new(color.blue, 50))
plot(fib1, title="Fib 1", color=color.new(color.red, 80))
plot(ma, title="Trend Filter MA", color=color.orange)

// Entry Condition: Buy Signal
longCondition = (close <= fib382) and (volume24h > volumeThreshold) and (close > ma)
if (longCondition)
    strategy.entry("Buy", strategy.long)
    label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white)

// Exit Conditions
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPct / 100)
stopLossPrice = strategy.position_avg_price * (1 - stopLossPct / 100)

// Place Exit Orders
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=takeProfitPrice, stop=stopLossPrice)

// Add Labels for Exits
if (strategy.position_size > 0)
    if (high >= takeProfitPrice)
        label.new(bar_index, high, "EXIT (Take Profit)", style=label.style_label_down, color=color.blue, textcolor=color.white)

    if (low <= stopLossPrice)
        label.new(bar_index, low, "EXIT (Stop Loss)", style=label.style_label_down, color=color.red, textcolor=color.white)

// Short Selling Conditions
shortCondition = (close >= fib618) and (volume24h > volumeThreshold) and (close < ma)
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white)

// Short Exit Conditions
if (strategy.position_size < 0)
    strategy.exit("Short Take Profit/Stop Loss", from_entry="Sell", limit=strategy.position_avg_price * (1 - takeProfitPct / 100), stop=strategy.position_avg_price * (1 + stopLossPct / 100))

// Add EMA 20/50/100/200
shortest = ta.ema(close, 20)
short = ta.ema(close, 50)
longer = ta.ema(close, 100)
longest = ta.ema(close, 200)

plot(shortest, color=color.orange, title="EMA 20")
plot(short, color=color.red, title="EMA 50")
plot(longer, color=color.black, title="EMA 100")
plot(longest, color=color.green, title="EMA 200")