
Die Dual Moving Average Crossover Strategie ist eine gängige Quantitative Trading-Strategie. Sie nutzt die Kreuzung von Fast Moving Averages und Slow Moving Averages als Kauf- und Verkaufssignal. Sie erzeugt ein Kaufsignal, wenn der Fast Moving Average den Slow Moving Average von unten durchdringt; und ein Verkaufsignal, wenn der Fast Moving Average den Slow Moving Average von oben durchdringt.
Die Kernlogik der Strategie besteht darin, zwei Arten von Moving Averages zu berechnen, eine Gruppe von Rapid Moving Averages mit einem Parameter von 10 Tagen und eine Gruppe von Slow Moving Averages mit einem Parameter von 30 Tagen. Rapid Moving Averages reagieren schneller auf Preisänderungen, während Slow Moving Averages einen langfristigen Trend besser abbilden. Wenn ein kurzer Kurs über einem Rapid Moving Average einen langsamen Kurs überschreitet, ist es ein Gold-Fork-Signal, zu kaufen; und wenn ein schneller Kurs unter einem Rapid Moving Average einen langsamen Kurs überschreitet, ist es ein langfristiger Kurs überschreitet, ist es ein Dead Fork-Signal, zu verkaufen.
Die Strategie setzt gleichzeitig einen Stop-Loss- und einen Stop-Stop-Mechanismus ein. Der Stop-Loss wird eingestellt, wenn der Preis unter einem bestimmten Prozentsatz des Kaufpreises liegt. Der Stop-Stop wird eingestellt, wenn der Preis über einem bestimmten Prozentsatz des Kaufpreises liegt.
Die doppelte Moving Average Crossover Strategie hat folgende Vorteile:
Die Idee ist einfach, leicht zu verstehen und umzusetzen.
Die Parameter für schnelle und langsame Durchschnittswerte können für verschiedene Märkte angepasst werden.
Es enthält auch Stop-Loss- und Stop-Stop-Einstellungen, die den Verlust begrenzen können.
In den meisten Fällen sind die Ergebnisse in den Trend- und Zone-Städten zu sehen.
Die folgenden Risiken bestehen aus der Kreuzung von zwei gleitenden Durchschnitten:
Bei der Kreuzung von zwei Durchschnittslinien kann ein Signal als falscher Durchbruch erzeugt werden, was zu einem Verlustrisiko führt.
Die falsche Einstellung der Stop-Loss- und Stop-Out-Parameter kann zu übermäßigen Verlusten oder geringeren erwarteten Gewinnen führen.
Es ist nur auf technische Indikatoren angewiesen, ohne die grundlegenden Faktoren zu berücksichtigen.
Entsprechende Lösungen:
Filtersignale in Kombination mit anderen technischen Indikatoren;
Test und Optimierung von Stop-Loss-Parametern;
In Kombination mit einer Fundamentalanalyse.
Diese Strategie kann optimiert werden durch:
Testung von Mittelkombinationen verschiedener Parameter, um die optimale Parameter zu finden;
Erhöhung der Kennzahlen zur Preisbestätigung und Vermeidung falscher Durchbrüche;
Dies ist ein Beispiel dafür, wie man die Stop-Loss-Marge dynamisch anpassen kann, um die Stop-Loss-Marge zu optimieren.
Optimierung in Verbindung mit Veränderungen im Volumen und der Transaktionsmenge.
Die Dual Moving Average Crossover Strategie ist insgesamt eine einfache und praktische Quantifizierungsstrategie. Sie ist leicht zu verstehen und zu implementieren, kann stabile Erträge erzielen und ist für die meisten Marktumgebungen geeignet. Durch die Optimierung der Parameter, die Erhöhung der Signalfilterung und der dynamischen Stopps kann die Strategie zuverlässiger und profitabler gemacht werden.
/*backtest
start: 2023-01-12 00:00:00
end: 2024-01-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Moving Average Crossover", overlay=true)
// Define input parameters
fast_length = input(10, title="Fast MA Length")
slow_length = input(30, title="Slow MA Length")
stop_loss_percent = input(1.0, title="Stop Loss (%)", minval=0.1, maxval=10, step=0.1)
take_profit_percent = input(2.0, title="Take Profit (%)", minval=0.1, maxval=10, step=0.1)
// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)
// Entry conditions
long_condition = crossover(fast_ma, slow_ma)
short_condition = crossunder(fast_ma, slow_ma)
// Plot moving averages on the chart
plot(fast_ma, title="Fast MA", color=color.blue)
plot(slow_ma, title="Slow MA", color=color.red)
// Strategy orders
strategy.entry("Long", strategy.long, when=long_condition)
strategy.entry("Short", strategy.short, when=short_condition)
// Set stop loss and take profit levels
stop_loss_price = close * (1 - stop_loss_percent / 100)
take_profit_price = close * (1 + take_profit_percent / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", stop=stop_loss_price, limit=take_profit_price)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", stop=take_profit_price, limit=stop_loss_price)