Richtungsorientierte Trendindex-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-18 17:07:55
Tags:

Übersicht

Diese Strategie verwendet den Directional Trend Index (DTI), um die Preistrendrichtung für den Trend nach den Trades zu bestimmen. DTI vergleicht die Änderung der höchsten und niedrigsten Preise über einen Zeitraum, um den Trend zu beurteilen, wobei obere und untere Schwellen Signale erzeugen.

Strategie Logik

Berechnen Sie den Preisänderungswert aus den höchsten und niedrigsten Preisänderungen über einen Zeitraum. Wenden Sie mehrere exponentielle gleitende Durchschnitte an, um die DTI-Kurve abzuleiten. Setzen Sie obere und untere Schwellenwerte für DTI. Wenn der Indikator über die obere Schwelle geht, wird ein langes Signal erzeugt. Das Überschreiten unter der unteren Schwelle gibt ein kurzes Signal. Halten Sie die Position, bis das nächste Signal eintritt.

Vorteile

  • DTI bestimmt die Trendrichtung mit weniger Signalen
  • Schwellenwerte filtern unbedeutende Ausbrüche und vermeiden Lärmhandel
  • Kontinuierliche Entwicklung, unbeeinflusst von kurzfristigen Schwankungen
  • Großer Parameter-Tuning-Raum zur Ausgleichsbereitschaft

Risiken

  • Die Trendumkehrpunkte können nicht genau ermittelt werden, Risiken von Verlusten
  • Eine schlechte DTI-Parameter-Ausrichtung birgt Risiken, dass Chancen fehlen
  • Eine längere Haltung kann zu größeren Abzügen führen
  • Niedrige Handelsfrequenz nicht geeignet für den Hochfrequenzhandel

Die Risiken können durch Verkürzung der Berechnungsfrist, Anpassung der Schwellenwerte oder Hinzufügung von Umkehrindikatoren gemildert werden.

Verbesserungen

  • Versuche verschiedene Parameterkombinationen zur Berechnung der DTI
  • Optimierung der langen/kurzen Schwellenwerte
  • Erwägen Sie die Einführung von Stop-Loss-Strategien zur Risikokontrolle
  • Versuchsrobustheit für verschiedene Produkte

Schlussfolgerung

Die DTI-Strategie bestimmt aus klaren Signalen genau die Trendrichtung und ermöglicht so langfristige Gewinnsteigerungen.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/03/2017
// This technique was described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// Directional Trend Index is an indicator similar to DM+ developed by Welles Wilder. 
// The DM+ (a part of Directional Movement System which includes both DM+ and 
// DM- indicators) indicator helps determine if a security is "trending." William 
// Blau added to it a zeroline, relative to which the indicator is deemed positive or 
// negative. A stable uptrend is a period when the DTI value is positive and rising, a 
// downtrend when it is negative and falling. 
//
// 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="Directional Trend Index (DTI)", shorttitle="DTI")
r = input(14, minval=1)
s = input(10, minval=1)
u = input(5, minval=1)
OS = input(45, minval=1)
OB = input(-45, maxval=-1)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xHMU = iff(high - high[1] > 0, high - high[1], 0)
xLMD = iff(low - low[1] < 0, -(low - low[1]), 0)
xPrice = xHMU - xLMD
xPriceAbs = abs(xPrice)
xuXA = ema(ema(ema(xPrice, r),s),u)
xuXAAbs = ema(ema(ema(xPriceAbs, r),s),u)
Val1 = 100 * xuXA
Val2 = xuXAAbs
DTI = iff(Val2 != 0, Val1 / Val2, 0)
pos = iff(DTI > OS, -1,
	     iff(DTI < OB, 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(DTI, color=maroon, title="DTI")
plot(OB, color=blue, title="OB")
plot(OS, color=red, title="OS")

Mehr