Die Dual Moving Average Volatility Tracking Strategie integriert die Ideen der Golden Cross Dead Cross und Moving Average Volatility Tracking Strategien. Durch die Berechnung des Crossovers einfacher gleitender Durchschnitte (SMAs) mit verschiedenen Perioden realisiert sie das goldene Kreuz und das tote Kreuz, um Trends zu beurteilen.
Die wichtigsten Indikatoren dieser Strategie sind der einfache gleitende Durchschnitt (SMA), Bollinger Bands und der variable Index Dynamic Average (VIDYA). Die Strategie setzt einen schnellen SMA und einen langsamen LMA mit verschiedenen Perioden auf. Das goldene Kreuz der schnellen und langsamen Linien dient als langes Signal, während das Todeskreuz als Ausgangssignal dient. Inzwischen überwacht sie den Preisbruch über oder unter den Bollinger Bands während eines Haltezeitraums. Das VIDYA, das Volatilitätsinformationen enthält, beurteilt die aktuelle Trendrichtung und -stärke.
Insbesondere wird die lange Signallogik ausgelöst, wenn die schnelle SMA über die langsame LMA überschreitet und der Preis über der VIDYA-Kurve liegt, was auf einen Aufwärtstrend und eine Volatilitätserweiterung hinweist.
Der größte Vorteil dieser Strategie besteht darin, dass zwei Indikatoren zur Beurteilung der Marktbedingungen kombiniert werden, wodurch die Entscheidungsgenauigkeit verbessert wird.
Zusammenfassend lässt sich sagen, dass diese Strategie Informationen aus den Dimensionen Trends, Reverssion und Volatilität integriert und schneller auf Marktveränderungen reagiert und eine größere Möglichkeit hat, Alpha zu erzeugen.
Obwohl diese Strategie viele Vorteile bietet, bestehen immer noch einige Risiken, die beachtet werden müssen:
Um die oben genannten Risiken zu mindern, empfiehlt sich die Optimierung der Parameter, Prioritätsregeln zwischen Signalen, Rutschkontrollen und Robustheitstests unter verschiedenen Marktumgebungen.
Die wichtigsten Optimierungsdimensionen liegen in Parameter-Tuning und Filter-Zustandseinstellung:
Die Kombination aus Parameteroptimierung und Regelverfeinerung könnte die Stabilität und Rentabilität weiter verbessern.
Die Dual Moving Average Volatility Tracking Strategie nutzt mehrere Indikatoren, um Marktbedingungen zu bestimmen und Trendwendepunkte zu erfassen, während Preisschwankungen überwacht werden.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Combined Golden Cross and Progressive Trend Tracker", shorttitle="GCC-PTT", overlay=true) // Inputs fastMA_period = input(50, title="Fast MA Period") slowMA_period = input(200, title="Slow MA Period") src = input(close, title="Source") lengthBB = input(20, title="Bollinger Bands Length") mult = input(2.0, title="Bollinger Bands Multiplier") mavType = input.string(title="Moving Average Type", defval="VAR", options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF']) // Calculate Moving Averages for Golden Cross fastMA = ta.sma(src, fastMA_period) slowMA = ta.sma(src, slowMA_period) bullish_cross = ta.crossover(fastMA, slowMA) bearish_cross = ta.crossunder(fastMA, slowMA) // Progressive Trend Tracker Components (Adjusted for NA assignment issue) Var_Func(src, length) => valpha = 2 / (length + 1) vud1 = src > src[1] ? src - src[1] : 0 vdd1 = src < src[1] ? src[1] - src : 0 vUD = math.sum(vud1, length) vDD = math.sum(vdd1, length) vCMO = (vUD - vDD) / (vUD + vDD) VAR = 0.0 // Adjusted here, assign an initial value VAR := ta.ema(src * math.abs(vCMO), length) VAR VAR = Var_Func(src, 14) // Example VAR calculation, adjust as needed // Bollinger Bands for dynamic support and resistance BBandTop = fastMA + mult * ta.stdev(src, lengthBB) BBandBot = fastMA - mult * ta.stdev(src, lengthBB) // Plotting plot(fastMA, color=color.blue, title="Fast MA") plot(slowMA, color=color.red, title="Slow MA") plot(BBandTop, color=color.green, title="Bollinger Band Top") plot(BBandBot, color=color.red, title="Bollinger Band Bottom") plot(VAR, color=color.purple, title="VAR", linewidth=2) // Strategy Logic (Adjusted for strategy use) // Long Entry when bullish cross and close above VAR // Exit when bearish cross or close below VAR if (bullish_cross and close > VAR) strategy.entry("CGC_PTT_Long", strategy.long) if (bearish_cross or close < VAR) strategy.close("CGC_PTT_Long")