Script Indicador Bollinger Bands %B en IQ Option

Script Indicador Bollinger Bands %B en IQ Option

El indicador Bollinger Bands %B es una extensión de las Bandas de Bollinger clásicas, diseñado por John Bollinger. Este indicador proporciona una perspectiva adicional al mostrar la posición del precio actual en relación con las Bandas de Bollinger. En esta entrada de blog, exploraremos qué es el Bollinger Bands %B, cómo funciona y cómo se puede utilizar en la plataforma IQ Option con el siguiente script en Lua.

¿Qué es el Bollinger Bands %B?

El Bollinger Bands %B (porcentaje B) mide la posición del precio en relación con las bandas superior e inferior de las Bandas de Bollinger. Este valor oscila entre 0 y 1, donde:

  • 0 indica que el precio está en la banda inferior.
  • 1 indica que el precio está en la banda superior.
  • 0.5 indica que el precio está en la banda media (media móvil).

Este indicador ayuda a identificar condiciones de sobrecompra y sobreventa, así como la fuerza de la tendencia.

Implementación del Bollinger Bands %B en IQ Option

El siguiente script en Lua implementa el Bollinger Bands %B en la plataforma de IQ Option. Permite configurar el período de la media móvil, el número de desviaciones estándar, los niveles de sobrecompra y sobreventa, y personalizar los colores y el ancho de las líneas.

luaCopiar códigoinstrument { name = "Bollinger Bands %B", overlay = false, icon = "indicators:BB" }

period = input (20, "front.period", input.integer,  1)
devs   = input (2, "front.newind.stddev", input.integer, 1)

overbought = input (1, "front.overbought", input.double, -2, 2, 0.1, false)
oversold = input (0, "front.oversold", input.double, -2, 2, 0.1, false)

source = input (1, "front.ind.source", input.string_selection, inputs.titles)
fn     = input (1, "front.newind.average", input.string_selection, averages.titles)

input_group {
    "front.ind.dpo.generalline",
    color = input { default = "#4BFFB5", type = input.color },
    width = input { default = 1, type = input.line_width}
}

input_group {
    "front.ind.kdj.line.overbought",
    overbought_color = input { default = rgba(37,225,84,0.50), type = input.color },
    overbought_width = input { default = 1, type = input.line_width},
    overbought_visible = input { default = true, type = input.plot_visibility}
}

input_group {
    "front.ind.kdj.line.oversold",
    oversold_color = input { default = rgba(255,108,88,0.50), type = input.color },
    oversold_width = input { default = 1, type = input.line_width},
    oversold_visible = input { default = true, type = input.plot_visibility}
}

input_group {
    "front.newind.adx.fill",
    fill_color = input { default = rgba(75,255,181,0.06), type = input.color },
    fill_visible = input { default = true, type = input.plot_visibility}
}

local sourceSeries = inputs [source]
local averageFunction = averages [fn]

middle = averageFunction (sourceSeries, period)
scaled_dev = devs * stdev (sourceSeries, period)

top = middle + scaled_dev
bottom = middle - scaled_dev

if fill_visible then
    fill_area (oversold, overbought, "", fill_color)
end

if overbought_visible then
    hline (overbought, "", overbought_color, overbought_width)
end

if oversold_visible then
    hline (oversold, "", oversold_color, oversold_width)
end

pb = (sourceSeries - bottom) / (top - bottom)

plot (pb, "%B", color, width)

