Script ADX/DMS Un Poderoso Indicador de Tendencias

Script ADX/DMS Un Poderoso Indicador de Tendencias

El ADX/DMS (Average Directional Index / Directional Movement System) es uno de los indicadores técnicos más populares y útiles en el análisis de tendencias del mercado. Desarrollado por J. Welles Wilder, este indicador ayuda a los traders a determinar la fuerza de una tendencia y a identificar posibles puntos de reversión en el mercado. En esta entrada de blog, exploraremos cómo se implementa el ADX/DMS en IQ Option mediante un script en Lua y cómo los traders pueden utilizar este indicador para mejorar sus estrategias de trading.

¿Qué es el ADX/DMS?

El ADX/DMS se compone de tres líneas principales:

  1. ADX (Average Directional Index): Mide la fuerza de la tendencia sin importar si es alcista o bajista.
  2. DI+ (Directional Indicator Plus): Indica la presión de compra.
  3. DI- (Directional Indicator Minus): Indica la presión de venta.

El ADX oscila entre 0 y 100, donde un valor por encima de 20 generalmente indica una tendencia fuerte. Los cruces entre DI+ y DI- pueden proporcionar señales de compra o venta.

Implementación del ADX/DMS en IQ Option

El siguiente script en Lua implementa el ADX/DMS para la plataforma IQ Option. Permite configurar los períodos de suavizado y la longitud del DI, así como personalizar los colores y la visibilidad de cada línea.

luaCopiar códigoinstrument { name = "ADX/DMS", icon="indicators:ADX" }

adx_period = input (14, "front.newind.adx.smoothing", input.integer, 1)
di_period = input (14, "front.newind.adx.dilength", input.integer, 1)
threshold  = input (20, "front.newind.adx.threshold", input.double, 0, 100)

input_group {
    "ADX",
    adx_color = input { default = rgba(255,255,255,0.7), type = input.color },
    adx_width = input { default = 1, type = input.line_width },
    adx_visible = input { default = true, type = input.plot_visibility }
}

input_group {
    "DI+",
    pdi_color = input { default = "#25E154", type = input.color },
    pdi_width = input { default = 1, type = input.line_width },
    pdi_visible = input { default = true, type = input.plot_visibility }
}

input_group {
    "DI–",
    mdi_color = input { default = "#FF6C58", type = input.color },
    mdi_width = input { default = 1, type = input.line_width },
    mdi_visible = input { default = true, type = input.plot_visibility }
}

input_group {
    "front.newind.adx.threshold",
    threshold_color = input { default = rgba(255,255,255,0.15), type = input.color },
    threshold_width = input { default = 1, type = input.line_width },
    threshold_visible = input { default = true, type = input.plot_visibility }
}

input_group {
    "front.newind.adx.fill",
    up_color = input { default = rgba(37,225,84,0.15), type = input.color },
    down_color = input { default = rgba(255,108,88,0.15), type = input.color },
    fill_visible = input { default = true, type = input.plot_visibility }
}

up_move = change (high)
down_move = -change (low)

pdm = iff (up_move > down_move and nz(up_move) > 0, up_move, 0)
mdm = iff (down_move > up_move and nz(down_move) > 0, down_move, 0)

atr = rma(tr, di_period)

pdi = 100 * rma (pdm / atr, di_period)
mdi = 100 * rma (mdm / atr, di_period)

adx = 100 * rma (abs (pdi - mdi) / (pdi + mdi), adx_period)

if threshold_visible then
    hline { value = threshold, color = threshold_color, width = threshold_width }
end

if fill_visible then
    fill (mdi, pdi, "", iff(pdi > mdi, up_color, down_color))
end

if mdi_visible then
    plot (mdi, "MDI", mdi_color, mdi_width)
end

if pdi_visible then
    plot (pdi, "PDI", pdi_color, pdi_width)
end

if adx_visible then
    plot (adx, "ADX", adx_color, adx_width)
end

Explicación del Script

  1. Entradas de Usuario:
    • adx_period: Período de suavizado del ADX.
    • di_period: Longitud del DI.
    • threshold: Umbral del ADX para indicar una tendencia fuerte.
  2. Grupos de Entrada:
    • Configuración de colores, anchos y visibilidad para las líneas ADX, DI+ y DI-.
    • Configuración del umbral y colores de relleno.
  3. Cálculos:
    • up_move y down_move: Movimientos hacia arriba y hacia abajo del precio.
    • pdm y mdm: Movimientos direccionales positivos y negativos.
    • atr: Rango verdadero promedio (Average True Range).
    • pdi y mdi: Indicadores direccionales positivos y negativos.
    • adx: Índice direccional promedio.
  4. Visualización:
    • Las líneas ADX, DI+ y DI- se dibujan en el gráfico, junto con un umbral y áreas de relleno para indicar la dominancia de DI+ o DI-.

