Jetzt beitreten
Indikatoren/probuilder · probacktest · proorder · proscreener

ADX

ADX in ProBuilder gibt den Average Directional Index zurück, ein Maß der Trendstärke von 0 bis 100, abgeleitet aus DIplus und DIminus. Syntax, Formel, Beispiele.

Syntax

probuilder
// N as number of periods for the calculation
ADX[N]

Parameter

NameTypStandardBeschreibung
NGanzzahl14Glättungsperiode in Bars. ADX nimmt kein Preisargument; er wird intern berechnet aus high, low und close.

Formel

Die Berechnung läuft in vier Schritten ab:

Code
+DM = max(high - high[1], 0)   when it exceeds the down move, else 0
-DM = max(low[1] - low, 0)     when it exceeds the up move, else 0

+DI = 100 * WilderAverage[N](+DM) / AverageTrueRange[N]
-DI = 100 * WilderAverage[N](-DM) / AverageTrueRange[N]

DX  = 100 * ABS(+DI - -DI) / (+DI + -DI)

ADX = WilderAverage[N](DX)

Da DX ein normalisiertes Verhältnis ist, ist ADX unabhängig von der Kursskala des Instruments auf 0 bis 100 begrenzt.

So funktioniert es

Auf jedem Bar vergleicht ProBuilder das aktuelle Hoch und Tief mit denen des vorherigen Bars, um positive und negative gerichtete Bewegung zu messen. Diese Bewegungen zu glätten und durch die True Range zu teilen ergibt +DI und -DI, den beiden Richtungsindikatoren. Wenn einer den anderen klar dominiert, ist DX hoch; sind sie nahezu gleich, fällt DX gegen null.

ADX ist dann ein Wilder-geglätteter Durchschnitt von DX. Die doppelte Glättung macht ihn absichtlich langsam: er steigt erst, nachdem die gerichtete Bewegung mehrere Bars angehalten hat, und er fällt erst, nachdem ein Trend wirklich ins Stocken geraten ist.

Die entscheidende Eigenschaft ist die Symmetrie. Der ADX steigt in starken Abwärtstrends genauso wie in starken Aufwärtstrends. Die Richtung muss aus DIplus und DIminus, die eigenständigen Versionen der zwei Richtungsindikatoren.

Beispiele

Beispiel 1, ADX mit eigenem Zeitraum zeichnen (Indikator)

probuilder
// 21-period ADX rendered in blue
myPeriod = 21
myADX = ADX[myPeriod]
RETURN myADX coloured(9,169,243) as "Average Directional Index"

Von der Quellseite übernommen. Der Zeitraum wird in einer Variablen gehalten, damit er als optimierbare Einstellung verfügbar gemacht werden kann, und die Linie wird mit einer festen Farbe und Bezeichnung zurückgegeben.

Beispiel 2, Trendfilter für ein Crossover-System (ProOrder)

probuilder
// Take EMA crossover longs only when ADX confirms a trend
DEFPARAM CumulateOrders = false
strength = ADX[14]
fast = ExponentialAverage[20](close)
slow = ExponentialAverage[50](close)

IF NOT LongOnMarket AND strength > 25 AND fast CROSSES OVER slow THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND fast CROSSES UNDER slow THEN
  SELL AT MARKET
ENDIF

Die ADX-Bedingung blockiert Einstiege in flachen Märkten, in denen Crossover gleitender Durchschnitte die meisten ihrer Fehlsignale erzeugen.

probuilder
// Instruments where ADX is above 25 and higher than 5 bars ago
strength = ADX[14]
c1 = strength > 25
c2 = strength > strength[5]
SCREENER[c1 AND c2](strength AS "ADX 14")

Gibt Instrumente zurück, deren Trendstärke sowohl erhöht als auch noch steigend ist, sortiert nach dem ADX-Wert.

Interpretation

ZoneRangeAblesung
Schwacher oder fehlender TrendADX < 20Die gerichtete Bewegung ist ausgeglichen. Seitwärtsbedingungen; Breakout- und Crossover-Signale sind unzuverlässig.
Entwickelt sich20 bis 25Ein Trend bildet sich möglicherweise. Oft kombiniert mit einem DIplus und DIminus Kreuzung für die Richtung.
Starker TrendADX > 25Anhaltende gerichtete Bewegung, aufwärts oder abwärts. Trendfolgende Logik hat die Wahrscheinlichkeiten, für die sie entworfen wurde.

Ein steigender ADX bedeutet, dass der aktuelle Trend, unabhängig von seiner Richtung, stärker wird. Ein fallender ADX bedeutet, dass er an Kraft verliert, was nicht dasselbe ist wie eine Umkehr; Märkte driften häufig seitwärts, nachdem der ADX nach unten dreht.

Häufige Fehler und Stolperfallen

  • Kein Kursargument. ADX[14](close) löst einen Syntaxfehler aus. ADX liest high, low und close intern, daher lautet der korrekte Aufruf einfach ADX[14].
  • Stärke ist nicht Richtung. Ein Wert von 40 sagt nichts darüber, ob der Markt steigt oder fällt. Longs allein über einen hohen ADX zu filtern kauft bereitwillig in einen starken Abwärtstrend hinein; kombinieren Sie ihn mit DIplus > DIminus oder ein gleichwertiger Richtungstest.
  • Verzögerung durch doppelte Glättung. ADX bestätigt Trends, er nimmt sie nicht vorweg. Wenn er 25 überschreitet, kann ein erheblicher Teil der Bewegung bereits vorbei sein. Eine Verkürzung N reduziert die Verzögerung, macht die Linie aber unruhig.
  • Schwellenwerte sind Konventionen. Die Niveaus 20 und 25 stammen von Tages-Charts liquider Märkte. Intraday-Daten und Instrumente mit geringer Volatilität benötigen häufig neu kalibrierte Niveaus; prüfen Sie die eigene Historie des Indikators, bevor Sie eine Schwelle fest codieren.
  • ADXR, geglättete Variante, die den aktuellen ADX mit einem älteren Wert mittelt.
  • DIplus, der positive Directional Indicator (+DI).
  • DIminus, der negative Directional Indicator (-DI).
  • DI, der Directional Movement Spread.
  • TR, True Range eines einzelnen Bars.
  • AverageTrueRange, die geglättete True Range, die in der DI-Berechnung verwendet wird.
  • WilderAverage, die Glättungsmethode, die in der gesamten ADX-Familie verwendet wird.
  • Supertrend, ein trendfolgendes Overlay, das häufig mit ADX-Filtern kombiniert wird.