Bli medlem idag
Indikatorer/probuilder · probacktest · proorder · proscreener

ADX

ADX i ProBuilder returnerar Average Directional Index, ett mått på trendstyrka från 0 till 100 som härleds från DIplus och DIminus. Syntax, formel, exempel.

Syntax

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

Parametrar

NamnTypStandardBeskrivning
Nheltal14Utjämningsperiod i barer. ADX tar inget prisargument; det beräknas internt från high, low och close.

Formel

Beräkningen sker i fyra steg:

kod
+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)

Eftersom DX är ett normaliserat förhållande är ADX begränsad mellan 0 och 100 oavsett instrumentets prisskala.

Så fungerar det

På varje bar jämför ProBuilder aktuell högsta och lägsta med föregående bars för att mäta positiv och negativ riktningsrörelse. Att utjämna dessa rörelser och dividera med true range ger +DI och -DI, de två riktningsindikatorerna. När den ena klart dominerar den andra är DX högt; när de är nästan lika faller DX mot noll.

ADX är sedan ett Wilder-utjämnat genomsnitt av DX. Den dubbla utjämningen gör den avsiktligt långsam: den stiger först efter att riktad rörelse har hållit i sig under flera barer, och den faller först efter att en trend verkligen har stannat av.

Den viktigaste egenskapen är symmetri. ADX stiger under starka nedtrender precis som under starka upptrender. Riktningen måste komma från DIplus och DIminus, de fristående versionerna av de två riktningsindikatorerna.

Exempel

Exempel 1, Rita ADX med en egen period (Indicator)

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

Bevarat från källsidan. Perioden hålls i en variabel så att den kan exponeras som en optimerbar inställning, och linjen returneras med en fast färg och etikett.

Exempel 2, Trendfilter för ett 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

ADX-villkoret blockerar entries på platta marknader, där crossovers för glidande medelvärden producerar de flesta av sina falska signaler.

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

Returnerar instrument vars trendstyrka är både förhöjd och fortfarande ökande, sorterade efter ADX-värdet.

Tolkning

ZonRangeAvläsning
Svag eller ingen trendADX < 20Den riktade rörelsen är balanserad. Intervallbundna förhållanden; breakout- och crossover-signaler är opålitliga.
Under utveckling20 till 25En trend kan vara på väg att bildas. Kombineras ofta med ett DIplus och DIminus korsning för riktning.
Stark trendADX > 25Uthållig riktad rörelse, upp eller ner. Trendföljande logik har de odds den designades för.

En stigande ADX betyder att den aktuella trenden, oavsett riktning, förstärks. En fallande ADX betyder att den tappar kraft, vilket inte är samma sak som att vända; marknader driver ofta sidledes efter att ADX har vänt ner.

Vanliga fel och fallgropar

  • Inget prisargument. ADX[14](close) ger ett syntaxfel. ADX läser high, low och close internt, så det korrekta anropet är helt enkelt ADX[14].
  • Styrka är inte riktning. En läsning på 40 säger ingenting om marknaden stiger eller faller. Att filtrera longs enbart på högt ADX köper utan vidare in i en stark nedåttrend; kombinera det med DIplus > DIminus eller ett motsvarande riktningstest.
  • Eftersläpning från dubbel utjämning. ADX bekräftar trender, den förutser dem inte. När den korsar 25 kan en betydande del av rörelsen redan ha skett. Att korta N minskar eftersläpningen men gör linjen ryckig.
  • Tröskelvärden är konventioner. Nivåerna 20 och 25 kommer från dagsdiagram för likvida marknader. Intraday-data och instrument med låg volatilitet behöver ofta omkalibrerade nivåer; granska indikatorns egen historik innan du hårdkodar en gräns.
  • ADXR, utjämnad variant som tar genomsnittet av aktuell ADX och ett äldre värde.
  • DIplus, den positiva riktningsindikatorn (+DI).
  • DIminus, den negativa riktningsindikatorn (-DI).
  • DI, spreaden för directional movement.
  • TR, true range för en enskild bar.
  • AverageTrueRange, det utjämnade true range som används i DI-beräkningen.
  • WilderAverage, utjämningsmetoden som används genomgående i ADX-familjen.
  • Supertrend, ett trendföljande överlägg som ofta kombineras med ADX-filter.