ADX
ADX en ProBuilder devuelve el Average Directional Index, una medida de 0 a 100 de la fuerza de la tendencia derivada de DIplus y DIminus. Sintaxis, fórmula, ejemplos.
Sintaxis
// N as number of periods for the calculation
ADX[N]Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
N | entero | 14 | Periodo de suavizado en bars. ADX no toma argumento de precio; se calcula internamente a partir de high, low y close. |
Fórmula
El cálculo se realiza en cuatro pasos:
+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)Como DX es un ratio normalizado, el ADX está acotado entre 0 y 100 independientemente de la escala de precios del instrumento.
Cómo funciona
En cada bar, ProBuilder compara el máximo y el mínimo actuales con los del bar anterior para medir el movimiento direccional positivo y negativo. Suavizar esos movimientos y dividirlos por el true range produce +DI y -DI, los dos indicadores direccionales. Cuando uno domina claramente al otro, el DX es alto; cuando están casi igualados, el DX se desploma hacia cero.
El ADX es entonces una media del DX suavizada con el método de Wilder. El doble suavizado lo hace deliberadamente lento: solo sube después de que el movimiento direccional haya persistido durante varias bars, y solo baja después de que una tendencia se haya estancado de verdad.
La propiedad clave es la simetría. El ADX sube en las tendencias bajistas fuertes exactamente igual que en las alcistas fuertes. La dirección tiene que venir de DIplus y DIminus, las versiones independientes de los dos indicadores direccionales.
Ejemplos
Ejemplo 1, Dibujar el ADX con un periodo personalizado (Indicador)
// 21-period ADX rendered in blue
myPeriod = 21
myADX = ADX[myPeriod]
RETURN myADX coloured(9,169,243) as "Average Directional Index"Conservado de la página de origen. El periodo se guarda en una variable para poder exponerlo como un ajuste optimizable, y la línea se devuelve con un color y una etiqueta fijos.
Ejemplo 2, Filtro de tendencia para un sistema de cruce (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 condición del ADX bloquea las entradas en mercados planos, donde los cruces de medias móviles producen la mayoría de sus señales falsas.
Ejemplo 3, Escaneo de tendencias emergentes (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")Devuelve los instrumentos cuya fuerza de tendencia es elevada y además sigue aumentando, ordenados por la lectura del ADX.
Interpretación
| Zona | Range | Lectura |
|---|---|---|
| Tendencia débil o ausente | ADX < 20 | El movimiento direccional está equilibrado. Condiciones de rango; las señales de breakout y de cruce no son fiables. |
| En desarrollo | 20 a 25 | Puede estar formándose una tendencia. A menudo se combina con un DIplus y DIminus cruce para la dirección. |
| Tendencia fuerte | ADX > 25 | Movimiento direccional sostenido, al alza o a la baja. La lógica seguidora de tendencia tiene las probabilidades para las que fue diseñada. |
Un ADX ascendente significa que la tendencia actual, cualquiera que sea su dirección, se está fortaleciendo. Un ADX descendente significa que está perdiendo fuerza, lo que no es lo mismo que revertirse; los mercados suelen derivar lateralmente después de que el ADX gire a la baja.
Errores y trampas habituales
- Sin argumento de precio.
ADX[14](close)genera un error de sintaxis. ADX leehigh,lowycloseinternamente, así que la llamada correcta es simplementeADX[14]. - La fuerza no es la dirección. Una lectura de 40 no dice nada sobre si el mercado está subiendo o bajando. Filtrar longs solo con un ADX alto comprará sin problema en plena tendencia bajista fuerte; combínalo con
DIplus > DIminuso una prueba de dirección equivalente. - Retardo del doble suavizado. El ADX confirma tendencias, no las anticipa. Cuando cruza 25, buena parte del movimiento puede haber ocurrido ya. Acortar
Nreduce el retardo pero hace que la línea sea errática. - Los umbrales son convenciones. Los niveles 20 y 25 provienen de gráficos diarios de mercados líquidos. Los datos intraday y los instrumentos de baja volatilidad suelen necesitar niveles recalibrados; inspecciona el propio histórico del indicador antes de fijar un umbral en el código.
Instrucciones relacionadas
ADXR, variante suavizada que promedia el ADX actual con un valor más antiguo.DIplus, el indicador direccional positivo (+DI).DIminus, el indicador direccional negativo (-DI).DI, el spread de movimiento direccional.TR, true range de un único bar.AverageTrueRange, el true range suavizado usado en el cálculo del DI.WilderAverage, el método de suavizado usado en toda la familia ADX.Supertrend, una superposición seguidora de tendencia que a menudo se combina con filtros de ADX.