Stratégie de prix cible et de stop loss de Fibonacci combinant moyenne mobile fantôme et momentum

GMA WMA EMA Momentum Oscillator Fibonacci Retracement Trading Dashboard
Date de création: 2025-04-02 15:33:54 Dernière modification: 2025-04-02 15:33:54
Copier: 1 Nombre de clics: 325
2
Suivre
319
Abonnés

Stratégie de prix cible et de stop loss de Fibonacci combinant moyenne mobile fantôme et momentum Stratégie de prix cible et de stop loss de Fibonacci combinant moyenne mobile fantôme et momentum

Aperçu

Cette stratégie est un système de trading intégré qui combine plusieurs indicateurs techniques, principalement une combinaison de moyennes mobiles fantômes, d’indicateurs de momentum et de niveaux de rétroaction de Fibonacci pour construire un cadre de trading complet. La stratégie utilise les moyennes mobiles fantômes pour déterminer la direction de la tendance du marché, combinée à des indicateurs de momentum pour vérifier la force du signal et utilise les niveaux de Fibonacci pour définir automatiquement des objectifs et des points de perte pour automatiser la gestion des risques.

Principe de stratégie

  1. Moyenne mobile fantôme (GMA): C’est le composant central de la stratégie, qui fournit un signal de tendance des prix plus sensible que les moyennes mobiles traditionnelles par des méthodes de calcul spéciales. La formule de calcul spécifique est: Calculez d’abord deux fois la moyenne mobile pondérée à demi-cycle (WMA) moins la moyenne mobile pondérée à cycle complet, puis appliquez à nouveau un cycle à la racine carrée de la moyenne mobile pondérée à cycle primaire.

  2. Indicateur de vitesse: La stratégie utilise la différence entre le prix actuel et le prix avant une période donnée pour mesurer la dynamique du marché et la traite en douceur à l’aide de l’indice des moyennes mobiles ((EMA)), puis de la normalisation à l’aide de l’écart standard, ce qui rend le signal de dynamique plus stable et plus fiable.

  3. Le jugement des tendances: La tendance du marché est déterminée par le calcul de l’inclinaison de la moyenne mobile fantôme, l’inclinaison étant positive pour la tendance à la hausse et négative pour la tendance à la baisse.

  4. Le prix Fibonacci et le stop loss: La stratégie est basée sur le calcul des niveaux de Fibonacci des prix les plus élevés et les plus bas de la période de rétrocession, en utilisant respectivement 0,618, 1,0 et 1,618 comme prix cible et 0,382 comme niveau de stop-loss.

  5. Conditions d’entrée:

    • Entrée multiple: prix à la hausse à travers les moyennes mobiles fantômes avec une dynamique d’unification positive
    • Entrée à vide: prix à la baisse à travers la moyenne mobile fantôme avec une dynamique d’unification négative

Avantages stratégiques

  1. Une double confirmation de la tendance et de la dynamiqueLa stratégie permet de réduire efficacement les faux signaux en combinant les moyennes mobiles fantômes et les indicateurs dynamiques, et ne déclenche des signaux de négociation que si les deux indicateurs remplissent les conditions en même temps.

  2. Gestion des risques adaptée: La méthode utilise les niveaux de Fibonacci pour définir automatiquement les prix cibles et les points de rupture, qui s’ajustent automatiquement en fonction de la volatilité du marché, offrant un rapport de risque/rendement approprié dans différentes conditions de marché.

  3. Disque de trading visualiséLe tableau de bord de négociation intégré à la stratégie affiche de manière intuitive l’état de la tendance, les signaux de négociation, les raisons d’entrée et les informations clés telles que les prix cibles et les arrêts de perte pour aider les traders à prendre des décisions rapides.

  4. Adaptation aux fluctuations du marchéLes moyennes mobiles fantômes sont plus sensibles aux variations de prix que les moyennes mobiles traditionnelles et permettent de reconnaître plus rapidement les changements de tendance et de réduire le retard.

  5. Des règles de négociation clairesLa stratégie offre des conditions d’entrée et de sortie claires, réduit le jugement subjectif et aide les traders à rester disciplinés.

