Handelsstrategie mit doppelten gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-01-19 14:10:38
Tags:

img

Übersicht

Die Dual Moving Average Trading Strategie ist eine gängige quantitative Handelsstrategie. Diese Strategie verwendet zwei gleitende Durchschnitte mit unterschiedlichen Zeiträumen, um Handelssignale auf der Grundlage ihres Crossovers zu generieren. Insbesondere gilt, wenn der kurzfristige gleitende Durchschnitt über den langfristigen gleitenden Durchschnitt überschreitet, als Kaufsignal; wenn der kurzfristige gleitende Durchschnitt unter dem langfristigen gleitenden Durchschnitt überschreitet, gilt es als Verkaufssignal.

Grundsätze

Das Kernprinzip dieser Strategie ist: Der kurzfristige gleitende Durchschnitt spiegelt den kurzfristigen Trend des Vermögenspreises wider, und der langfristige gleitende Durchschnitt spiegelt den langfristigen Trend des Vermögenspreises wider. Wenn die kurzfristige Linie über die langfristige Linie geht, zeigt dies, dass der kurzfristige Trend zu steigen geworden ist, zu diesem Zeitpunkt können Sie kaufen. Wenn die kurzfristige Linie unter die langfristige Linie geht, zeigt sie, dass der kurzfristige Trend zu fallen geworden ist, zu diesem Zeitpunkt können Sie verkaufen. Folgen Sie dem Trend, erfassen Sie den Wendepunkt des Preistrends.

Insbesondere definiert die Strategie zwei gleitende Durchschnitte: einen 5-tägigen kurzfristigen gleitenden Durchschnitt, um kurzfristige Preistrends zu erfassen; und einen 15-tägigen langfristigen gleitenden Durchschnitt, um langfristige Preistrends zu beurteilen.

Analyse der Vorteile

Im Vergleich zu anderen Strategien hat die doppelte gleitende Durchschnittsstrategie folgende Vorteile:

  1. Einfach zu bedienen, leicht zu verstehen und umzusetzen, geeignet für Anfänger im quantitativen Handel.
  2. Folgen Sie dem Trend, vermeiden Sie es, den grundlegenden Grund für komplexe Markttrends zu verfolgen.
  3. Flexible Anpassung der Parameter, der gleitende Durchschnittszeitraum kann an unterschiedliche Marktbedingungen angepasst werden.
  4. Effektive Filtermarktlärm, Erfassung von Wendepunkten langfristiger und kurzfristiger Trends.
  5. Anpassbare Handelsfrequenz zur Verringerung von Transaktionskosten und Schlupfverlusten.

Risikoanalyse

Die Strategie des doppelten gleitenden Durchschnitts birgt auch einige Risiken, darunter vor allem:

  1. Es kann falsche Signale erzeugen, da der gleitende Durchschnitt im Wesentlichen ein Nachlässignal ist.
  2. Zwei gleitende Durchschnitte müssen gleichzeitig überwacht werden, die Parameteranpassung und die Effektprüfung sind komplex.
  3. Kann Szenarien mit dramatischen Kursschwankungen nicht gut bewältigen, leicht Verluste stoppen.
  4. Die Handelsfrequenz kann zu hoch oder zu niedrig sein, die Parameter müssen optimiert werden.
  5. Der Effekt hängt stark mit den Marktbedingungen zusammen, die schlechte Performance während des gesamten Bärenmarktes.

Lösungen:

  1. Mit anderen Indikatoren kombiniert, um Signale zu filtern.
  2. Optimierung der gleitenden Durchschnittsparameter und der Prüfleistung.
  3. Setzen Sie den entsprechenden Stop-Loss-Bereich.
  4. Anpassung der gleitenden Durchschnittsparameter zur Optimierung der Handelsfrequenz.
  5. Anpassung der Parameter unter unterschiedlichen Marktbedingungen.

Optimierungsrichtlinien

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Kombinieren Sie mit anderen Indikatoren wie MACD, KDJ, um falsche Signale zu filtern.

  2. Einführung eines anpassungsfähigen gleitenden Durchschnitts, dynamische Anpassung von Parametern auf der Grundlage der Marktvolatilität zur Verbesserung der Robustheit.

  3. Optimieren Sie gleitende Durchschnittsparameter, um die beste Kombination zu finden und die Strategieleistung zu verbessern.

  4. Hinzufügen eines Stop-Loss-Mechanismus zur Begrenzung von Verlusten und Verbesserung der Risikokontrolle.

  5. Kombination von mehreren Zeitrahmen, die Signale von täglichen und wöchentlichen Linien zur Verbesserung der Stabilität nutzen.

  6. Markov-Zustandsschalter, verwenden Sie verschiedene Parameter unter verschiedenen Marktzuständen, um die Anpassungsfähigkeit zu verbessern.

Zusammenfassung

Im Allgemeinen ist die doppelte gleitende Durchschnittshandelsstrategie ziemlich effektiv und stabil. Das Handelsprinzip ist einfach zu verstehen und umzusetzen, die Parameter sind flexibel, um sich an Markttrends anzupassen. In der Zwischenzeit gibt es einige Einschränkungen wie die Erzeugung falscher Signale und Schwierigkeiten beim Umgang mit drastischen Marktschwankungen. Diese können durch die Einführung anderer Tools und Parameteroptimierung behoben werden. Insgesamt ist dies eine praktische Strategie, die für quantitative Handelsanfänger geeignet ist, um sie zu lernen und zu üben.


//@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())

Mehr