Moving Average Crossover-Strategie


Erstellungsdatum: 2023-09-21 10:28:27 zuletzt geändert: 2023-09-21 10:28:27
Kopie: 0 Klicks: 667
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie ist eine typische Moving Average Crossover Trading Strategie. Sie nutzt die Kreuzung der schnellen Moving Average und der langsamen Moving Average als Kauf- und Verkaufsignal. Wenn der schnelle Moving Average den langsamen Moving Average von unten durchquert, wird dies als Kaufsignal betrachtet; wenn der schnelle Moving Average den langsamen Moving Average von oben durchquert, wird dies als Verkaufsignal betrachtet.

Strategieprinzip

Die Strategie wird in den folgenden Schritten umgesetzt:

  1. Setzen Sie die FastMA und die SlowMA.

  2. Der schnelle und der langsame Moving Average werden nach dem Eingabetyp Type berechnet. Bei Type = 1 wird der einfache Moving Average berechnet, bei Type = 2 der Index Moving Average.

  3. Setzen Sie die Start- und Endzeitbereiche.

  4. Definition der Kreuzfunktion: Wenn fast von unten auf slow übergeht, erzeugt es ein Kaufsignal; wenn fast von oben auf slow übergeht, erzeugt es ein Verkaufssignal.

  5. Wenn die Kreuzfunktion ausgelöst wird, wird ein Kauf- oder Verkaufsbefehl ausgesprochen, wenn der Rücklauf in der Zeiträume liegt.

  6. Beim Ende der Rückmeldung oder beim Durchlaufen unter der Kreuzfunktion wird die Schließanweisung ausgegeben.

  7. Zeichnen Sie ein Trenddiagramm mit schnellen und langsamen Moving Averages.

Die Strategie beurteilt Trends innerhalb einer Haltedauer durch die Kreuzung von schnellen und langsamen Moving Averages und erzeugt entsprechend ein Handelssignal. Gleichzeitig wird ein Rücklaufzeitfenster eingerichtet, um den echten Handel zu simulieren.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Verwendung von Moving Averages ist sehr effektiv, um Trends zu bestimmen und zufällige Schwankungen effektiv zu filtern.

  2. Die Kombination von schnellen und langsamen Moving Averages kann Trends erkennen.

  3. Die Moving Average-Parameter können an die Trends in den verschiedenen Perioden angepasst werden.

  4. Sie haben die Möglichkeit, sich flexibel für einen einfachen Moving Average oder einen Index Moving Average zu entscheiden.

  5. Strategieparameter können durch die Rückmeldfunktion getestet und optimiert werden.

  6. Die Strategie ist einfach, klar und verständlich.

  7. Die Graphik des Moving Averages erlaubt es, Trends und Effekte intuitiv zu erkennen.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. In der Berechnungsumgebung kann es zu Fehlsignalen kommen.

  2. Der Moving Average ist nachlässig und kann einen Wendepunkt verpassen.

  3. Sie basiert auf einer linearen Kreuzung ohne Kombination mit anderen Indikatoren oder Konditionsfiltern.

  4. Die Auswirkungen der Transaktionskosten werden nicht berücksichtigt.

  5. Keine Stop-Loss-Strategie eingerichtet.

  6. Unvernünftige Parameter-Einstellungen können die Effektivität der Strategie beeinträchtigen.

  7. Die falsche Wahl des Retrieval-Zeitraums könnte zu einer Überübung führen.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. In Kombination mit anderen Indikatoren wie MACD, RSI und anderen, um das Signal zu überprüfen, erhöht die Genauigkeit.

  2. Die Einführung von Stop-Loss-Strategien zur Kontrolle von Einzelschäden.

  3. Optimierung von Moving Average-Parametern für unterschiedliche Perioden.

  4. Das Management der offenen Lagerstätten wurde hinzugefügt, wobei verschiedene Lagerstätten für verschiedene Marktbedingungen verwendet wurden.

  5. Die Eintritts- und Ausstiegspunkte werden entsprechend den Transaktionskosten geändert.

  6. Die Daten sollten über einen längeren Zeitraum getestet werden, um Überübereinstimmungen zu vermeiden.

  7. Die Parameter werden mithilfe der Walks Forward Analysis optimiert.

Zusammenfassen

Die Moving-Average-Cross-Line-Strategie ist eine einfache und praktische Trend-Tracking-Strategie. Sie kann zufällige Schwankungen filtern und die Richtung der Tendenz erkennen. Es gibt jedoch auch einige Probleme wie Rückstand und sollte in Kombination mit anderen Indikatoren verwendet werden. Durch kontinuierliche Optimierungstests kann die Strategie besser funktionieren und in der Praxis sicherer und zuverlässiger sein.

Strategiequellcode
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// strategy("MavCrossover v2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// Revision:        1
// Author:          @ToS_MavericK

// === INPUT SMA ===
fastMA  = input(defval = 13,  title = "FastMA", minval = 1, step = 1)
slowMA  = input(defval = 144,  title = "SlowMA", minval = 1, step = 1)
Type    = input(defval = 1,  title = "Type (1 = SMA, 2 = EMA)", minval = 1, maxval = 2, step = 1)
SlowMAIsFactor = input(false)

slowMA := SlowMAIsFactor == true ? round(fastMA * slowMA) : slowMA

// === INPUT BACKTEST RANGE ===
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 2020, 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"

// === MA SETUP ===
fast = Type == 1 ? sma(close, fastMA) : ema(close, fastMA)
slow = Type == 1 ? sma(close, slowMA) : ema(close, slowMA)

// === EXECUTION ===
strategy.entry("L", strategy.long, when = crossover(fast, slow) and window())   // buy long when "within window of time" AND crossover
strategy.close("L", when = crossunder(fast, slow) or time > finish)             // sell long when window ends OR crossunder         

plot(fast, title = 'FastMA', color = yellow, linewidth = 2, style = line)  // plot FastMA
plot(slow, title = 'SlowMA', color = aqua, linewidth = 2, style = line)    // plot SlowMA