SMA-Kreuzungsstrategie für gleitende Durchschnitte

Schriftsteller:ChaoZhang, Datum: 2024-03-28 17:50:00
Tags:

img

Übersicht

Bei dieser Strategie handelt es sich um eine einfache SMA-Durchschnitts-Crossover-Strategie. Sie verwendet zwei einfache gleitende Durchschnitte (SMA) mit unterschiedlichen Längen. Wenn der schnelle MA über den langsamen MA überschreitet, tritt er in eine Long-Position ein. Wenn der schnelle MA unter den langsamen MA überschreitet, schließt er die Long-Position. Die Längen der beiden MA können angepasst werden, sowie die Start- und Enddaten für das Backtesting.

Die Hauptidee dieser Strategie besteht darin, die Trendmerkmale gleitender Durchschnitte und die Signalmerkmale von MA-Kreuzungen für den Handel zu nutzen. Wenn der schnelle MA über dem langsamen MA liegt, zeigt dies einen Aufwärtstrend an und eine Long-Position sollte gehalten werden. Wenn der schnelle MA unter dem langsamen MA liegt, zeigt er einen Abwärtstrend an und keine Position sollte gehalten werden.

Strategieprinzip

  1. Berechnen Sie zwei SMA mit unterschiedlichen Längen, die angepasst werden können.
  2. Überprüfen Sie, ob die aktuelle Uhrzeit innerhalb des Backtestfensters liegt.
  3. Wenn der schnelle MA über den langsamen MA geht, treten Sie in eine Longposition ein.
  4. Wenn der schnelle MA unter den langsamen MA überschreitet, schließen Sie alle Longpositionen.
  5. In anderen Fällen bleiben Sie flach und tun nichts.

Analyse der Vorteile

  1. Einfach und leicht verständlich, mit klarer Logik, geeignet für Anfänger, die sie lernen und verwenden können.
  2. Der gleitende Durchschnitt ist ein weit verbreiteter technischer Indikator mit offensichtlichen Trendmerkmalen, die die aktuelle Marktentwicklung widerspiegeln können.
  3. Der MA-Crossover ist ein klassisches Trend-Folge-Signal, das Trends schnell erfassen kann.
  4. Die Längen von MAs und das Backtesting-Fenster können angepasst werden, was eine gute Flexibilität bietet.
  5. Geeignet für Instrumente und Zeitrahmen mit starken Trendmerkmalen.

Risikoanalyse

  1. Wenn der Markt stark schwankt und sich der Trend häufig umkehrt, kann es häufige Crossover-Signale geben, was zu einem übermäßigen Handel und erhöhten Transaktionskosten führt.
  2. Diese Strategie kann nur Aufwärtstrends erfassen und ist in Bereichs- und Abwärtstrends machtlos.
  3. Die Auswahl der MA-Parameter muss für verschiedene Instrumente und Zeitrahmen optimiert werden.
  4. Diese Strategie beinhaltet keine Stop-Loss-Maßnahmen und kann bei dramatischen Marktschwankungen mit größeren Abzugsrisiken konfrontiert sein.

Optimierungsrichtlinien

  1. Es sollte in Erwägung gezogen werden, geeignete Stop-Loss-Maßnahmen wie ATR-basierte Trailing Stop hinzuzufügen, um den maximalen Verlust eines einzelnen Handels zu kontrollieren.
  2. Überlegen Sie, einige Filterbedingungen wie Handelsvolumen und Volatilität hinzuzufügen, um einige falsche Signale auszufiltern.
  3. Betrachten Sie die Optimierung von Parametern, z. B. die Verwendung genetischer Algorithmen oder anderer intelligenter Algorithmen, um die optimale Parameterkombination zu finden.
  4. Es sollte in Betracht gezogen werden, andere technische Indikatoren oder Handelssignale mit dem MA-Crossover, wie MACD und RSI, zu kombinieren, um die Zuverlässigkeit und Effektivität der Strategie zu verbessern.

Schlussfolgerung

Die SMA-Strategie ist eine einfache, leicht verständliche, klassische und praktische Trendfolgestrategie, die für Anfänger zum Erlernen und Verwenden geeignet ist. Sie nutzt die Trendmerkmale von gleitenden Durchschnitten und die Signalmerkmale von MA-Crossovers, um schnell Veränderungen in den Markttrends zu erfassen. Diese Strategie hat jedoch auch einige Einschränkungen und Risiken wie Verzögerung, häufigen Handel und Mangel an Stop-Loss. Daher muss sie in praktischen Anwendungen entsprechend spezifischen Bedingungen optimiert und verbessert werden, um die Stabilität und Rentabilität der Strategie zu verbessern.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © j0secyn

//@version=5
strategy("MA Cross", overlay=true, margin_long=100, margin_short=100, default_qty_value=100, default_qty_type=strategy.percent_of_equity, initial_capital=10000)

// === INPUT BACKTEST RANGE ===
fromDay   = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear  = input.int(defval = 2018,title = "From Year", minval = 1970)
thruDay   = input.int(defval = 30, title = "Thru Day", minval = 1, maxval = 31)
thruMonth = input.int(defval = 9, title = "Thru Month", minval = 1, maxval = 12)
thruYear  = input.int(defval = 2024, title = "Thru Year", minval = 1970)

slow_ma_length = input.int(defval = 100, title = "Slow MA lenght")
fast_ma_length = input.int(defval = 30, title = "Fast MA lenght")

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)            // backtest start  window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)            // backtest finish window
window()  => true

// === LOGIC ===
crossOv = ta.crossover(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
crossUn = ta.crossunder(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))

// === EXECUTION ===
// strategy.entry("L", strategy.long, when = window() and crossOv)        // enter long when "within window of time" AND crossover
// strategy.close("L", when = window() and crossUn)                       // exits long when "within window of time" AND crossunder         
strategy.entry("L", strategy.long, when = window() and crossOv)        // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and crossUn)                       // exits long when "within window of time" AND crossunder         

Mehr