Explicación del Script

  1. Entradas de Usuario:
    • period: Número de períodos para calcular la media móvil simple.
    • devs: Número de desviaciones estándar para calcular las bandas superior e inferior.
    • overbought y oversold: Niveles de sobrecompra y sobreventa.
    • source: Fuente de datos (precio de cierre, apertura, máximo, mínimo, etc.).
    • fn: Función de media (SMA, EMA, etc.).
  2. Grupos de Entrada:
    • Configuración de colores y anchos para las líneas de sobrecompra, sobreventa y la línea %B.
    • Configuración de color y visibilidad para el área de relleno entre los niveles de sobrecompra y sobreventa.
  3. Cálculos:
    • middle: Media móvil simple del precio fuente.
    • scaled_dev: Desviaciones estándar escaladas.
    • top y bottom: Bandas superior e inferior calculadas sumando y restando las desviaciones estándar escaladas a la media móvil.
  4. Visualización:
    • fill_area: Rellena el área entre los niveles de sobrecompra y sobreventa si está habilitado.
    • hline: Dibuja las líneas de sobrecompra y sobreventa.
    • plot: Dibuja la línea %B en el gráfico.

Utilizando el Bollinger Bands %B en el Trading

El Bollinger Bands %B es útil para:

  1. Identificar Condiciones de Sobrecompra y Sobreventa:
    • Cuando el %B está por encima del nivel de sobrecompra, el mercado puede estar sobrecomprado, sugiriendo una posible reversión a la baja.
    • Cuando el %B está por debajo del nivel de sobreventa, el mercado puede estar sobrevendido, sugiriendo una posible reversión al alza.
  2. Confirmar la Fuerza de la Tendencia:
    • Un %B cercano a 1 indica una fuerte tendencia alcista.
    • Un %B cercano a 0 indica una fuerte tendencia bajista.
  3. Estrategias de Trading:
    • Reversión a la Media: Comprar cuando el %B está por debajo del nivel de sobreventa y vender cuando está por encima del nivel de sobrecompra.
    • Seguimiento de Tendencias: Utilizar el %B para confirmar la dirección y la fuerza de la tendencia.

Conclusión

El Bollinger Bands %B es una herramienta poderosa que complementa las Bandas de Bollinger tradicionales al proporcionar una medida clara de la posición del precio dentro de las bandas. Este indicador es valioso para identificar condiciones de sobrecompra y sobreventa, así como para confirmar la fuerza de la tendencia.

Script Completo

instrument { name = "Bollinger Bands %B", overlay = false, icon = "indicators:BB" }

period = input (20, "front.period", input.integer, 1)
devs = input (2, "front.newind.stddev", input.integer, 1)

overbought = input (1, "front.overbought", input.double, -2, 2, 0.1, false)
oversold = input (0, "front.oversold", input.double, -2, 2, 0.1, false)

source = input (1, "front.ind.source", input.string_selection, inputs.titles)
fn = input (1, "front.newind.average", input.string_selection, averages.titles)


input_group {
"front.ind.dpo.generalline",
color = input { default = "#4BFFB5", type = input.color },
width = input { default = 1, type = input.line_width}
}

input_group {
"front.ind.kdj.line.overbought",
overbought_color = input { default = rgba(37,225,84,0.50), type = input.color },
overbought_width = input { default = 1, type = input.line_width},
overbought_visible = input { default = true, type = input.plot_visibility}
}

input_group {
"front.ind.kdj.line.oversold",
oversold_color = input { default = rgba(255,108,88,0.50), type = input.color },
oversold_width = input { default = 1, type = input.line_width},
oversold_visible = input { default = true, type = input.plot_visibility}
}

input_group {
"front.newind.adx.fill",
fill_color = input { default = rgba(75,255,181,0.06), type = input.color },
fill_visible = input { default = true, type = input.plot_visibility}
}

local sourceSeries = inputs [source]
local averageFunction = averages [fn]

middle = averageFunction (sourceSeries, period)
scaled_dev = devs * stdev (sourceSeries, period)

top = middle + scaled_dev
bottom = middle - scaled_dev

if fill_visible then
fill_area (oversold, overbought, "", fill_color)
end

if overbought_visible then
hline (overbought, "", overbought_color, overbought_width)
end

if oversold_visible then
hline (oversold, "", oversold_color, oversold_width)
end

pb = (sourceSeries - bottom) / (top - bottom)

plot (pb, "%B", color, width)
Carrito de compra
Scroll al inicio
Telegram