¿Cómo se calcula el ADX?

Aprende cómo se calcula el ADX utilizando las fórmulas y entradas principales.

Respuesta directa: el cálculo del ADX en una sola cadena

El ADX (Índice Direccional Promedio) se construye en capas a partir de los cambios de precio: (1) calcular el movimiento direccional y el rango verdadero para cada período, (2) suavizar esas series, (3) calcular los indicadores direccionales (+DI y −DI), (4) calcular el DX a partir de su relación, y (5) suavizar el DX para obtener el ADX.

Una definición común y estándar utiliza una longitud de retroceso que a menudo se escribe como n (frecuentemente 14, pero el método admite otros valores). Los valores del ADX dependen del n elegido y de la regla de suavizado utilizada por la implementación.

Mecanismo: definiciones y fórmulas paso a paso

Para describir el cálculo sin asumir datos en vivo, suponga que tiene una secuencia de velas/barras ordenadas por tiempo. Para cada barra t, necesita su máximo, mínimo y cierre (o al menos máximo/mínimo/cierre como se define a continuación).

1) Calcular el Rango Verdadero (TR)

El Rango Verdadero captura la magnitud del movimiento, incluidos los huecos. Para la barra t en relación con t−1:

  • TR(t) = máx( Máximo(t) − Mínimo(t), |Máximo(t) − Cierre(t−1)|, |Mínimo(t) − Cierre(t−1)| )

Esta definición hace que el TR sea mayor cuando el rango actual es amplio o cuando el precio salta a través del cierre anterior.

2) Calcular el movimiento direccional: +DM y −DM

El movimiento direccional separa los movimientos alcistas de los bajistas:

  • MovimientoAlcista(t) = Máximo(t) − Máximo(t−1)
  • MovimientoBajista(t) = Mínimo(t−1) − Mínimo(t)

Una regla típica es:

  • +DM(t) = MovimientoAlcista(t) si MovimientoAlcista(t) > MovimientoBajista(t) y MovimientoAlcista(t) > 0, si no, 0
  • −DM(t) = MovimientoBajista(t) si MovimientoBajista(t) > MovimientoAlcista(t) y MovimientoBajista(t) > 0, si no, 0

Esta estructura de “uno u otro” asegura que solo la dirección dominante contribuya en cada paso.

3) Suavizar TR, +DM y −DM

El ADX no se calcula a partir del TR y DM brutos de cada barra; utiliza un paso de suavizado. Muchas implementaciones utilizan el suavizado estilo Wilder (un enfoque común), que es equivalente a un promedio móvil recursivo particular.

Sea TRSuavizado(t) el TR suavizado y de manera similar +DMSuavizado(t) y −DMSuavizado(t).

Con el suavizado estilo Wilder para el período n, la recursión típicamente se ve así:

  • TRSuavizado(t) = TRSuavizado(t−1) − (TRSuavizado(t−1) / n) + TR(t)
  • +DMSuavizado(t) = +DMSuavizado(t−1) − (+DMSuavizado(t−1) / n) + +DM(t)
  • −DMSuavizado(t) = −DMSuavizado(t−1) − (−DMSuavizado(t−1) / n) + −DM(t)

La inicialización es importante: las implementaciones generalmente comienzan la serie suavizada después de suficientes barras para establecer una suma o promedio inicial durante n períodos.

4) Calcular +DI y −DI

Los indicadores direccionales convierten el movimiento direccional suavizado en valores relativos al TR suavizado:

  • +DI(t) = 100 × +DMSuavizado(t) / TRSuavizado(t)
  • −DI(t) = 100 × −DMSuavizado(t) / TRSuavizado(t)

5) Calcular el DX (Índice Direccional)

El DX describe con qué fuerza una dirección domina a la otra:

  • DX(t) = 100 × |+DI(t) − −DI(t)| / (+DI(t) + −DI(t))

Si +DI(t) + −DI(t) es cero (posible con movimiento plano o sin dirección y ciertas condiciones de datos/inicio), una implementación debe manejar la división por cero.

6) Suavizar el DX para obtener el ADX

Finalmente, el ADX es un promedio móvil suavizado del DX durante el período n (nuevamente, comúnmente estilo Wilder):

  • ADX(t) = promedio suavizado de DX(t) durante la longitud elegida n

