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
// N as number of periods for the calculation
ADX[N]Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
N | intero | 14 | Periodo 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:
+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)
// 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)
// 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
ENDIFLa condizione sull'ADX blocca gli ingressi nei mercati piatti, dove gli incroci di medie mobili producono la maggior parte dei loro falsi segnali.
Esempio 3, Scansione dei trend emergenti (ProScreener)
// 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
| Zona | Range | Lettura |
|---|---|---|
| Trend debole o assente | ADX < 20 | Il movimento direzionale è in equilibrio. Condizioni laterali; i segnali di breakout e di incrocio sono inaffidabili. |
| In formazione | da 20 a 25 | Potrebbe formarsi un trend. Spesso combinato con un DIplus e DIminus cross per la direzione. |
| Trend forte | ADX > 25 | Movimento 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 leggehigh,lowecloseinternamente, quindi la chiamata corretta è semplicementeADX[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 > DIminuso 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
Nriduce 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.
Istruzioni correlate
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.