Stratégie de négociation à moyenne mobile double

Auteur:ChaoZhang est là., Date: 2024-01-19 à 14h10
Les étiquettes:

img

Résumé

La stratégie de négociation des moyennes mobiles doubles est une stratégie de négociation quantitative commune. Cette stratégie utilise deux moyennes mobiles avec des périodes de temps différentes pour générer des signaux de trading basés sur leur croisement. Plus précisément, lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, elle est considérée comme un signal d'achat; lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, elle est considérée comme un signal de vente.

Principe

Le principe de base de cette stratégie est le suivant: la moyenne mobile à court terme reflète la tendance à court terme du prix de l'actif, et la moyenne mobile à long terme reflète la tendance à long terme du prix de l'actif. Lorsque la ligne à court terme traverse au-dessus de la ligne à long terme, cela indique que la tendance à court terme est en hausse, à ce moment-là, vous pouvez acheter. Lorsque la ligne à court terme traverse en dessous de la ligne à long terme, cela indique que la tendance à court terme est en baisse, à ce moment-là, vous pouvez vendre. Suivez la tendance, captez le tournant de la tendance des prix.

Plus précisément, la stratégie définit deux moyennes mobiles: une moyenne mobile à court terme de 5 jours pour capturer les tendances des prix à court terme; et une moyenne mobile à long terme de 15 jours pour juger des tendances des prix à long terme.

Analyse des avantages

Comparée à d'autres stratégies, la double stratégie des moyennes mobiles présente les avantages suivants:

  1. Simple à utiliser, facile à comprendre et à mettre en œuvre, adapté aux débutants du trading quantitatif.
  2. Suivre la tendance, éviter de poursuivre la raison fondamentale de la tendance complexe du marché.
  3. Ajustement des paramètres flexible, la période de moyenne mobile peut être ajustée pour s'adapter à différents environnements de marché.
  4. Filtrez efficacement le bruit du marché, captez les points tournants de tendance à long et à court terme.
  5. Fréquence de négociation personnalisable pour réduire les coûts de transaction et les pertes par glissement.

Analyse des risques

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

  1. Il peut générer de faux signaux parce que la moyenne mobile est essentiellement un signal de retard.
  2. La nécessité de surveiller simultanément deux moyennes mobiles, l'ajustement des paramètres et les tests d'effet sont complexes.
  3. Ne peut pas gérer les scénarios avec des fluctuations de prix spectaculaires bien, facilement arrêté la perte.
  4. La fréquence de négociation peut être trop élevée ou trop faible, les paramètres doivent être optimisés.
  5. L'effet est fortement corrélé avec les conditions du marché, la mauvaise performance lors d'un marché baissier global.

Les solutions:

  1. Combinez avec d'autres indicateurs pour filtrer les signaux.
  2. Optimiser les paramètres de la moyenne mobile et les performances des essais.
  3. Mettre en place une plage d'arrêt de perte appropriée.
  4. Ajustez les paramètres de la moyenne mobile pour optimiser la fréquence des transactions.
  5. Ajustez les paramètres selon les différentes conditions du marché.

Directions d'optimisation

La stratégie peut être optimisée dans les directions suivantes:

  1. Combinez avec d'autres indicateurs comme MACD, KDJ pour filtrer les faux signaux.

  2. Introduire une moyenne mobile adaptative, ajuster dynamiquement les paramètres en fonction de la volatilité du marché pour améliorer la robustesse.

  3. Optimiser les paramètres de la moyenne mobile pour trouver la meilleure combinaison et améliorer les performances de la stratégie.

  4. Ajouter un mécanisme de stop loss pour limiter les pertes et renforcer le contrôle des risques.

  5. Combinaison de plusieurs délais, utilisant des signaux de lignes quotidiennes et hebdomadaires pour améliorer la stabilité.

  6. Commutateur d'état de Markov, utiliser différents paramètres dans différents états de marché pour améliorer l'adaptabilité.

Résumé

En général, la stratégie de négociation de la moyenne mobile double est assez efficace et stable. Le principe de négociation est simple à comprendre et à mettre en œuvre, les paramètres sont flexibles pour s'adapter aux tendances du marché. Pendant ce temps, il existe certaines limitations telles que la génération de faux signaux et la difficulté à gérer les fluctuations drastiques du marché. Ceux-ci peuvent être abordés en introduisant d'autres outils et l'optimisation des paramètres.


//@version=3
strategy("CS: 2 Moving Averages Script - Strategy (Testing)", overlay=true)

// === GENERAL INPUTS ===
// short ma
ma1Source   = input(defval = close, title = "MA 1 Source")
ma1Length   = input(defval = 5, title = "MA 1 Period", minval = 1)
// long ma
ma2Source   = input(defval = close, title = "MA 2 Source")
ma2Length   = input(defval = 15, title = "MA 2 Period", minval = 1)

// === SERIES SETUP ===
/// a couple of ma's..
ma1 = ema(ma1Source, ma1Length)
ma2 = ema(ma2Source, ma2Length)

// === PLOTTING ===
fast = plot(ma1, title = "MA 1", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(ma2, title = "MA 2", color = green, linewidth = 2, style = line, transp = 30)

// === LOGIC ===
enterLong = crossover(ma1, ma2)
exitLong = crossover(ma2, ma1)

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

// === 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"

// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=exitLong and window())

Plus de