Risque stratégique

  1. Risques liés à la survente: Dans un marché en tremblement de terre, les prix peuvent fréquemment traverser les moyennes mobiles fantômes, ce qui entraîne une surabondance de signaux de négociation. La solution consiste à ajouter des conditions de filtrage supplémentaires, telles que la négociation uniquement dans des tendances claires ou l’augmentation du cycle de confirmation des signaux.

  2. Réservation de risque: Les stop-loss Fibonacci à taux fixe peuvent ne pas être suffisamment flexibles dans des marchés très volatils, ce qui peut entraîner des stop-loss trop allégés ou trop serrés. Il est recommandé d’ajuster le ratio Fibonacci en fonction de la dynamique de différentes conditions de marché.

  3. Paramètre SensibilitéLa performance de la stratégie dépend fortement de la configuration de plusieurs paramètres, tels que la longueur de la GMA, le cycle de dynamique, etc. Des combinaisons de paramètres différentes peuvent être nécessaires pour différents marchés et périodes de temps. Il est recommandé de faire des tests de retour pour trouver les paramètres optimaux.

  4. Le retard dans le jugement des tendances: Bien que les moyennes mobiles fantômes soient plus sensibles que les moyennes mobiles traditionnelles, il y a toujours un certain retard et certaines opportunités peuvent être manquées au début de la tendance. Vous pouvez envisager de combiner des indicateurs à des périodes plus courtes pour détecter les changements de tendance plus tôt.

  5. Déviation de détection: Le niveau Fibonacci de la stratégie est basé sur des calculs de données historiques, il peut y avoir un biais vers l’avant. Dans les transactions réelles, il faut en tenir compte et envisager d’utiliser une méthode plus dynamique pour calculer les niveaux critiques.

Orientation de l’optimisation de la stratégie

  1. Optimisation des paramètres d’adaptation: Les stratégies actuelles utilisent des paramètres fixes et peuvent introduire des mécanismes d’adaptation pour ajuster automatiquement la longueur et la dynamique des cycles GMA en fonction de la volatilité du marché, afin que les stratégies puissent maintenir une performance optimale dans différentes conditions de marché.

  2. Analyse de plusieurs périodes: l’ajout d’une analyse sur plusieurs périodes de temps, l’exécution de transactions uniquement lorsque les signaux sur plusieurs périodes de temps sont cohérents, ce qui peut améliorer considérablement la qualité du signal et le taux de réussite.

  3. Objectif de frein dynamique: Les stratégies actuelles utilisent des niveaux de Fibonacci fixes comme prix cibles, il peut être envisagé d’ajuster les prix cibles en fonction de la dynamique de la volatilité du marché, ou de mettre en œuvre des stratégies de suivi de stop-loss pour maximiser le potentiel de profit.

  4. Analyse du volume des échanges: En combinant les indicateurs de volume de transactions pour vérifier l’efficacité de la tendance des prix, les transactions ne peuvent être effectuées que si le prix et le volume de transactions sont confirmés simultanément, ce qui réduit les faux signaux de rupture.

  5. Le renforcement de l’apprentissage automatique: Introduction d’algorithmes d’apprentissage automatique pour optimiser les conditions d’entrée et la sélection des paramètres, prévoir les meilleures opportunités de négociation et les stratégies de gestion des risques grâce à des modèles de formation sur les données historiques.

  6. Intégration des indicateurs émotionnels: Ajout d’indicateurs de l’humeur du marché, tels que l’indice de volatilité ou d’autres indicateurs dérivés, pour ajuster les actions stratégiques dans des conditions de marché extrêmes et améliorer la capacité de gestion des risques.

Résumer

La stratégie Fibonacci de cible et de stop-loss combinée à une moyenne mobile fantôme est un système de négociation complet de l’analyse technique qui offre un cadre de négociation systématisé par la combinaison de plusieurs indicateurs et techniques. Le principal avantage de la stratégie réside dans le mécanisme de double confirmation des tendances et des dynamiques, ainsi qu’un système de gestion des risques adaptatif basé sur la volatilité du marché. Bien que certains risques inhérents, tels que la sensibilité aux paramètres et le potentiel de sur-transaction, soient présents, la robustesse et l’efficacité de la stratégie peuvent être considérablement améliorées par les orientations d’optimisation proposées.

