Die doppelte gleitende Durchschnitts-Crossover-Strategie ist eine häufige quantitative Handelsstrategie. Sie verwendet das Crossover von schnellen und langsamen gleitenden Durchschnitten als Kauf- und Verkaufssignale. Wenn der schnelle gleitende Durchschnitt über den langsamen gleitenden Durchschnitt von unten kreuzt, wird ein Kaufsignal generiert. Wenn der schnelle gleitende Durchschnitt unter den langsamen gleitenden Durchschnitt von oben kreuzt, wird ein Verkaufssignal generiert.
Die Kernlogik dieser Strategie besteht darin, zwei Gruppen von gleitenden Durchschnitten zu berechnen, einer ist der schnelle gleitende Durchschnitt mit einem Periodenparameter von 10 Tagen und der andere ist der langsame gleitende Durchschnitt mit einem Periodenparameter von 30 Tagen. Der schnelle gleitende Durchschnitt kann schneller auf Preisänderungen reagieren, während der langsame gleitende Durchschnitt den langfristigen Trend besser widerspiegeln kann.
Wenn der schnelle gleitende Durchschnitt über den langsamen überschreitet, bedeutet dies, dass der kurzfristige Preis beginnt, den langfristigen Trend zu durchbrechen, was ein goldenes Kreuzsignal ist, um lang zu gehen. Wenn der schnelle gleitende Durchschnitt unter den langsamen überschreitet, bedeutet dies, dass der kurzfristige Preis unter den langfristigen Trend fallen beginnt, was ein Todeskreuzsignal ist, um kurz zu gehen.
Die Strategie legt auch Stop-Loss- und Take-Profit-Mechanismen fest. Der Stop-Loss wird ausgelöst, wenn der Preis unter einen bestimmten Prozentsatz des Einstiegspreises fällt. Der Take-Profit wird ausgelöst, wenn der Preis über einen bestimmten Prozentsatz des Einstiegspreises steigt.
Die doppelte Kreuzung der gleitenden Durchschnitte hat folgende Vorteile:
Die Logik ist einfach und leicht zu verstehen und umzusetzen.
Die Parameter von schnellen und langsam gleitenden Durchschnitten können an unterschiedliche Märkte angepasst werden;
Es enthält sowohl Stop-Loss- als auch Take-Profit-Einstellungen zur Begrenzung von Verlusten;
Es kann sowohl auf Trend- als auch auf Range-Bund-Märkten gut abschneiden.
Die doppelte Kreuzung der gleitenden Durchschnitte birgt außerdem folgende Risiken:
Das Signal aus der Kreuzung kann ein falscher Ausbruch sein, der zu Verlusten führt.
Eine falsche Einstellung von Stop-Loss und Take-Profit kann zu großen Verlusten oder reduzierten erwarteten Gewinnen führen;
Es stützt sich ausschließlich auf technische Indikatoren, ohne die Grundlagen zu berücksichtigen.
Entsprechende Lösungen
Hinzufügen anderer technischer Indikatoren zur Filterung falscher Signale;
Test und Optimierung der Stop-Loss- und Take-Profit-Parameter;
Einbeziehung von Fundamentalanalysen.
Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:
Versuche verschiedene Parameterkombinationen von gleitenden Durchschnitten, um die optimale zu finden;
Hinzufügen von Preis-Volumen-Bestätigungsindikatoren, um falsche Ausbrüche zu vermeiden;
Dynamische Anpassung der Stop-Loss- und Gewinnprozentsätze für eine bessere Gewinnentnahme;
Einbeziehung anderer Indikatoren wie Handelsvolumen, Umsatzrate usw.
Zusammenfassend ist die doppelte gleitende Durchschnitts-Crossover-Strategie eine einfache und praktische quantitative Handelsstrategie. Sie ist leicht zu verstehen und umzusetzen und kann in den meisten Marktumgebungen stabile Gewinne generieren. Durch die Optimierung von Parametern, das Hinzufügen von Signalfiltern und dynamischen Gewinnmechanismen kann die Strategie zuverlässiger und profitabler werden. Als eine der grundlegenden quantitativen Handelsstrategien lohnt es sich zu lernen und anzuwenden.
/*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)