Handelsstrategie mit dynamischem Momentumsoszillator

Schriftsteller:ChaoZhang, Datum: 2024-01-22 17:28:39
Tags:

img

Übersicht

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.

Strategie Logik

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.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. 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.

Zusammenfassung

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")

Mehr