Strategie zur Divergenz der Dynamikrichtung

Schriftsteller:ChaoZhang, Datum: 2023-12-27
Tags:

img

Übersicht

Die Momentum Direction Divergence Strategy ist eine der Techniken, die William Blau in seinem Buch Momentum, Direction and Divergence beschrieben hat. Die Strategie konzentriert sich auf drei Schlüsselaspekte: Momentum, Richtung und Divergenz. Blau, der vor dem Trader werden ein Elektroingenieur war, untersucht gründlich die Beziehung zwischen Preis und Momentum. Aus dieser Grundlage betrachtet er dann die Mängel in anderen Oszillatoren und führt einige innovative Techniken ein, darunter eine frische Wendung an der Stochastik. In Bezug auf Richtungsfragen analysiert er die Feinheiten des ADX und bietet einen einzigartigen Ansatz, um Trend- und Nicht-Trend-Perioden zu definieren.

Die Strategie ist die Ergotic CSI und ihre glatte Linie, um Lärm zu filtern.

Strategie Logik

Der Code beginnt mit der Definition einer Adaptive Direction Index (ADX) -Funktion fADX, die den Parameter Len als Glättungszeit nimmt. Die Funktion berechnet die RMA des True Range (TR) als Nenner und die RMA des Aufwärtsmomentums und des Abwärtsmomentums als Zähler und teilt sie dann, um Verhältnisse zu erhalten, die die relative Stärke von Aufwärts und Abwärts anzeigen. Schließlich wird ADX durch Kombination der Aufwärtsstärke und der Abwärtsstärke erhalten.

Dann werden Strategieparameter definiert. r ist der Glättungsparameter für ATR, Länge ist die Länge von ADX, BigPointValue ist der große Punktwert, SmthLen ist die Glättungslänge für CSI, SellZone und BuyZone sind Verkaufs- und Kaufzonen, die die Kriterien erfüllen. Umgekehrt zeigt an, ob die Handelssignale umgekehrt werden sollen.

Die Schlüssellogik ist in der CSI-Berechnung. Zuerst werden ATR und ADX berechnet. Dann wird der Strafkoeffizient K berechnet, wobei die Berücksichtigung des großen Punktwerts, ATR und ADX berücksichtigt wird. Die standardisierte RestnRes kombiniert Informationen von ATR, ADX und Schlusskurs. Schließlich wird der CSI-Wert erhalten und sein SMA berechnet.

Die Handelsrichtung wird nach dem SMA-Wert des CSI bestimmt. Gehen Sie lang, wenn Sie über der BuyZone sind, gehen Sie kurz, wenn Sie unter der SellZone sind. Zeichnen Sie die CSI-Kurve und ihre SMA, Farbcode für verschiedene Handelszonen.

Analyse der Vorteile

Die Strategie kombiniert die Vorteile des Impulsindikators ATR und des Trendindikators ADX, wobei sowohl die Marktvolatilität als auch die Trendstärke berücksichtigt werden, wobei die Einschränkungen der Verwendung von ATR oder ADX allein vermieden werden.

Der standardisierte Restwert nRes beinhaltet Preisinformationen, die nicht nur auf die Dynamikentwicklung, sondern auch auf das absolute Preisniveau achten, das sich von typischen Oszillatoren unterscheidet und die Performance der Strategie verbessert.

Der Glättungsprozess und die Zonenbestimmung liefern klare Handelssignale für den praktischen Handel.

Risikoanalyse

Die Strategie ist sehr empfindlich gegenüber Parameter-Einstellungen wie Perioden von ATR und ADX, großen Punktwerten usw., die die Leistung beeinflussen können.

Als neu vorgeschlagener Oszillator muss die Wirksamkeit des CSI auf unterschiedlicheren Märkten validiert werden.

Die Strategie selbst verfügt nicht über einen Stop-Loss-Mechanismus, sondern nur direkt lang oder kurz pro CSI-Signal.

Optimierungsrichtlinien

Versuche Kombinationen von Parametern auf verschiedenen Märkten, um relativ universelle Einstellungen zu finden.

Einführung eines dynamischen ADX-Periodenmechanismus zur Anpassung der ADX-Parameter anhand der Marktlage.

Einbeziehen Sie andere Oszillatorindikatoren, um Ein- und Ausstiege zu bestimmen, um die Strategie robuster zu machen.

Fügen Sie Stop-Loss-Mechanismen hinzu, um die Strategie abzuschließen.

Zusammenfassung

Die Momentum Direction Divergence Strategy integriert die Vorteile mehrerer Indikatoren und nutzt Preis-, Momentum- und Trenddimensionen, um den CSI-Indikator für den Handel zu entwerfen.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/06/2018
// This is one of the techniques described by William Blau in his book 
// "Momentum, Direction and Divergence" (1995). If you like to learn more, 
// we advise you to read this book. 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.
// This indicator plots Ergotic CSI and smoothed Ergotic CSI to filter out noise. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

strategy(title="Ergodic CSI Backtest")
r = input(32, minval=1)
Length = input(1, minval=1)
BigPointValue = input(1.0, minval=0.00001)
SmthLen = input(5, minval=1)
SellZone = input(0.004, minval=0.00001)
BuyZone = input(0.024, minval=0.001)
reverse = input(false, title="Trade reverse")
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
source = close
K = 100 * (BigPointValue / sqrt(r) / (150 + 5))
xTrueRange = atr(1) 
xADX = fADX(Length)
xADXR = (xADX + xADX[1]) * 0.5
nRes = iff(Length + xTrueRange > 0, K * xADXR * xTrueRange / Length,0)
xCSI = iff(close > 0,  nRes / close, 0)
xSMA_CSI = sma(xCSI, SmthLen)
pos = iff(xSMA_CSI > BuyZone, 1,
       iff(xSMA_CSI <= SellZone, -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(xCSI, color=green, title="Ergodic CSI")
plot(xSMA_CSI, color=red, title="SigLin")

Mehr