Strategie für einen doppelten gleitenden Durchschnittsbruch

Schriftsteller:ChaoZhang, Datum: 2024-01-24 14:49:29
Tags:

img

Übersicht

Die Dual Moving Average Breakout Strategie ist eine quantitative Handelsstrategie, die auf einem schnellen und einem langsamen gleitenden Durchschnitt basiert. Sie verwendet zwei exponentielle gleitende Durchschnitte (EMA) mit verschiedenen Perioden als Handelssignale.

Strategie Logik

Die Kernlogik dieser Strategie besteht darin, einen schnellen gleitenden Durchschnitt und einen langsamen gleitenden Durchschnitt zu verwenden, um Handelssignale zu bilden.

  1. Berechnen des exponentiellen gleitenden Durchschnitts AP des Preisarrays mit einer Periode von 2 Tagen
  2. Berechnung des schnellen gleitenden Durchschnitts Fast basierend auf AP mit einer Periode von 12 Tagen
  3. Berechnung des langsamen gleitenden Durchschnitts Slow basierend auf AP mit einer Periode von 26 Tagen
  4. Vergleichen Sie die schnellen und langsamen gleitenden Durchschnitte:
    1. Wenn Fast über Slow überschreitet, ist das ein bullisches Signal.
    2. Wenn Fast unter Slow überschreitet, ist es ein bärisches Signal.
  5. Bestimmung spezifischer Handelssignale, die die Beziehung zwischen Preis und gleitendem Durchschnitt kombinieren:
    1. Aufwärtssignal: Schnell>Langsam && AP>Schnell
    2. Beurssignal: Schnell

Die Verwendung des Crossover des schnellen und des langsamen gleitenden Durchschnitts zur Bestimmung von Markttrends und zur Erzeugung von Handelssignalen ist eine typische Strategie mit zwei gleitenden Durchschnitten.

Analyse der Vorteile

Die Strategie des doppelten gleitenden Durchschnitts hat folgende Vorteile:

  1. Die Strategie ist einfach und klar, leicht zu verstehen und umzusetzen
  2. Der gleitende Durchschnittszeitraum kann an unterschiedliche Marktbedingungen angepasst werden
  3. Sowohl lange als auch kurze Positionen ermöglichen höhere Renditen
  4. Genauerere Handelssignale können durch Kombination von Preis und gleitenden Durchschnitten erzeugt werden
  5. Die Verzögerung der gleitenden Durchschnittswerte kann Marktlärm effektiv filtern

Risikoanalyse

Die Strategie des Breakouts mit doppelten gleitenden Durchschnitten birgt ebenfalls einige Risiken:

  1. Wenn der Markt in einer Bandbreite ist, können mehr falsche Signale auftreten
  2. Die doppelte gleitende Durchschnittsstrategie kann zu einer Kurvenanpassung führen und strukturelle Marktveränderungen ignorieren
  3. Allein auf technische Indikatoren angewiesen, ist anfällig für gefälschte Ausbrüche mit dem Risiko von Verlusten

Lösungen:

  1. Optimierung des gleitenden Durchschnittszeitraums zur besseren Anpassung an die aktuellen Marktbedingungen
  2. Bestätigen Sie Signale mit anderen Indikatoren wie Volumen, um gefälschte Ausbrüche zu vermeiden
  3. Annahme von Strategien, die dem Trend folgen, um die Gewinn-Verlust-Ratio zu kontrollieren und das Risiko zu reduzieren

Optimierungsrichtlinien

Die doppelte gleitende Durchschnittsbreakout-Strategie kann in folgenden Aspekten optimiert werden:

  1. Finden Sie geeignete Kombinationen von gleitenden Durchschnittszeiten, um sich an Marktveränderungen anzupassen
  2. Hinzufügen von Indikatoren wie Lautstärke für die Signalfilterung zur Gewährleistung der Gültigkeit
  3. Einbeziehung von Marktstrukturindikatoren zur Ermittlung von Trends und Anpassung von Parametern
  4. Annahme dynamischer gleitender Durchschnitte, die Perioden automatisch anhand von Marktveränderungen anpassen können
  5. Einbeziehung von Stop-Loss-Strategien zur wirksamen Risikokontrolle und zum Schutz des Kapitals

Schlussfolgerung

Die Dual Moving Average Breakout Strategie ist eine einfache und praktische quantitative Handelsstrategie. Sie hat Vorteile wie einfache Logik und Implementierung und hat auch einige Probleme mit der Marktanpassungsfähigkeit. Wir können sie durch Parameteroptimierung, Signalfilterung, Risikokontrolle usw. zu einem stabilen profitablen Handelssystem machen. Insgesamt ist die Dual Moving Average Strategie ein großartiger Strategieprototyp, der eine gründliche Forschung und Anwendung für quantitative Trader wert ist.


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

//@version=4
strategy("CDC Action Zone V.2", overlay=true)

// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)


Bullish = Fast>Slow
Bearish = Fast<Slow

Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast

Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]


alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")


//Plot

l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)

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

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


if LSB == "Long only" and Buy and window()
    strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
    strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
    strategy.entry("L",true)
if LSB == "Both" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
    strategy.close("S",qty_percent=100,comment="TP Short")

Mehr