Die Dual SMA Momentum Strategie ist eine auf technischer Analyse basierende Handelsstrategie, die Kauf- und Verkaufssignale basierend auf zwei einfachen gleitenden Durchschnittsindikatoren (SMA) generiert.
Die Strategie verwendet zwei SMA-Indikatoren mit kurzen und langen Zeitfenstern - eine schnelle SMA (Längen von 9 Perioden) und eine langsame SMA (Längen von 45 Perioden).
Es erzeugt ein Long/Buy-Signal, wenn der Schlusskurs der Aktie sowohl die schnellen als auch die langsamen SMA-Linien überschreitet, was den Beginn eines Aufwärtstrends anzeigt.
Es erzeugt ein Short/Sell-Signal, wenn der Preis unterhalb beider SMA-Linien kreuzt, was den Beginn eines Abwärtstrends anzeigt.
Die Stop-Loss-Levels werden dynamisch auf dem Vortagshöchststand (für Short-Trades) und dem Vortagshöchststand (für Long-Trades) festgelegt.
Die wichtigsten Vorteile dieser Strategie sind:
Wie bei allen technischen Analysestrategien kann es jedoch während von Range-bound- und Whipsaw-Märkten mit häufigen falschen Signalen unterdurchschnittlich abschneiden.
Die wichtigsten Risiken dieser Strategie sind:
Anfällig für Whipsaws und falsche Signale: Da sie ausschließlich auf SMA-Crossovers beruht, kann die Strategie während seitlicher oder unruhiger Märkte mit Whipsaws und falschen Signalen konfrontiert werden, was unnötige Handelskosten verursacht. Dies kann durch Kombination mit anderen Indikatoren wie dem RSI gemildert werden.
Anfällig für plötzliche Trendumkehrungen: Schnelle Umkehrungen nach SMA-Crossover-Einträgen können schnell Stop-Loss-Level erreichen, bevor sich ein Trend bildet. Dieses Risiko kann durch Optimierung der SMA-Länge oder durch Hinzufügen anderer Filter reduziert werden.
Überoptimierungsrisiko durch Parametertweaking: Eine umfangreiche Optimierung der SMA-Länge und anderer Parameter, um die Kurve an historische Daten anzupassen, kann zu schlechter Performance im Live-Handel führen.
Einige Möglichkeiten, wie diese Strategie verbessert werden kann, sind:
Hinzufügen anderer Indikatoren wie RSI zur zusätzlichen Handelsbestätigung zur Verbesserung des Timings und der Genauigkeit der Signale
Einbeziehung dynamischer Stop-Loss-Platzierungsmethoden wie ATR oder Lustre-Ausgänge, um sich besser an die Marktvolatilität anzupassen
Optimierung der SMA-Längen auf der Grundlage historischer Volatilität und Handelszeitrahmen für verschiedene Aktien
Hinzufügen von Regeln für eine solide Geldverwaltung und Positionsgröße, um Renditen zu maximieren und Zugriffe zu begrenzen
Zusammenfassend bietet die Dual SMA Momentum-Strategie einen einfachen Ansatz für den Handel mit kurz- bis mittelfristigen Trends. Während sie in ihrem Ansatz grundlegend ist, können Verfeinerungen wie zusätzliche Filter, dynamische Stopps und umsichtige Optimierungen dazu beitragen, die risikobereinigten Renditen zu verbessern.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMA Crossover Strategy", overlay=true) // Input parameters fast_length = input(9, title="Fast SMA Length") slow_length = input(45, title="Slow SMA Length") // Calculate moving averages fast_sma = ta.sma(close, fast_length) slow_sma = ta.sma(close, slow_length) // Buy condition buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma) // Sell condition sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma) // Calculate stop loss levels prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on) prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on) // Plot signals on the chart plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit conditions long_stop_loss = sell_condition ? prev_low : na short_stop_loss = buy_condition ? prev_high : na strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss) strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss) strategy.entry("Long", strategy.long, when=buy_condition) strategy.entry("Short", strategy.short, when=sell_condition)