Stratégie de trading quantitative basée sur la moyenne mobile rapide et la moyenne mobile lente


Date de création: 2024-01-24 14:49:29 Dernière modification: 2024-01-24 14:49:29
Copier: 0 Nombre de clics: 484
1
Suivre
1617
Abonnés

Stratégie de trading quantitative basée sur la moyenne mobile rapide et la moyenne mobile lente

Aperçu

La stratégie de rupture de la double moyenne mobile est une stratégie de négociation quantitative basée sur les moyennes mobiles rapides et les moyennes mobiles lentes. Elle utilise deux moyennes mobiles indicielles de différentes périodes (EMA) comme signal de négociation. Un signal d’achat est généré lorsque la moyenne mobile rapide traverse la moyenne mobile lente; un signal de vente est généré lorsque la moyenne mobile rapide traverse la moyenne mobile lente.

Principe de stratégie

La logique de base de la stratégie est d’utiliser les courbes de mouvements rapides et les courbes de mouvements lents pour former un signal de transaction. La stratégie définit une période de 12 jours pour les courbes rapides et de 26 jours pour les courbes lentes.

  1. Calculer l’AP de l’indice des moyennes mobiles d’un tableau de prix avec une période de 2 jours
  2. La moyenne mobile rapide est calculée sur la base de l’AP Fast, avec une période de 12 jours
  3. Calcul de la moyenne mobile basée sur l’AP Slow, avec une période de 26 jours
  4. Comparer la moyenne mobile plus rapide à la moyenne mobile plus lente:
    1. Le signal de multiplication est activé lorsque le Fast est enfoncé dans le Slow
    2. Un signal de tête vide lorsque Fast passe sous Slow
  5. Les signaux de transaction spécifiques sont déterminés par la relation entre le prix et la moyenne mobile:
    1. Signal multi-tête: Rapide > Lent et AP > Rapide
    2. Signal de tête vide: Rapide

Une stratégie typique de double moyenne mobile consiste à déterminer les tendances du marché et à générer des signaux de transaction en croisant une moyenne mobile rapide et une moyenne mobile lente.

Analyse des avantages

Les avantages de la stratégie de percée de la moyenne mobile sont les suivants:

  1. La logique de la stratégie est simple, claire, facile à comprendre et à mettre en œuvre
  2. Adaptation à différentes conditions de marché en ajustant le cycle de la moyenne mobile
  3. Vous pouvez faire plus de prises de position en même temps pour obtenir des rendements plus élevés
  4. Les signaux de négociation plus précis peuvent être combinés avec la relation entre les prix et la moyenne mobile
  5. La ligne moyenne mobile a une certaine latence et peut effacer efficacement le bruit du marché

Analyse des risques

La stratégie de rupture de la moyenne mobile double comporte aussi des risques:

  1. Il y a plus de faux signaux quand les marchés sont en période de choc.
  2. Les stratégies de double équilibre mobile sont sujettes à la formation d’une adéquation de la courbe et ignorent les changements structurels du marché.
  3. Le seul recours aux indicateurs techniques est vulnérable aux fausses percées et présente un risque de perte.

La solution est simple:

  1. Optimiser la périodicité de la moyenne mobile pour la rendre plus conforme à la situation actuelle du marché
  2. Combiné à d’autres indicateurs tels que des signaux de confirmation de volume, pour éviter les fausses percées
  3. Utilisez des stratégies de suivi des tendances, maîtrisez les marges bénéficiaires et réduisez les risques

Direction d’optimisation

Les stratégies de percée de la moyenne mobile double peuvent être optimisées dans les domaines suivants:

  1. Trouver une combinaison de cycles mobiles plus appropriée pour s’adapter aux changements du marché
  2. Filtrer les signaux sur des indicateurs tels que l’augmentation du volume des transactions pour assurer l’efficacité des signaux de transaction
  3. Combiné avec des indicateurs de structure du marché, identifier les tendances et ajuster les paramètres de la période moyenne
  4. L’utilisation d’une moyenne mobile dynamique permet d’ajuster automatiquement le cycle en fonction des changements du marché
  5. Une stratégie de coupe-perte qui maîtrise efficacement les risques et protège les fonds

Résumer

La stratégie de rupture de la double courbe mobile est une stratégie de trading quantitatif simple et pratique. Elle présente des avantages tels que la logique de la stratégie est simple et facile à mettre en œuvre, mais il existe également un certain problème d’adaptation au marché. Nous pouvons en faire un système de trading stable et rentable grâce à l’optimisation des paramètres, au filtrage du signal et à la gestion des risques.

Code source de la stratégie
/*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")