Script ATR Trailing Stops para IQ Option

Script ATR Trailing Stops para IQ Option

El indicador ATR Trailing Stops es una herramienta esencial para los traders que buscan gestionar el riesgo y maximizar sus ganancias en mercados volátiles. Este indicador utiliza el Average True Range (ATR) para establecer niveles de stop dinámicos, que se ajustan en función de la volatilidad del mercado. En esta entrada de blog, explicaremos cómo funciona el indicador ATR Trailing Stops, cómo implementarlo en IQ Option y cómo utilizarlo para mejorar tu estrategia de trading.

¿Qué es el Indicador ATR Trailing Stops?

El ATR Trailing Stops se basa en el Average True Range (ATR), un indicador que mide la volatilidad del mercado. El ATR se multiplica por un factor de ajuste para determinar la distancia del stop desde el precio actual. Este stop se «arrastra» detrás del precio, subiendo en mercados alcistas y bajando en mercados bajistas, ajustándose dinámicamente a las condiciones del mercado.

Implementación del Indicador ATR Trailing Stops en IQ Option

A continuación, se presenta el script en Lua para implementar el indicador ATR Trailing Stops en IQ Option. Este script permite a los usuarios configurar el período del ATR, el multiplicador y personalizar los colores y el ancho de las líneas.

luaCopiar códigoinstrument { name = "ATR Trailing Stops", overlay = true, icon="indicators:ATR" }

period = input (14, "front.period", input.integer, 1)
multiplier  = input (2, "front.newind.multiplier", input.double, 1)

high_low = input (false, "HighLow", input.boolean)

input_group {
    "front.newind.colors",
    up   = input { default = "#2CAC40", type = input.color },
    down = input { default = "#DB4931", type = input.color },
    width = input { default = 1, type = input.line_width }
}

atr = rma (tr, period) * multiplier

h = iff (high_low, high, close)
l = iff (high_low, low, close)

atr_ts = iff(close > nz(atr_ts[1], 0) and close[1] > nz(atr_ts[1], 0), 
            max(nz(atr_ts[1]), h - atr),
            iff(close < nz(atr_ts[1], 0) and close[1] < nz(atr_ts[1], 0), 
                min(nz(atr_ts[1]), l + atr),
                iff(close > nz(atr_ts[1], 0), 
                    h - atr, 
                    l + atr
                )
            )
        )

pos = iff(close[1] < nz(atr_ts[1], 0) and close > nz(atr_ts[1], 0), 1,
            iff(close[1] > nz(atr_ts[1], 0) and close < nz(atr_ts[1], 0), -1, nz(pos[1], 0)))

plot (atr_ts, "", pos < 0 and down or up , width)

short = (pos[1] ~= pos[0]) and (pos[0] == -1)
long = (pos[1] ~= pos[0]) and (pos[0] == 1)

plot_shape(long, "long", shape_style.triangleup, shape_size.tiny, 'green', shape_location.belowbar)
plot_shape(short, "short", shape_style.triangledown, shape_size.tiny, 'red', shape_location.abovebar)

Explicación del Script

  1. Entradas de Usuario:
    • period: Número de períodos para calcular el ATR.
    • multiplier: Factor por el cual se multiplica el ATR para determinar la distancia del stop.
    • high_low: Opción para usar los valores de máximo y mínimo en lugar de los precios de cierre.
  2. Grupos de Entrada:
    • Configuración de colores y ancho de las líneas para los stops alcistas y bajistas.
  3. Cálculos:
    • atr: Cálculo del ATR suavizado multiplicado por el factor de ajuste.
    • h y l: Valores altos y bajos (o de cierre) utilizados para los cálculos del stop.
    • atr_ts: Cálculo del ATR Trailing Stop ajustado dinámicamente.
  4. Posiciones y Señales de Trading:
    • pos: Determina la posición actual del mercado (alcista o bajista).
    • plot_shape: Muestra señales de entrada (long) y salida (short) en el gráfico.

Utilizando el Indicador ATR Trailing Stops en el Trading

El ATR Trailing Stops es útil para:

  1. Gestión de Riesgo:
    • Ajusta dinámicamente los niveles de stop según la volatilidad del mercado.
    • Protege las ganancias en mercados volátiles al «arrastrar» el stop detrás del precio.
  2. Identificación de Cambios de Tendencia:
    • Proporciona señales de cambio de tendencia basadas en la ruptura del precio a través de los niveles de stop.
  3. Optimización de Estrategias de Trading:
    • Utiliza el ATR Trailing Stops en combinación con otros indicadores para confirmar señales de trading y mejorar la precisión de las entradas y salidas.

Estrategias de Trading con ATR Trailing Stops

  • Estrategia de Seguimiento de Tendencias:
    • Utilizar el ATR Trailing Stops para seguir la tendencia y ajustar los stops según la volatilidad.
    • Mantener posiciones largas cuando el precio está por encima del stop y posiciones cortas cuando está por debajo.
  • Confirmación de Señales:
    • Utilizar el ATR Trailing Stops para confirmar señales de otros indicadores, como medias móviles o indicadores de impulso.

Conclusión

El ATR Trailing Stops es una herramienta poderosa para la gestión de riesgos y la optimización de estrategias de trading. Su implementación en IQ Option mediante un script en Lua permite a los traders ajustar dinámicamente los niveles de stop según la volatilidad del mercado, protegiendo las ganancias y minimizando las pérdidas.

Script Completo

instrument { name = "ATR Trailing Stops", overlay = true, icon="indicators:ATR" }

period = input (14, "front.period", input.integer, 1 )
multiplier = input (2, "front.newind.multiplier", input.double, 1 )

high_low = input (false, "HighLow", input.boolean)

input_group {
"front.newind.colors",
up = input { default = "#2CAC40", type = input.color },
down = input { default = "#DB4931", type = input.color },
width = input { default = 1, type = input.line_width }
}

atr = rma (tr, period) * multiplier

h = iff (high_low, high, close)
l = iff (high_low, low, close)

atr_ts = iff(close > nz(atr_ts[1], 0) and close[1] > nz(atr_ts[1], 0),
max(nz(atr_ts[1]), h - atr),
iff(close < nz(atr_ts[1], 0) and close[1] < nz(atr_ts[1], 0),
min(nz(atr_ts[1]), l + atr),
iff(close > nz(atr_ts[1], 0),
h - atr,
l + atr
)
)
)

pos = iff(close[1] < nz(atr_ts[1], 0) and close > nz(atr_ts[1], 0), 1,
iff(close[1] > nz(atr_ts[1], 0) and close < nz(atr_ts[1], 0), -1, nz(pos[1], 0)))

plot (atr_ts, "", pos < 0 and down or up , width)

short = (pos[1] ~= pos[0]) and (pos[0] == -1)
long = (pos[1] ~= pos[0]) and (pos[0] == 1)

plot_shape(long, "long", shape_style.triangleup, shape_size.tiny, 'green', shape_location.belowbar)
plot_shape(short, "short", shape_style.triangledown, shape_size.tiny, 'red', shape_location.abovebar)
Carrito de compra
Scroll al inicio
Telegram