Es handelt sich um eine quantitative Handelsstrategie, die auf doppelten gleitenden Durchschnitts-Crossover-Signalen basiert. Die Strategie verwendet zwei gleitende Durchschnitte, eine als Hauptsignallinie und eine andere als Glättungssignallinie. Sie erzeugt Handelssignale, indem Preis-Crossovers mit der Glättungssignallinie überwacht werden, wodurch Markttrends erfasst und die Dynamik verfolgt werden kann. Die Kernstärke der Strategie liegt in ihrem einfachen, aber effektiven Signalgenerierungsmechanismus und flexiblen Parameterkonfigurationsoptionen.
Die Strategie verwendet zwei Ebenen der gleitenden Durchschnittsberechnungen. Zuerst berechnet sie einen grundlegenden gleitenden Durchschnitt (Standardperiode von 9), gefolgt von einem sekundären Glättungsprozess (Standardperiode von 5). Die Strategie bietet verschiedene gleitende Durchschnittsberechnungsmethoden, darunter den einfachen gleitenden Durchschnitt (SMA), den exponentiellen gleitenden Durchschnitt (EMA), den glätteten gleitenden Durchschnitt (SMMA), den gewichteten gleitenden Durchschnitt (WMA) und den volumengewichteten gleitenden Durchschnitt (VWMA).
Dies ist eine verbesserte Version einer klassischen Trendfolgestrategie, die die Stabilität erhöht und gleichzeitig die Einfachheit durch ein Dual-Layer-Durchschnittsdesign beibehält. Die Strategie bietet eine gute Skalierbarkeit und Flexibilität und ist durch Parameteroptimierung und Funktionserweiterungen an unterschiedliche Marktumgebungen angepasst. Benutzer müssen jedoch auf Transaktionskostenkontrolle und Risikomanagement achten und es wird empfohlen, vor dem Live-Handel gründliche Backtests durchzuführen.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average 1.0 Strategy", overlay=true) // Input for Moving Average Length len = input.int(9, minval=1, title="Length") src = input(close, title="Source") offset = input.int(title="Offset", defval=0, minval=-500, maxval=500) // Calculate the Moving Average out = ta.sma(src, len) // Plot the Moving Average plot(out, color=color.blue, title="MA", offset=offset) // Function to choose the type of moving average ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Input for Smoothing Method and Length typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing") smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing") // Calculate the Smoothing Line smoothingLine = ma(out, smoothingLength, typeMA) // Plot the Smoothing Line plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset) // Strategy Logic if (ta.crossover(close, smoothingLine)) strategy.entry("Buy", strategy.long) if (ta.crossunder(close, smoothingLine)) strategy.entry("Sell", strategy.short)