Doppel-SMA-Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-23 16:42:58
Tags:

img

Übersicht

Die Dual-SMA-Crossover-Strategie erzeugt Handelssignale, indem sie die Überquerung zweier SMA-Linien mit unterschiedlichen Parameter-Einstellungen berechnet. Wenn die schnellere SMA-Linie über die langsamere SMA-Linie kreuzt, wird ein Kaufsignal erzeugt. Wenn die langsamere SMA-Linie unter die schnellere SMA-Linie kreuzt, wird ein Verkaufssignal erzeugt. Die Strategie verwendet zwei Sätze von SMA-Parametern gleichzeitig, einer Satz zur Bestimmung von Einstiegspunkten und der andere zur Bestimmung von Ausgangspunkten.

Strategie Logik

Diese Strategie verwendet zwei Sätze von SMA-Parametern,smaB1, smaB2für Kaufsignale undsmaS1, smaS2Bei den Verkaufssignalen handelt es sich um langsamere bzw. schnellere gleitende Durchschnitte.smaB1Kreuzungen obensmaB2, wird ein Kaufsignal erzeugt.smaS2Kreuze untensmaS1Dies ermöglicht eine flexible Anpassung der Ein- und Ausstiegsbedingungen an die sich wandelnden Marktbedingungen.

Speziell überwacht diese Strategie die Crossover-Situationen zwischen den beiden SMA-Linien, die aus dem Schlusskurs berechnet werden, um den Zeitpunkt des Kaufs und Verkaufs zu bestimmen. Wenn die schnellere SMA-Linie über die langsamere SMA-Linie kreuzt, wird beurteilt, dass der Preistrend nach oben ist, also gehen Sie zu diesem Zeitpunkt lang. Und wenn die langsamere SMA-Linie unter die schnellere SMA-Linie kreuzt, dreht sich der Preistrend nach unten, also verlassen Sie die Long-Positionen.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Die Verwendung eines doppelten Kreuzungssystems für gleitende Durchschnitte ermöglicht eine flexible Anpassung der Ein- und Ausstiegskriterien an Marktveränderungen
  2. Die SMA-Linien selbst können Lärm filtern und zuverlässigere Handelssignale erzeugen
  3. Anpassbare SMA-Parameterkombinationen ermöglichen die Optimierung von Parametern für verschiedene Produkte

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. SMA-Crossover-Signale können sich verzögern und keine zeitnahen Signale um Wendepunkte erzeugen
  2. Eine falsche Auswahl der SMA-Parameter kann zu zu vielen falschen Signalen führen
  3. In volatilen Marktbedingungen erzeugte Signale funktionieren möglicherweise nicht gut

Um die oben genannten Risiken zu kontrollieren, können Methoden wie SMA-Parameteroptimierung, dynamischer Stop-Loss zur Gewinnbindung usw. zur Verbesserung der Strategie verwendet werden.

Optimierungsrichtlinien

Einige Optimierungsrichtlinien für diese Strategie:

  1. Testen Sie mehr SMA-Parameterkombinationen, um die optimalen Parameter zu finden
  2. Zusätzliche Volumenbestätigung, um falsche Signale bei heftigen Kursschwankungen zu vermeiden
  3. Kombination anderer Indikatoren (z. B. MACD, RSI) zur Filterung von SMA-Crossover-Signalen
  4. Hinzufügen von Stop-Loss-Strategien, um Gewinne zu erzielen und Verluste zu reduzieren

Zusammenfassung

Die SMA-Crossover-Strategie erzeugt einfache und effektive Handelssignale, indem die Crossover-Situationen zwischen zwei SMA-Linien berechnet werden. Die Flexibilität zur Anpassung von Parametern macht diese Strategie an verschiedene Produkte anpassbar und ist eine häufig verwendete Trendfolgestrategie. Diese Strategie kann durch Parameteroptimierung, Signalfilterung usw. weiter verbessert werden, um zuverlässigere Signale zu erzeugen.


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melihtuna

//@version=4
strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent)

smaB1 = input(title="smaB1",defval=377)
smaB2 = input(title="smaB2",defval=200)
smaS1 = input(title="smaS1",defval=377)
smaS2 = input(title="smaS2",defval=200)
smawidth = 2

plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1')
plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2')
plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1')
plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2')

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        
window()  => time >= start and time <= finish ? true : false 

longCondition = crossover(sma(close, smaB1),sma(close, smaB2))

if (window() and longCondition)
    strategy.entry("BUY", strategy.long)

shortCondition = crossover(sma(close, smaS2),sma(close, smaS1))

if (window() and shortCondition)
    strategy.entry("SELL", strategy.short)
    
    
    

Mehr