Der Dual Moving Average Crossover ist eine einfache und effektive Scalping-Strategie, die Crossover-Signale zwischen Preis und gleitenden Durchschnitten als Ein- und Ausstiegssignale verwendet, um kurzfristige Trendbewegungen zu erfassen.
Die Strategie verwendet zwei gleitende Durchschnitte unterschiedlicher Perioden - eine kurzfristige MA-Linie und eine längerfristige MA-Linie. Sie erzeugt Kaufsignale, wenn der kürzere Zeitraum MA über den längeren Zeitraum MA von unten kreuzt. Verkaufssignale werden erzeugt, wenn der kürzere MA unter den längeren MA von oben kreuzt.
Die Strategie definiert zunächst die Variable
Um einige ungültige Signale auszufiltern, werden zusätzliche Filter wie
Schließlich werden bestehende Positionen geschlossen, wenn der Preis die MA-Linien umgekehrt überschreitet.
Die Risiken können durch die Verwendung dynamischer MA-Perioden auf Basis von Volatilität, Trailing Stops oder Prozentsatzstops usw. gemildert werden.
Die Strategie kann in mehrfacher Hinsicht verbessert werden:
Optimierung der MA-Parameter dynamisch anhand der Volatilität.
Fügen Sie zusätzliche Filter wie Lautstärkerhöhungen hinzu, um die Signalqualität zu verbessern.
Verwenden Sie schwebende oder prozentuale Stopps, um vorzeitige Stopps zu reduzieren.
Kombinieren Sie mit anderen Indikatoren wie MACD, RSI für die Multicondition Validierung.
Fügen Sie automatisiertes Risikomanagement wie dynamische Positionsgröße hinzu, um Verluste pro Handel zu kontrollieren.
Verwenden Sie maschinelles Lernen für ein genaueres Signalgenerierungsmodell.
Die Dual-MA-Crossover-Strategie ist ein wirksames System für den kurzfristigen Handel. Feinabstimmungsparameter, Risikomanagement und die Kombination mit anderen Tools können die Rentabilität weiter steigern. Insgesamt ist es einfach zu verstehen und zu implementieren, um kleinere Intraday-Bewegungen zu scalpen.
/*backtest start: 2023-09-29 00:00:00 end: 2023-10-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MovingAvg Cross", overlay=true) length = input(50) confirmBars = input(2) price = close ma = sma(price, length) bcond = price > ma bcount = 0 bcount := bcond ? nz(bcount[1]) + 1 : 0 clc=close[0]>close[1] clc0=close[0]>open[0] clc1=close[1]>open[1] if clc and clc0 and clc1 and (bcount == confirmBars) strategy.entry("buy", strategy.long) scond = price < ma scount = 0 scount := scond ? nz(scount[1]) + 1 : 0 csc=close[0]<close[1] csc0=close[0]<open[0] csc1=close[1]<open[1] if csc and csc0 and csc1 and (scount == confirmBars) strategy.entry("sell", strategy.short) strategy.close("buy", when=scond) strategy.close("sell",when=bcond) plot(ma, color=color.red) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)