Strategie für den Crossover-Handel mit gleitendem Durchschnitt

Schriftsteller:ChaoZhang, Datum: 2024-01-24 11:48:29
Tags:

img

Übersicht

Die gleitende Durchschnitts-Crossover-Handelsstrategie erzeugt Kauf- und Verkaufssignale, indem sie die Überschneidung der schnellen EMA (fastLength) und der langsamen EMA (slowLength) Linien berechnet. Wenn die schnelle Linie über die langsame Linie kreuzt, wird ein Kaufsignal erzeugt. Wenn die schnelle Linie unter die langsame Linie kreuzt, wird ein Verkaufssignal erzeugt. Diese Strategie ist einfach und praktisch und eignet sich für den mittelfristigen und kurzfristigen Handel.

Strategieprinzip

Die Strategie verwendet zwei gleitende Durchschnittslinien, eine schnelle Linie und eine langsame Linie. Der Parameter der schnellen Linie EMAfastLength wird standardmäßig auf eine 9-tägige Linie und der Parameter der langsamen Linie EMAslowLength auf eine 26-tägige Linie eingestellt. Berechnen Sie die Kreuzung der beiden EMA-Linien, um Marktkauf- und Verkaufssignale zu bestimmen:

  1. Wenn die schnelle Linie durch die langsame Linie nach oben bricht, wird ein Kaufsignal entlang gebracht.
  2. Wenn die schnelle Linie durch die langsame Linie nach unten bricht, wird ein Verkaufssignal enterShort() generiert.

Die spezifischen Handelssignale und Strategieregeln sind wie folgt:

  1. Wenn die schnelle Linie über die langsame Linie geht, geht man lang; wenn die schnelle Linie unter die langsame Linie geht, schließt man.
  2. Der langfristige Take Profit ist der Zielprozentsatz (Standstillstand 0,15%) des Kurses, der bei Erreichen des Gewinns von 15% zu schließen ist.
  3. Der Stop-Loss für Long ist der StopLoss-Prozentsatz (Standard 0,20%) des Kurses, der bei einem Verlust von 20% zu schließen ist.
  4. Kurze Positionen funktionieren auf die gleiche Weise.

Diese Strategie basiert also auf dem goldenen Kreuz und dem toten Kreuz der beiden gleitenden Durchschnittslinien.

Analyse der Vorteile

  1. Die Strategie ist einfach und leicht zu verstehen.
  2. Die Anwendung von gleitenden Durchschnitten filtert Marktlärm aus und macht Handelssignale genauer.
  3. Die Handelsregeln sind klar, mit klarem Gewinn und Stop-Loss.
  4. Die Prüfparameter können flexibel an die unterschiedlichen Marktbedingungen angepasst werden.

Risikoanalyse

  1. Die gleitenden Durchschnittswerte selbst haben eine Verzögerung, die kurzfristige Preisänderungen verpassen kann, was zu ungenauen Kauf- und Verkaufspunkten führt.
  2. Unterschiedliche gleitende Durchschnittsparameter des Zyklus können falsche Signale erzeugen und Verluste mit sich bringen.
  3. Diese Strategie stützt sich ausschließlich auf wenige Parameter und hat hohe Anforderungen an die Hyperparameteroptimierung, um die beste Parameterkombination zu finden.
  4. In einigen bestimmten großen Trends ist diese Strategie eher zum Scheitern verurteilt.

Um die Risiken zu beheben, sind unter anderem der gleitende Durchschnittszyklus, die Handelsvielfalt, die Gewinn- und Stop-Loss-Ratio usw. zu optimierbaren Parametern. Umfassende Tests sind erforderlich, um Risiken zu reduzieren.

Optimierungsrichtlinien

Die Idee des gleitenden Durchschnitts Crossover dieser Strategie ist einfach und praktisch und kann auf folgende Weise optimiert werden:

  1. Änderung des gleitenden Durchschnittstyps: Neben der EMA werden auch SMA, LWMA, HMA und andere Typen getestet.
  2. Hinzufügen anderer Indikatoren: Kombination mit RSI, MACD und anderen Indikatoren.
  3. Parameteroptimierung: Automatische Optimierung der beiden Zyklusparameter der EMA, um die beste Parameterkombination zu finden.
  4. Trendfilterung: Der Handel erfolgt selektiv anhand der wichtigsten Trendsituationen.
  5. Gewinn- und Stop-Loss-Optimierung: Verbessern Sie die feste Prozentsatzgewinn- und Stop-Loss-Optimierung, um sie praktischer zu machen.

Durch diese Optimierungstests können die praktische Wirkung und Stabilität der Strategie erheblich verbessert werden.

Zusammenfassung

Die Idee der gleitenden Durchschnitts-Crossover-Strategie ist einfach, aber die praktische Anwendung erfordert eine kontinuierliche Optimierung. Diese Strategie gibt die Logik der Erzeugung von Handelssignalen und grundlegenden Handelsregeln. Auf dieser Grundlage kann sie stark optimiert werden, um eine brauchbare quantitative Strategie zu werden. Die Anwendung des gleitenden Durchschnitts bietet uns auch Ideen für Strategien, auf deren Grundlage wir innovativ und verbessern können.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close

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 = 2000)
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 = 2017)

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"

emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)

enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)

enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)



Mehr