Iscriviti ora
Indicatori/probuilder · probacktest · proorder · proscreener

ADX

ADX in ProBuilder restituisce l'Average Directional Index, una misura della forza del trend da 0 a 100 derivata da DIplus e DIminus. Sintassi, formula, esempi.

Sintassi

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

Parametri

NomeTipoPredefinitoDescrizione
Nintero14Periodo di smoothing in bar. ADX non accetta argomenti di prezzo; è calcolato internamente da high, low e close.

Formula

Il calcolo si svolge in quattro passaggi:

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

Poiché il DX è un rapporto normalizzato, l'ADX è delimitato tra 0 e 100 indipendentemente dalla scala di prezzo dello strumento.

Come funziona

Su ogni bar ProBuilder confronta il massimo e il minimo correnti con quelli del bar precedente per misurare il movimento direzionale positivo e negativo. Livellare quei movimenti e dividerli per il true range produce +DI e -DI, i due indicatori direzionali. Quando uno domina chiaramente l'altro, DX è alto; quando sono quasi uguali, DX crolla verso lo zero.

L'ADX è quindi una media del DX livellata secondo Wilder. Il doppio livellamento lo rende volutamente lento: sale solo dopo che il movimento direzionale è persistito per diverse bar, e scende solo dopo che un trend si è realmente arrestato.

La proprietà chiave è la simmetria. ADX sale nei forti trend discendenti esattamente come nei forti trend ascendenti. La direzione deve venire da DIplus e DIminus, le versioni autonome dei due indicatori direzionali.

Esempi

Esempio 1, Tracciare l'ADX con un periodo personalizzato (Indicatore)

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

Conservato dalla pagina di origine. Il periodo è memorizzato in una variabile in modo da poter essere esposto come impostazione ottimizzabile, e la linea viene restituita con un colore e un'etichetta fissi.

Esempio 2, Filtro di trend per un sistema a incrocio (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

La condizione sull'ADX blocca gli ingressi nei mercati piatti, dove gli incroci di medie mobili producono la maggior parte dei loro falsi segnali.

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

Restituisce gli strumenti la cui forza del trend è sia elevata sia ancora in aumento, ordinati in base alla lettura dell'ADX.

Interpretazione

ZonaRangeLettura
Trend debole o assenteADX < 20Il movimento direzionale è in equilibrio. Condizioni laterali; i segnali di breakout e di incrocio sono inaffidabili.
In formazioneda 20 a 25Potrebbe formarsi un trend. Spesso combinato con un DIplus e DIminus cross per la direzione.
Trend forteADX > 25Movimento direzionale prolungato, al rialzo o al ribasso. La logica trend-following ha le probabilità per cui è stata progettata.

Un ADX in salita significa che il trend attuale, qualunque sia la sua direzione, si sta rafforzando. Un ADX in discesa significa che sta perdendo forza, il che non equivale a un'inversione; i mercati spesso vanno alla deriva lateralmente dopo che l'ADX gira verso il basso.

Errori e insidie comuni

  • Nessun argomento di prezzo. ADX[14](close) genera un errore di sintassi. ADX legge high, low e close internamente, quindi la chiamata corretta è semplicemente ADX[14].
  • La forza non è la direzione. Una lettura di 40 non dice nulla sul fatto che il mercato stia salendo o scendendo. Filtrare i long solo su un ADX elevato comprerà tranquillamente dentro un forte trend ribassista; abbinalo a DIplus > DIminus o un test di direzione equivalente.
  • Ritardo da doppio livellamento. L'ADX conferma i trend, non li anticipa. Quando supera 25, una parte sostanziale del movimento può essere già avvenuta. Accorciare N riduce il lag ma rende la linea irregolare.
  • Le soglie sono convenzioni. I livelli 20 e 25 derivano dai grafici giornalieri di mercati liquidi. I dati intraday e gli strumenti a bassa volatilità richiedono spesso livelli ricalibrati; esamina lo storico dell'indicatore stesso prima di fissare una soglia nel codice.
  • ADXR, variante livellata che media l'ADX corrente con un valore più vecchio.
  • DIplus, l'indicatore direzionale positivo (+DI).
  • DIminus, l'indicatore direzionale negativo (-DI).
  • DI, lo spread del movimento direzionale.
  • TR, true range di una singola bar.
  • AverageTrueRange, il true range livellato utilizzato nel calcolo del DI.
  • WilderAverage, il metodo di livellamento utilizzato in tutta la famiglia ADX.
  • Supertrend, un overlay trend-following spesso abbinato ai filtri ADX.