En la práctica, el primer valor del ADX se produce después de una región de calentamiento (a menudo después de acumular suficientes puntos de DX). Diferentes plataformas pueden elegir convenciones de inicialización ligeramente diferentes, lo que genera pequeñas discrepancias.

Evidencia mediante un pequeño ejemplo práctico (con supuestos explícitos)

Sin datos en tiempo real, un ejemplo numérico completo sería arbitrario. En su lugar, aquí hay una plantilla de cálculo compacta que puede aplicar a sus propias barras OHLC.

Suponga que tiene barras consecutivas y selecciona un período n. Para cada barra a partir de la segunda barra (porque se requiere t−1):

  1. Calcule TR(t) a partir de Máximo(t), Mínimo(t) y Cierre(t−1).
  2. Calcule +DM(t) y −DM(t) a partir de las diferencias en máximos y mínimos.
  3. Construya los valores suavizados TRSuavizado(t), +DMSuavizado(t), −DMSuavizado(t) utilizando la regla de suavizado elegida y la inicialización correcta.
  4. Calcule +DI(t) y −DI(t).
  5. Calcule DX(t).
  6. Suavice DX(t) para formar ADX(t).

Supuesto material a declarar cuando verifique de forma independiente: su fuente de datos (qué valores OHLC exactamente), su n elegido y su regla de suavizado deben coincidir con la implementación que está verificando. Incluso si las fórmulas son “estándar”, los detalles de calentamiento y suavizado pueden diferir.

Si desea confirmar que dos sistemas calculan el mismo ADX, exporte la misma serie OHLC, aplique el mismo n, use las mismas definiciones de TR/DM y verifique las series intermedias (+DM/−DM, +DI/−DI, DX) antes de comparar el ADX final.

Limitaciones y modos de fallo que debe tener en cuenta

El ADX a menudo se describe como una medida de “fuerza de la tendencia”, pero esa interpretación tiene límites. Los principales problemas provienen de la sensibilidad a los datos y de cómo se comporta el movimiento direccional.

1) El ADX depende del suavizado y la inicialización

Debido a que el ADX utiliza TR/DM suavizados y DX suavizado, los resultados pueden variar cuando:

  • cambia n,
  • cambia el método de suavizado (o la convención de inicialización), o
  • su plataforma maneja los casos límite de manera diferente (por ejemplo, barras iniciales, división por cero).

Este es un modo de fallo clave al comparar números entre proveedores.

2) Los valores altos no garantizan una ventaja direccional

El ADX se calcula a partir de la magnitud del dominio direccional, no de una dirección garantizada. Puede estar relativamente elevado cuando una dirección domina consistentemente incluso si el entorno más amplio cambia más tarde.

Esto importa porque un cambio posterior en el movimiento direccional puede hacer que el comportamiento previo del ADX sea menos informativo.

3) Los mercados erráticos o laterales pueden producir lecturas de fuerza engañosas

Las definiciones de movimiento direccional aún pueden crear un dominio repetido en movimientos pequeños e irregulares. En algunas condiciones “laterales pero volátiles”, el ADX puede aumentar aunque no haya una estructura de tendencia sostenida y estable.

Esto significa que el ADX se trata mejor como un indicador de las características del movimiento, no como una regla de decisión independiente.

Verificación: cómo comprobar de forma independiente su cálculo del ADX

Para verificar el ADX por sí mismo utilizando la cadena de fórmulas anterior:

  1. Elija un n específico y regístrelo.
  2. Utilice un conjunto de datos OHLC consistente y confirme que tiene Máximo, Mínimo, Cierre alineados por tiempo.
  3. Calcule TR, +DM y −DM exactamente con la misma lógica condicional.
  4. Aplique la misma regla de suavizado e inicialización utilizada por su referencia.
  5. Calcule +DI, −DI, DX, y luego suavice DX en ADX.
  6. Compare primero las salidas intermedias; si coinciden, es muy probable que el ADX final sea consistente.
Operar con divisas y CFD implica un riesgo considerable. La información de FoxiForex es educativa y no constituye asesoramiento financiero personal. El contenido patrocinado se identifica claramente.