Diese Strategie nutzt das Prinzip der mehrstufigen gleitenden Durchschnittskreuzung, um mittelfristige Trends zu erfassen und stabile Gewinne zu erzielen. Sie verwendet drei Sätze von gleitenden Durchschnitten mit unterschiedlichen Parametern und trifft Handelsentscheidungen auf der Grundlage ihrer Kreuzungen. Im Vergleich zu traditionellen Strategien mit nur zwei Sätzen gleitenden Durchschnittskreuzungen kann diese mehrstufige gleitende Durchschnittskreuzungsstrategie mehr falsche Signale filtern und die Gewinnrate der Strategie verbessern.
Die Strategie verwendet drei Sätze von gleitenden Durchschnitten: den schnellen gleitenden Durchschnitt MAshort, den mittleren Geschwindigkeitsgleitenden Durchschnitt MAmid und den langsamen gleitenden Durchschnitt MAlong. MAshort hat einen Parameter von 9, reagiert am schnellsten und wird verwendet, um kurzfristige Signale zu erfassen; MAmid hat einen Parameter von 50, hat eine mittlere Geschwindigkeit und wird verwendet, um den Trend zu bestätigen; MAlong hat einen Parameter von 100, reagiert am langsamsten und wird verwendet, um die langfristige Trendrichtung zu bestimmen.
Die spezifische Handelslogik der Strategie ist: Wenn die mittlere Geschwindigkeit gleitende Durchschnittslinie MAmid über die langsame gleitende Durchschnittslinie MAlong kreuzt, zeigt dies an, dass sich der Aufwärtstrend des Aktienkurses bildet. Zu diesem Zeitpunkt geht die Strategie lang; wenn der schnelle gleitende Durchschnittswert MAshort unter den mittleren Geschwindigkeitsgleitenden Durchschnittswert MAmid kreuzt, zeigt dies an, dass eine kurzfristige Trendumkehr stattgefunden hat, und die Strategie tritt zu diesem Zeitpunkt aus ihrer Position.
Der größte Vorteil dieser Strategie besteht darin, dass sie durch die Kombination mehrerer gleitender Durchschnitte falsche Signale effektiv herausfiltern und nur relativ starke Ausbrüche während eines mittelfristigen Aufwärtstrends wählen kann, um Long-Positionen zu eröffnen.
Die Vorteile dieser Strategie sind:
Diese Strategie birgt außerdem folgende Risiken:
Um diesen Risiken entgegenzuwirken, werden wir die Anwendbarkeit der Strategie weiter ausbauen und gleichzeitig den maximalen Drawdown mit Stop-Loss-Techniken kontrollieren.
Diese Strategie kann auch auf folgende Weise optimiert werden:
Diese Strategie gehört zu einer typischen mittelfristigen quantitativen Strategie, die mit der Prämisse der Kontrolle von Handelsrisiken kontinuierlich Gewinne erzielt, indem mehrstufige gleitende Durchschnitte mit mittelfristigen Trends abgeglichen werden. Im Vergleich zu einem einzigen Indikator enthält diese Strategie mehrere Parameter und kann starke mittelfristige und langfristige Trendsignale effektiv identifizieren. Durch weitere Optimierung kann diese Strategie auf mehr Sorten angewendet werden und spielt eine wichtige Rolle im quantitativen Handel.
/*backtest start: 2023-12-12 00:00:00 end: 2024-01-11 00:00:00 period: 1h basePeriod: 15m 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/ // © Coinrule //@version=4 strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" //MA inputs and calculations inlong=input(100, title='MAlong') inmid=input(50, title='MAmid') inshort=input(9, title='MAfast') MAlong = sma(close, inlong) MAshort= sma(close, inshort) MAmid= sma(close, inmid) //Entry bullish = crossover(MAmid, MAlong) strategy.entry(id="long", long = true, when = bullish and window()) //Exit bearish = crossunder(MAshort, MAmid) strategy.close("long", when = bearish and window()) plot(MAshort, color=color.orange, linewidth=2) plot(MAmid, color=color.red, linewidth=2) plot(MAlong, color=color.blue, linewidth=2)