Utilizando el ADX/DMS en el Trading

El ADX/DMS es una herramienta versátil que puede ser utilizada de varias maneras en el trading:

  1. Identificación de Tendencias:
    • Un ADX por encima de 20 indica una tendencia fuerte.
    • Cruces entre DI+ y DI- pueden ser utilizados para generar señales de compra o venta.
  2. Confirmación de Señales:
    • Utilizar el ADX junto con otros indicadores de tendencia para confirmar la dirección del mercado.
    • Un ADX creciente confirma la fuerza de la tendencia indicada por otros indicadores.
  3. Gestión del Riesgo:
    • El ADX/DMS puede ayudar a los traders a mantenerse fuera de mercados laterales, evitando operaciones en mercados sin tendencia.

Estrategias de Trading con ADX/DMS

  • Cruce de DI+ y DI-:
    • Cuando DI+ cruza por encima de DI-, puede ser una señal de compra.
    • Cuando DI- cruza por encima de DI+, puede ser una señal de venta.
  • Confirmación de Tendencias:
    • Utilizar el ADX para confirmar la fuerza de la tendencia antes de entrar en una operación.
    • Combinar con indicadores de volumen para validar la fortaleza de la tendencia.

Conclusión

El ADX/DMS es un indicador poderoso para identificar la fuerza y la dirección de las tendencias del mercado. Su implementación en IQ Option mediante un script en Lua proporciona a los traders una herramienta robusta para mejorar sus estrategias de trading y tomar decisiones más informadas. Al personalizar los colores, anchos y visibilidad de las líneas, los traders pueden adaptar la visualización del indicador a sus necesidades y preferencias específicas. Utilizando el ADX/DMS en combinación con otros indicadores, los traders pueden desarrollar estrategias más efectivas y gestionar mejor el riesgo en sus operaciones.

Script Completo

instrument { name = "ADX/DMS", icon="indicators:ADX" }

adx_period = input (14, "front.newind.adx.smoothing", input.integer, 1)
di_period = input (14, "front.newind.adx.dilength", input.integer, 1)
threshold = input (20, "front.newind.adx.threshold", input.double, 0, 100)

input_group {
"ADX",
adx_color = input { default = rgba(255,255,255,0.7), type = input.color },
adx_width = input { default = 1, type = input.line_width },
adx_visible = input { default = true, type = input.plot_visibility }
}

input_group {
"DI+",
pdi_color = input { default = "#25E154", type = input.color },
pdi_width = input { default = 1, type = input.line_width },
pdi_visible = input { default = true, type = input.plot_visibility }
}

input_group {
"DI–",
mdi_color = input { default = "#FF6C58", type = input.color },
mdi_width = input { default = 1, type = input.line_width },
mdi_visible = input { default = true, type = input.plot_visibility }
}

input_group {
"front.newind.adx.threshold",
threshold_color = input { default = rgba(255,255,255,0.15), type = input.color },
threshold_width = input { default = 1, type = input.line_width },
threshold_visible = input { default = true, type = input.plot_visibility }
}

input_group {
"front.newind.adx.fill",
up_color = input { default = rgba(37,225,84,0.15), type = input.color },
down_color = input { default = rgba(255,108,88,0.15), type = input.color },
fill_visible = input { default = true, type = input.plot_visibility }
}

up_move = change (high)
down_move = -change (low)

pdm = iff (up_move > down_move and nz(up_move) > 0, up_move, 0)
mdm = iff (down_move > up_move and nz(down_move) > 0, down_move, 0)

atr = rma(tr, di_period)

pdi = 100 * rma (pdm / atr, di_period)
mdi = 100 * rma (mdm / atr, di_period)

adx = 100 * rma (abs (pdi - mdi) / (pdi + mdi), adx_period)

if threshold_visible then
hline { value = threshold, color = threshold_color, width = threshold_width }
end

if fill_visible then
fill (mdi, pdi, "", iff(pdi > mdi, up_color, down_color))
end

if mdi_visible then
plot (mdi, "MDI", mdi_color, mdi_width)
end

if pdi_visible then
plot (pdi, "PDI", pdi_color, pdi_width)
end

if adx_visible then
plot (adx, "ADX", adx_color, adx_width)
end
Carrito de compra
Scroll al inicio
Telegram