Stratégie de rupture de la moyenne mobile double

Auteur:ChaoZhang est là., Date: 2024-01-24 14:49:29
Les étiquettes:

img

Résumé

La stratégie de rupture de la moyenne mobile double est une stratégie de trading quantitative basée sur une moyenne mobile rapide et une moyenne mobile lente. Elle utilise deux moyennes mobiles exponentielles (EMA) avec des périodes différentes comme signaux de trading.

La logique de la stratégie

La logique de base de cette stratégie est d'utiliser une moyenne mobile rapide et une moyenne mobile lente pour former des signaux de trading.

  1. Calculer la moyenne mobile exponentielle AP du tableau de prix avec une période de 2 jours
  2. Calculer la moyenne mobile rapide rapide basée sur AP, avec une période de 12 jours
  3. Calculer la moyenne mobile lente basée sur AP, avec une période de 26 jours
  4. Comparez les moyennes mobiles rapides et lentes:
    1. Quand Fast traverse au-dessus de Slow, c'est un signe haussier
    2. Quand le rapide passe sous le lent, c'est un signe baissier.
  5. Déterminer les signaux de négociation spécifiques combinant la relation entre prix et moyenne mobile:
    1. Signal haussier: rapide>lente et AP>rapide
    2. Signal baissier: Rapide et lent

L'utilisation du croisement de la moyenne mobile rapide et lente pour déterminer les tendances du marché et générer des signaux de négociation est une stratégie typique de moyenne mobile double.

Analyse des avantages

La stratégie de rupture de la moyenne mobile double présente les avantages suivants:

  1. La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre
  2. La période de moyenne mobile peut être ajustée pour s'adapter aux différents environnements de marché
  3. Permettre aux positions longues et courtes d'obtenir des rendements plus élevés
  4. Des signaux de trading plus précis peuvent être générés en combinant prix et moyennes mobiles
  5. Le retard des moyennes mobiles peut filtrer efficacement le bruit du marché

Analyse des risques

La stratégie de rupture de la moyenne mobile double comporte également certains risques:

  1. Plus de faux signaux peuvent se produire lorsque le marché est limité à une fourchette
  2. La stratégie de la moyenne mobile double peut entraîner un ajustement de la courbe, en ignorant les changements structurels du marché
  3. Le fait de s'appuyer uniquement sur des indicateurs techniques est vulnérable aux fausses ruptures, avec un risque de pertes.

Les solutions:

  1. Optimiser la période de moyenne mobile pour mieux s'adapter aux conditions actuelles du marché
  2. Confirmez les signaux avec d' autres indicateurs comme le volume pour éviter les fausses ruptures
  3. Adopter des stratégies de suivi des tendances pour contrôler le ratio profit/perte et réduire les risques

Directions d'optimisation

La stratégie de rupture des moyennes mobiles doubles peut être optimisée dans les aspects suivants:

  1. Trouver des combinaisons de périodes moyennes mobiles plus appropriées pour s'adapter aux changements du marché
  2. Ajouter des indicateurs tels que le volume pour le filtrage du signal pour assurer la validité
  3. Incorporer des indicateurs de structure du marché pour identifier les tendances et ajuster les paramètres
  4. Adopter des moyennes mobiles dynamiques qui peuvent ajuster automatiquement les périodes en fonction des variations du marché
  5. Incorporer des stratégies de stop loss pour contrôler efficacement le risque et protéger le capital

Conclusion

La stratégie de rupture de la moyenne mobile double est une stratégie de trading quantitative simple et pratique. Elle présente des avantages tels que la logique et la mise en œuvre faciles, et présente également des problèmes d'adaptabilité au marché. Nous pouvons en faire un système de trading rentable stable grâce à l'optimisation des paramètres, au filtrage des signaux, au contrôle des risques, etc. Dans l'ensemble, la stratégie de moyenne mobile double est un excellent prototype de stratégie qui mérite une recherche approfondie et une application pour les traders quantitatifs.


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CDC Action Zone V.2", overlay=true)

// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)


Bullish = Fast>Slow
Bearish = Fast<Slow

Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast

Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]


alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")


//Plot

l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2000, title = "From Year", minval = 1920)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 1921)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


if LSB == "Long only" and Buy and window()
    strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
    strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
    strategy.entry("L",true)
if LSB == "Both" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
    strategy.close("S",qty_percent=100,comment="TP Short")

Plus de