Der schnelle und langsame gleitende Durchschnitt ist eine einfache gleitende Durchschnittsbasierte Strategie. Er verwendet zwei gleitende Durchschnitte, einen schnellen und einen langsamen. Wenn der schnelle gleitende Durchschnitt über den langsamen gleitenden Durchschnitt von unten kreuzt, geht er lang, was darauf hinweist, dass die Preise steigen können. Wenn der schnelle gleitende Durchschnitt unter den langsamen gleitenden Durchschnitt von oben kreuzt, tritt er aus seiner Position, was darauf hinweist, dass die Preise fallen können. Dies kann als Indikator dienen, um zukünftige Preisbewegungen vorherzusagen.
Die Strategie verwendet zwei gleitende Durchschnitte, einen schnellen und einen langsamen. Insbesondere sind die Standardlängen 25 Perioden für den schnellen gleitenden Durchschnitt und 62 Perioden für den langsamen. Die Strategie ermöglicht die Auswahl verschiedener Arten von gleitenden Durchschnitten, einschließlich SMA, EMA, WMA, RMA und VWMA.
Wenn der schnelle gleitende Durchschnitt über den langsamen gleitenden Durchschnitt von unten überschreitet, signalisiert er, dass die kurzfristigen Preise begonnen haben, die langfristigen Preise zu durchbrechen, was ein typisches goldenes Kreuzsignal ist, das darauf hinweist, dass die Preise einen Aufwärtstrend betreten können. Die Strategie geht an diesem Punkt lang. Wenn der schnelle gleitende Durchschnitt unter den langsamen gleitenden Durchschnitt von oben überschreitet, signalisiert er, dass die kurzfristigen Preise begonnen haben, die langfristigen Preise zu brechen, was ein Todeskreuzsignal ist, das darauf hinweist, dass die Preise einen Abwärtstrend betreten können. Die Strategie tritt an diesem Punkt aus ihrer Position.
Durch die Verwendung des Crossovers von schnellen und langsam gleitenden Durchschnitten zur Bestimmung der Kursentwicklung und -richtung und der entsprechenden Long- oder Close-Positionen können Gewinne erzielt werden.
Die Strategie weist folgende Vorteile auf:
Zusammenfassend kann mit dem schnellen und langsamen gleitenden Durchschnitts-Crossover als Kern-Handelssignal die Strategie eine starke Fähigkeit zur Beurteilung zukünftiger Preistrends haben.
Die Strategie birgt auch einige potenzielle Risiken:
Zur Kontrolle und Minderung dieser Risiken können folgende Methoden angewendet werden:
Zu den wichtigsten Richtungen für die Optimierung der Strategie gehören:
Auswahl der Perioden für schnelle und langsame gleitende Durchschnitte: Standardparameter sind möglicherweise nicht optimal, verschiedene Perioden können getestet werden, um die beste Konfiguration zu finden
Auswahl von gleitenden Durchschnittsarten: Mehrere Arten werden zur Verfügung gestellt und kann geprüft werden, welche für bestimmte Produkte am besten geeignet ist
Kombination mit anderen Indikatoren oder Strategien: kann versucht werden, mit Volatilitätsindikatoren, Volumenpreisindikatoren oder Trendfolgestrategien zu kombinieren, um die Leistung zu verbessern
Adaptive Optimierung der Parameter: ermöglicht die automatische Anpassung von gleitenden Durchschnittszeiten an Basis von Marktvolatilität und Liquidität zur Verbesserung der Stabilität
KI-Modellunterstützung: Verwendung von Algorithmen für maschinelles Lernen zur Analyse großer Datenmengen und automatische Suche nach optimalen Handelsregeln
Durch diese Optimierungsmethoden ist eine weitere Verbesserung der Rentabilität und Stabilität der Strategie zu erwarten.
Zusammenfassend ist die schnelle und langsame gleitende Durchschnitts-Crossover-Strategie eine sehr praktische Trendfolgestrategie. Sie erfasst die Preisänderungsmuster über verschiedene Zeitrahmen hinweg und verwendet den schnellen gleitenden Durchschnitt
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //Author @divonn1994 initial_balance = 100 strategy(title='Fast v Slow Moving Averages Strategy', shorttitle = 'Fast v Slow', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance) //Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading---------------------------------------------------------------- fastBars = input.int(25, "Fast moving average length", minval=1) slowBars = input.int(62, "Slow moving average length", minval=1) strategy = input.string("EMA", "MA type", options = ["EMA", "VWMA", "SMA", "RMA", "WMA"]) redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display') greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display') maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display') startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy') startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy') startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy') endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy') endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy') endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy') //Strategy Calculations----------------------------------------------------------------------------------------------------------------------------------------------------------------------- inDateRange = true maMomentum = switch strategy "EMA" => (ta.ema(close, fastBars) >= ta.ema(close, slowBars)) ? 1 : -1 "SMA" => (ta.sma(close, fastBars) >= ta.sma(close, slowBars)) ? 1 : -1 "RMA" => (ta.rma(close, fastBars) >= ta.rma(close, slowBars)) ? 1 : -1 "WMA" => (ta.wma(close, fastBars) >= ta.wma(close, slowBars)) ? 1 : -1 "VWMA" => (ta.vwma(close, fastBars) >= ta.vwma(close, slowBars)) ? 1 : -1 => runtime.error("No matching MA type found.") float(na) fastMA = switch strategy "EMA" => ta.ema(close, fastBars) "SMA" => ta.sma(close, fastBars) "RMA" => ta.rma(close, fastBars) "WMA" => ta.wma(close, fastBars) "VWMA" => ta.vwma(close, fastBars) => runtime.error("No matching MA type found.") float(na) slowMA = switch strategy "EMA" => ta.ema(close, slowBars) "SMA" => ta.sma(close, slowBars) "RMA" => ta.rma(close, slowBars) "WMA" => ta.wma(close, slowBars) "VWMA" => ta.vwma(close, slowBars) => runtime.error("No matching MA type found.") float(na) //Enter or Exit Positions-------------------------------------------------------------------------------------------------------------------------------------------------------------------- if ta.crossover(maMomentum, 0) if inDateRange strategy.entry('long', strategy.long, comment='long') if ta.crossunder(maMomentum, 0) if inDateRange strategy.close('long') //Plot Strategy Behavior--------------------------------------------------------------------------------------------------------------------------------------------------------------------- plot(series = maOn == "On" ? fastMA : na, title = "Fast Moving Average", color = color.new(color.white,0), linewidth=2, offset=1) plot(series = maOn == "On" ? slowMA : na, title = "Slow Moving Average", color = color.new(color.purple,0), linewidth=3, offset=1) bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)