Code source de la stratégie
/*backtest
start: 2024-04-02 00:00:00
end: 2025-04-01 00:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ghost MA + Momentum + Fib TP/SL + Dashboard", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === INPUTS ===
src = input(close, "Source")
gmaLength = input.int(20, "GMA Length")
momentumLength = input.int(20, "Momentum Length")
momentumSmoothing = input.int(10, "Momentum Smoothing")
swingLookback = input.int(50, "Fibonacci Swing Lookback")

// === GHOST MOVING AVERAGE ===
gma = ta.wma(2 * ta.wma(src, gmaLength / 2) - ta.wma(src, gmaLength), math.round(math.sqrt(gmaLength)))
plot(gma, title="Ghost MA", color=color.teal, linewidth=2)

// === MOMENTUM GHOST OSCILLATOR ===
momentum = src - src[momentumLength]
smoothMomentum = ta.ema(momentum, momentumSmoothing)
normalizedMomentum = smoothMomentum / ta.stdev(momentum, momentumLength)

// === MARKET TREND ===
gmaSlope = gma - gma[1]
marketTrend = gmaSlope > 0 ? "UPTREND" : "DOWNTREND"

// === SWING POINTS FOR FIBONACCI ===
highestHigh = ta.highest(high, swingLookback)
lowestLow = ta.lowest(low, swingLookback)
fibRange = highestHigh - lowestLow
entryPrice = close

// === FIBONACCI TP/SL LEVELS ===
tp1_long = entryPrice + (fibRange * 0.618)
tp2_long = entryPrice + (fibRange * 1.0)
tp3_long = entryPrice + (fibRange * 1.618)
sl_long  = entryPrice - (fibRange * 0.382)

tp1_short = entryPrice - (fibRange * 0.618)
tp2_short = entryPrice - (fibRange * 1.0)
tp3_short = entryPrice - (fibRange * 1.618)
sl_short  = entryPrice + (fibRange * 0.382)

// === STRATEGY CONDITIONS ===
longCond = ta.crossover(src, gma) and normalizedMomentum > 0
shortCond = ta.crossunder(src, gma) and normalizedMomentum < 0

if (longCond)
    strategy.entry("Long", strategy.long)
    strategy.exit("TP/SL Long", from_entry="Long", limit=tp1_long, stop=sl_long)

if (shortCond)
    strategy.entry("Short", strategy.short)
    strategy.exit("TP/SL Short", from_entry="Short", limit=tp1_short, stop=sl_short)

// === SIGNAL LABELS ON CHART ===
if (longCond)
    label.new(bar_index, low, "BUY\n" + str.tostring(close, "#.##"), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)

if (shortCond)
    label.new(bar_index, high, "SELL\n" + str.tostring(close, "#.##"), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)

// === ALERT CONDITIONS ===
alertcondition(longCond, title="Buy Signal", message="Buy Signal Triggered: GMA Cross Up + Momentum Positive")
alertcondition(shortCond, title="Sell Signal", message="Sell Signal Triggered: GMA Cross Down + Momentum Negative")

// === DASHBOARD ===
var table dash = table.new(position.top_right, 1, 8, border_width=1)

if bar_index % 5 == 0
    signal = longCond ? "BUY" : shortCond ? "SELL" : "WAIT"
    reason = longCond ? "GMA↑ & Momentum+" : shortCond ? "GMA↓ & Momentum−" : "No Clear Signal"
    timeframe = timeframe.period

    sigColor = signal == "BUY" ? color.new(color.green, 20) : signal == "SELL" ? color.new(color.red, 20) : color.new(color.gray, 60)
    trendColor = marketTrend == "UPTREND" ? color.new(color.green, 80) : color.new(color.red, 80)

    table.cell(dash, 0, 0, "📊 GHOST TRADING DASHBOARD", text_color=color.black, bgcolor=color.lime, text_size=size.large)
    table.cell(dash, 0, 1, "Trend: " + marketTrend, text_color=color.black, bgcolor=trendColor, text_size=size.normal)
    table.cell(dash, 0, 2, "Timeframe: " + timeframe, text_color=color.black, bgcolor=color.purple, text_size=size.normal)
    table.cell(dash, 0, 3, "Signal: " + signal + " @ " + str.tostring(close, "#.##"), text_color=color.black, bgcolor=sigColor, text_size=size.normal)
    table.cell(dash, 0, 4, "Reason: " + reason, text_color=color.black, bgcolor=color.new(color.yellow, 60), text_size=size.normal)
    table.cell(dash, 0, 5, signal == "BUY" ? "TP1: " + str.tostring(tp1_long, "#.##") + 
                 " | TP2: " + str.tostring(tp2_long, "#.##") + 
                 " | TP3: " + str.tostring(tp3_long, "#.##")
                 : signal == "SELL" ? "TP1: " + str.tostring(tp1_short, "#.##") + 
                 " | TP2: " + str.tostring(tp2_short, "#.##") + 
                 " | TP3: " + str.tostring(tp3_short, "#.##") : "-", 
                 text_color=color.black, bgcolor=color.new(color.green, 80), text_size=size.normal)
    table.cell(dash, 0, 6, "Reentry: " + str.tostring(gma, "#.##"), text_color=color.black, bgcolor=color.new(color.orange, 80), text_size=size.normal)
    table.cell(dash, 0, 7, signal == "BUY" ? "SL: " + str.tostring(sl_long, "#.##") : signal == "SELL" ? "SL: " + str.tostring(sl_short, "#.##") : "-", text_color=color.black, bgcolor=color.new(color.red, 70), text_size=size.normal)