Word nu lid
Indicatoren/probuilder · probacktest · proorder · proscreener

ADX

ADX in ProBuilder geeft de Average Directional Index, een maat voor trendsterkte van 0 tot 100 afgeleid van DIplus en DIminus. Syntaxis, formule, voorbeelden.

Syntaxis

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

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getal14Afvlakkingsperiode in bars. ADX neemt geen prijsargument; het wordt intern berekend uit high, low en close.

Formule

De berekening verloopt in vier stappen:

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)

Omdat DX een genormaliseerde ratio is, is ADX begrensd tussen 0 en 100, ongeacht de koersschaal van het instrument.

Hoe het werkt

Op elke bar vergelijkt ProBuilder de huidige high en low met die van de vorige bar om positieve en negatieve directional movement te meten. Die bewegingen smoothen en delen door de true range levert +DI en -DI, de twee directionele indicatoren. Wanneer de een de ander duidelijk domineert, is DX hoog; wanneer ze bijna gelijk zijn, zakt DX in naar nul.

ADX is vervolgens een Wilder-gesmootht gemiddelde van DX. De dubbele smoothing maakt hem opzettelijk langzaam: hij stijgt pas nadat de gerichte beweging enkele bars heeft aangehouden, en hij daalt pas nadat een trend werkelijk is stilgevallen.

De belangrijkste eigenschap is symmetrie. ADX stijgt bij sterke neerwaartse trends precies zoals bij sterke opwaartse trends. De richting moet komen van DIplus en DIminus, de losstaande versies van de twee directionele indicatoren.

Voorbeelden

Voorbeeld 1, ADX plotten met een eigen periode (Indicator)

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

Overgenomen van de bronpagina. De periode staat in een variabele zodat hij als optimaliseerbare instelling kan worden aangeboden, en de lijn wordt teruggegeven met een vaste kleur en label.

Voorbeeld 2, Trendfilter voor een crossover-systeem (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

De ADX-voorwaarde blokkeert instappen in vlakke markten, waar moving-average-crossovers de meeste van hun valse signalen geven.

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

Geeft instrumenten waarvan de trendsterkte zowel verhoogd is als nog toeneemt, gesorteerd op de ADX-waarde.

Interpretatie

ZoneRangeStand
Zwakke of afwezige trendADX < 20De gerichte beweging is in balans. Range-gebonden omstandigheden; breakout- en crossover-signalen zijn onbetrouwbaar.
In ontwikkeling20 tot 25Er kan een trend ontstaan. Vaak gecombineerd met een DIplus en DIminus kruising voor de richting.
Sterke trendADX > 25Aanhoudende gerichte beweging, omhoog of omlaag. Trendvolgende logica heeft de kansen waarvoor hij is ontworpen.

Een stijgende ADX betekent dat de huidige trend, in welke richting ook, sterker wordt. Een dalende ADX betekent dat hij kracht verliest, wat niet hetzelfde is als omkeren; markten bewegen vaak zijwaarts nadat de ADX omslaat.

Veelvoorkomende fouten en valkuilen

  • Geen prijsargument. ADX[14](close) geeft een syntaxisfout. ADX leest high, low en close intern, dus de juiste aanroep is simpelweg ADX[14].
  • Sterkte is geen richting. Een waarde van 40 zegt niets over de vraag of de markt stijgt of daalt. Longs filteren op alleen een hoge ADX koopt vrolijk in een sterke downtrend; combineer het met DIplus > DIminus of een gelijkwaardige richtingstest.
  • Lag door dubbele smoothing. ADX bevestigt trends, hij anticipeert er niet op. Op het moment dat hij 25 kruist, kan een substantieel deel van de beweging al hebben plaatsgevonden. Het verkorten van N vermindert de lag maar maakt de lijn onrustig.
  • Drempels zijn conventies. De niveaus 20 en 25 komen van daggrafieken van liquide markten. Intraday data en instrumenten met lage volatiliteit hebben vaak geherkalibreerde niveaus nodig; bekijk de eigen historie van de indicator voordat je een grens hardcodeert.
  • ADXR, gesmoothe variant die het gemiddelde neemt van de huidige ADX en een oudere waarde.
  • DIplus, de positieve directional indicator (+DI).
  • DIminus, de negatieve directional indicator (-DI).
  • DI, de directional movement spread.
  • TR, true range van een enkele bar.
  • AverageTrueRange, de gesmoothe true range die in de DI-berekening wordt gebruikt.
  • WilderAverage, de smoothingmethode die in de hele ADX-familie wordt gebruikt.
  • Supertrend, een trendvolgende overlay die vaak met ADX-filters wordt gecombineerd.