Strategie für eine doppelte Kreuzung von gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2023-11-21 11:34:09
Tags:

img

Übersicht

Die Dual Moving Average Crossover Strategie ist eine typische Trendfolgestrategie. Sie berechnet zwei gleitende Durchschnitte mit unterschiedlichen Perioden und verwendet deren Crossover als Handelssignale, um die Richtung und Dynamik der Markttrends zu erfassen.

Strategie Logik

Die Strategie basiert hauptsächlich auf zwei gleitenden Durchschnitten. Der erste gleitende Durchschnitt hat eine kürzere Periode und kann schneller auf Preisänderungen reagieren. Der zweite gleitende Durchschnitt hat eine längere Periode und kann etwas Rauschen filtern. Wenn der kurzfristige gleitende Durchschnitt über den langfristigen gleitenden Durchschnitt überschreitet, gilt er als Kaufsignal. Wenn der kurzfristige gleitende Durchschnitt unter dem langfristigen gleitenden Durchschnitt überschreitet, gilt er als Verkaufssignal.

Insbesondere berechnet diese Strategie einen 10-Perioden exponentiellen gleitenden Durchschnitt (Preis1) und einen 20-Perioden exponentiellen gleitenden Durchschnitt (Preis2). Wenn die Eröffnungs- und Schlusskosten der aktuellen Bar beide höher als die beiden gleitenden Durchschnitte sind, wird ein Kaufsignal generiert. Wenn die Eröffnungs- und Schlusskosten beide niedriger als die beiden gleitenden Durchschnitte sind, wird ein Verkaufssignal generiert.

Dieses Design ermöglicht einen früheren Eintrag, wenn sich ein Trend zu bilden beginnt und dem Trend folgt.

Vorteile

  • Trends frühzeitig erkennen und starken Trends folgen
  • Dual MA-Crossover Filter für Geräusche
  • Die doppelte Bestätigung durch die Eröffnungs- und Schließpreise verringert ineffektive Trades

Risiken

  • Anfällig für Whipsaws und Reverse Trades
  • Häufige Kreuzungssignale können auftreten
  • Großer Parameter-Tuning-Raum kann zu Überanpassung führen

Erweiterung

  • Verschiedene Parametermengen testen, um das optimale Ergebnis zu finden
  • Hinzufügen von Stop-Loss zur Grenzverlustgröße
  • Fügen Sie Filter hinzu, um schlechte Trades zu reduzieren
  • Kombination anderer Indikatoren zur Bestätigung von Signalen

Zusammenfassung

Die Strategie ist relativ einfach und praktisch und erfasst Trends mit Dual-MA-Crossover, was sie zu einer grundlegenden Quant-Strategie macht.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])

ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)  
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)    
if(buy_entry)
    strategy.entry("Long", strategy.long)
    
if(sell_entry)
    strategy.entry("Short", strategy.short)

strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)



Mehr