Doppelte gleitende Durchschnitts-Ausbruchsstrategie


Erstellungsdatum: 2023-11-21 11:34:09 zuletzt geändert: 2023-11-21 11:34:09
Kopie: 0 Klicks: 561
1
konzentrieren Sie sich auf
1617
Anhänger

Doppelte gleitende Durchschnitts-Ausbruchsstrategie

Überblick

Die Dual Moving Average Breakout Strategie ist eine typische Trend-Tracking-Strategie. Sie erfasst die Richtung und Stärke von Markttrends, indem sie zwei unterschiedliche Perioden von Moving Averages berechnet und diese als Kauf- und Verkaufssignale kreuzt.

Strategieprinzip

Die Strategie basiert hauptsächlich auf zwei Moving Averages. Der erste Moving Average ist kürzer und reagiert schneller auf Preisänderungen. Der zweite Moving Average ist länger und filtert den Lärm.

Konkret berechnet die Strategie einen Index-Moving-Average von 10 Perioden (Price1) und einen Index-Moving-Average von 20 Perioden (Price2). Ein Kaufsignal wird erzeugt, wenn der aktuelle K-Linie-Eröffnungspreis und der aktuelle K-Linie-Schließpreis beide höher als die beiden Moving-Averagen sind; ein Verkaufsignal wird erzeugt, wenn der aktuelle K-Linie-Eröffnungspreis und der aktuelle K-Linie-Schließpreis beide niedriger als die beiden Moving-Averagen sind.

Mit dieser Konzeption kann man frühzeitig in den Markt eintreten, wenn sich ein Trend entwickelt, und den Trend verfolgen. Wenn sich der Trend umkehrt, kann man auch so früh wie möglich aus dem Markt aussteigen, um das Risiko effektiv zu kontrollieren.

Strategische Vorteile

  • Trends früh erfassen und starke Trends verfolgen
  • Doppel-Einheitliche Filterung, um teilweise falsche Durchbrüche zu vermeiden
  • K-Line-Eröffnungs- und Schlusspreise werden doppelt bestätigt, um ungültige Transaktionen zu reduzieren

Strategisches Risiko

  • Eine binäre Gleichgewichtsstrategie kann zu einer höheren Anzahl von Rücktritten führen.
  • Häufige Kreuzungen können bei Doppelstraßen auftreten.
  • Es gibt viel Platz für Optimierungen der Parameter, und eine falsche Optimierung kann zu einer Überpassung führen.

Richtung der Strategieoptimierung

  • Verschiedene Parameterkombinationen zu testen, um die optimale Parameter zu finden
  • Erhöhung der Stop-Loss-Strategie und Verringerung der Größe der Einmalverluste
  • Erhöhung der Filterbedingungen und Verringerung der ungültigen Geschäfte
  • Wirksamkeit des Signals in Verbindung mit anderen Indikatoren

Zusammenfassen

Diese Strategie ist insgesamt relativ einfach und praktisch, um die Trends durch die doppelte Gleichgewichtskreuzung zu erfassen. Sie ist eine grundlegende Strategie für die Quantifizierung des Handels. Die Strategie birgt jedoch auch gewisse Risiken und muss weiter optimiert werden, um sich an unterschiedliche Marktumgebungen anzupassen.

Strategiequellcode
/*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)