Die Strategie basiert auf einem dynamisch schwankenden Indikator (DMI) zum Handel. Der DMI beurteilt Trends durch Berechnung der prozentualen Abweichung des Preises von der mittleren Linie verschiedener Längen.
Die Transaktionslogik lautet wie folgt:
Der Prozentsatz der Abweichung zwischen dem Preis und dem langfristigen Mittelwert (z. B. 200 Tage) wird als 1. DMI berechnet
Berechnen Sie die prozentuale Abweichung des Preises von der mittleren Periodendurchschnittslinie (z. B. 50 Tage) als 2. DMI
Die prozentuale Abweichung von den Kurzzeitdurchschnittspreisen (z. B. 20 Tage) wird als DMI 3 berechnet.
Bei einem DMI 3 höher als DMI 1 ist es ein Beifall; bei einem DMI 3 niedriger als DMI 2 ist es ein Blick
Erzeugung von Transaktionssignalen basierend auf DMI-Beziehungen
DMI beurteilt die Wendepunkte der Markttrends, indem es die relative Stärke verschiedener Durchschnittszyklen dynamisch vergleicht. Die Optimierung der Parameter kann an unterschiedliche Zyklen angepasst werden.
DMI kombiniert mehrzeitige Beurteilungen und ist umfassender
Vergleiche die relative Stärke und vermeide absolute Zahlen
Flexible Anpassung der Zyklusparameter an den Markt
DMI hat eine gewisse Rückständigkeit und könnte die Wende verpassen
Vorsicht bei der Einstellung der Periodiparameter
Kann mehrfach ungültig sein
Die DMI-Strategie beurteilt die Umkehrungen durch die Vergleiche der Stärken und Schwächen von mehr mittlerer Linie. Die Parameter können durch Optimierung für verschiedene Marktumstände angepasst werden. Es gibt jedoch Rückstände, die durch andere Indikatoren beurteilt werden müssen.
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 31/06/2018
// The related article is copyrighted materialfrom Stocks & Commodities Dec 2009
// My strategy modification.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="CMOaDisparity Index Backtest")
LengthFirst = input(200, minval=1)
LengthSecond = input(50, minval=1)
LengthThird = input(20, minval=1)
ShowFirst = input(type=bool, defval=true)
ShowSecond = input(type=bool, defval=true)
ShowThird = input(type=bool, defval=true)
reverse = input(false, title="Trade reverse")
xEMAFirst = ema(close,LengthFirst)
xEMASecond = ema(close,LengthSecond)
xEMAThird = ema(close,LengthThird)
xResFirst = 100 * (close - xEMAFirst) / close
xResSecond = 100 * (close - xEMASecond) / close
xResThird = 100 * (close - xEMAThird) / close
pos = iff(xResThird > xResFirst, -1,
iff(xResThird < xResSecond, 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(ShowFirst ? xResFirst : na, color=red, title="DIX 1")
plot(ShowSecond ? xResSecond : na, color=blue, title="DIX 2")
plot(ShowThird ? xResThird : na, color=green, title="DIX 3")