Die Dynamic Momentum Oscillator Trading Strategy basiert auf dem von E. Marshall Wall in einem Artikel in der Zeitschrift Futures im Juli 1996 vorgeschlagenen Dynamo-Indikator. Er normalisiert einen Standard-Oszillator, um die Auswirkungen von Trends zu eliminieren.
Die Strategie berechnet zunächst einen 10-tägigen Stochastic Oscillator, berechnet dann seinen 10-tägigen einfachen gleitenden Durchschnitt und berechnet darauf basierend einen 20-tägigen gleitenden Durchschnitt.
Die wichtigsten Vorteile dieser Strategie sind:
Die wichtigsten Risiken dieser Strategie sind:
Die Strategie kann in folgenden Aspekten optimiert werden:
Fügen Sie Filter hinzu, um die Stärke des Trends zu beurteilen, bevor Sie Signale senden, um nicht in schwankenden Märkten gefangen zu werden.
Die Dynamic Momentum Oscillator Trading Strategy erzeugt relativ genaue Handelssignale, indem sie die Auswirkungen des Trends beseitigt und überkaufte/überverkaufte Bereiche verwendet. Die Strategie ist einfach und leicht umzusetzen, birgt aber auch einige Risiken. Weitere Verbesserungen der Stabilität und Rentabilität können durch Optimierung von Parametern und Regeln erreicht werden.
/*backtest start: 2023-01-15 00:00:00 end: 2024-01-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 10/04/2017 // In July 1996 Futures magazine, E. Marshall Wall introduces the // Dynamic Momentum Oscillator (Dynamo). Please refer to this article // for interpretation. // The Dynamo oscillator is a normalizing function which adjusts the // values of a standard oscillator for trendiness by taking the difference // between the value of the oscillator and a moving average of the oscillator // and then subtracting that value from the oscillator midpoint. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading //////////////////////////////////////////////////////////// strategy(title="Dynamo", shorttitle="Dynamo") OscLen = input(10, minval=1) MALen = input(20, minval=1) HiBand = input(77, minval=1) LowBand = input(23) reverse = input(false, title="Trade reverse") hline(HiBand, color=red, linestyle=line) hline(LowBand, color=green, linestyle=line) xOscK = stoch(close, high, low, OscLen) xOscAvg = sma(xOscK, OscLen) xMAVal = sma(xOscAvg, MALen) maxNum = 9999999 LowestSoFar = iff(xOscAvg < nz(LowestSoFar[1], maxNum), xOscAvg, nz(LowestSoFar[1], maxNum)) HighestSoFar = iff(xOscAvg > nz(HighestSoFar[1]), xOscAvg, nz(HighestSoFar[1])) MidPnt = (LowestSoFar + HighestSoFar) / 2 nRes = MidPnt - (xMAVal - xOscAvg) pos = iff(nRes > HiBand, 1, iff(nRes < LowBand, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nRes, color=blue, title="Dynamo")