Stratégie quantitative de stop loss dynamique à double croisement EMA

EMA CROSSOVER STOP-LOSS TREND FOLLOWING TECHNICAL INDICATORS
Date de création: 2025-04-24 16:59:03 Dernière modification: 2025-04-24 16:59:03
Copier: 0 Nombre de clics: 313
2
Suivre
319
Abonnés

Stratégie quantitative de stop loss dynamique à double croisement EMA Stratégie quantitative de stop loss dynamique à double croisement EMA

Aperçu

La stratégie est basée sur le double croisement des moyennes mobiles indicielles (EMA) et est conçue en combinaison avec un mécanisme de stop-loss dynamique. La stratégie utilise l’EMA du 10e jour et l’EMA du 20e jour comme signaux de négociation principaux, et le 50e jour comme filtre de tendance, tout en utilisant l’EMA du 10e jour comme ligne de stop-loss dynamique.

Principe de stratégie

  1. Détermination du nombre d’espaces
    • Condition de plusieurs têtes: la confirmation de la tendance à plusieurs têtes est établie lorsque l’EMA de 10 jours traverse l’EMA de 20 jours par le bas et que la clôture actuelle est supérieure à l’EMA de 50 jours.
    • Condition de tête creuse: la tendance à la tête creuse est confirmée lorsque l’EMA du 10e jour traverse l’EMA du 20e jour par le haut et que le prix de clôture actuel est inférieur à l’EMA du 50e jour.
  2. Système d’arrêt dynamique
    • Pendant la période de multiposition, si le cours de clôture tombe au-dessous de l’EMA du 10e jour, un arrêt de perte est déclenché.
    • Pendant la période de détention à vide, si le cours de clôture dépasse l’EMA du 10e jour, un arrêt de perte est déclenché.
  3. Filtrage des tendancesL’EMA à 50 jours sert de filtre de tendance à long terme pour éviter les échanges fréquents dans des conditions de choc.

Analyse des avantages

  1. Capacité à suivre les tendancesLe double croisement EMA est efficace pour capturer les tendances intermédiaires, et le filtre EMA à 50 jours réduit les faux signaux.
  2. Gestion dynamique des risquesLe 10e EMA est une ligne de stop-loss dynamique qui peut être ajustée en fonction de la tendance pour protéger les bénéfices.
  3. Conception visuelle: Distinguer les trois EMA en différentes couleurs et largeurs de ligne, et marquer les signaux d’achat et de vente pour faciliter la surveillance en temps réel.
  4. Ajustabilité des paramètres: Le cycle EMA peut être ajusté de manière flexible pour s’adapter aux fluctuations du marché en fonction des paramètres d’entrée.

Analyse des risques

  1. Risque de retardL’EMA a calculé sur la base des données historiques que des retraits plus importants sont possibles dans un contexte de reprise rapide.
    • Une solution: Indicateur de la dynamique combinée ((comme le RSI) filtre les fluctuations extrêmes.
  2. Les pertes des marchés en criseLes signaux de croisement peuvent souvent déclencher des transactions invalides dans des conditions sans tendance.
    • *Une solution*Le taux d’inflation est le taux de change le plus élevé de l’année.
  3. Paramètres sur-adaptésLes cycles EMA fixes peuvent ne pas s’adapter à toutes les conditions du marché.
    • Une solution: Validation à l’aide d’algorithmes cycliques adaptatifs ou multi-temps.

Direction d’optimisation

  1. Amélioration du signal composite
    • Augmentation de la confirmation de la transaction (par exemple, amplification lors de la percée), amélioration de la fiabilité du signal.
  2. Gestion dynamique des positions
    • Ajustez la taille de votre position en fonction de la volatilité (ATR) pour réduire l’exposition à des périodes de risque élevé.
  3. Optimisation du machine learning
    • Optimisation dynamique du portefeuille de cycles EMA à l’aide de modèles de formation basés sur des données historiques.
  4. Vérification de plusieurs périodes
    • Il faut que la direction de l’EMA au niveau de la circonférence soit en accord avec le signal de la ligne solaire, ce qui améliore le taux de réussite.

Résumer

Cette stratégie, combinant double croisement EMA et stop loss dynamique, réalise un équilibre entre le suivi de la tendance et la maîtrise du risque. Son avantage central réside dans la structure logique claire et la conception visuelle intuitive, adaptée aux scénarios de négociation à faible ou moyenne fréquence. La stabilité peut être encore améliorée à l’avenir en introduisant des données de marché plus dimensionnelles (comme la volatilité, le volume de transactions).

Code source de la stratégie
/*backtest
start: 2024-04-24 00:00:00
end: 2025-04-23 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
//@description Ovtlyer EMA Crossover  price over 50 Indicator
//@author YourName

strategy("EMA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Input EMA lengths
length10 = input.int(10, minval=1, title="10 EMA Length")
length20 = input.int(20, minval=1, title="20 EMA Length")
length50 = input.int(50, minval=1, title="50 EMA Length")

// Calculate EMAs
ema10 = ta.ema(close, length10)
ema20 = ta.ema(close, length20)
ema50 = ta.ema(close, length50)

// Bullish Condition: 10 EMA crosses above 20 EMA AND price is above 50 EMA
bullishCondition = ta.crossover(ema10, ema20) and close > ema50

// Bearish Condition: 10 EMA crosses below 20 EMA AND price is below 50 EMA
bearishCondition = ta.crossunder(ema10, ema20) and close < ema50

// Track the current market state
var isBullish = false
var isBearish = false

if (bullishCondition)
    isBullish := true
    isBearish := false

if (bearishCondition)
    isBearish := true
    isBullish := false

// Exit conditions
bullishExit = isBullish and close < ema10
bearishExit = isBearish and close > ema10

// Plot EMAs
plot(ema10, title="10 EMA", color=color.rgb(0, 255, 0), linewidth=3) // Thick green line for 10 EMA
plot(ema20, title="20 EMA", color=color.rgb(0, 150, 255), linewidth=2) // Medium blue line for 20 EMA
plot(ema50, title="50 EMA", color=color.rgb(255, 165, 0), linewidth=1) // Thin orange line for 50 EMA

// Strategy Entry and Exit
if (bullishCondition)
    strategy.entry("Long", strategy.long)

if (bearishCondition)
    strategy.entry("Short", strategy.short)

if (bullishExit)
    strategy.close("Long")

if (bearishExit)
    strategy.close("Short")

// Plot Entry Signals (for visualization)
plotshape(bullishCondition, title="Bullish Signal", 
          location=location.belowbar, style=shape.triangleup, 
          size=size.small, color=color.green)
plotshape(bearishCondition, title="Bearish Signal", 
          location=location.abovebar, style=shape.triangledown, 
          size=size.small, color=color.red)

// Plot Exit Signals (for visualization)
plotshape(bullishExit, title="Bullish Exit", 
          location=location.abovebar, style=shape.xcross, 
          size=size.small, color=color.orange)
plotshape(bearishExit, title="Bearish Exit", 
          location=location.belowbar, style=shape.xcross, 
          size=size.small, color=color.purple)