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.
Diese Strategie verwendet zwei Sätze von SMA-Parametern,smaB1
, smaB2
für Kaufsignale undsmaS1
, smaS2
Bei den Verkaufssignalen handelt es sich um langsamere bzw. schnellere gleitende Durchschnitte.smaB1
Kreuzungen obensmaB2
, wird ein Kaufsignal erzeugt.smaS2
Kreuze untensmaS1
Dies 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.
Die wichtigsten Vorteile dieser Strategie sind:
Diese Strategie birgt auch einige Risiken:
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.
Einige Optimierungsrichtlinien für diese Strategie:
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)