El indicador de Bandas STARC (Stoller Average Range Channels) es una herramienta técnica utilizada en el análisis financiero para evaluar la volatilidad de un activo y detectar posibles puntos de entrada y salida en el mercado. Este script proporciona una implementación de las Bandas STARC en una plataforma de trading. A continuación, se explica el funcionamiento y la configuración de este script.
Configuración Inicial del Script
El script comienza definiendo el nombre del indicador y los parámetros iniciales necesarios para su cálculo.
luaCopiar códigoinstrument { name = "STARC Bands", overlay = true }
period = input (15, "front.period", input.integer, 1)
maperiod = input (5, "front.newind.maperiod", input.integer, 1)
multiplier = input (1.3, "front.newind.multiplier", input.double, 0.01, 300, 0.01)
source = input (1, "front.ind.source", input.string_selection, inputs.titles_overlay)
fn = input (averages.ema, "front.newind.average", input.string_selection, averages.titles)
- period: Período para el cálculo del rango medio verdadero (ATR).
- maperiod: Período para el cálculo de la media móvil.
- multiplier: Multiplicador utilizado para ajustar el ancho de las bandas.
- source: Fuente de datos utilizada para el cálculo (por ejemplo, el precio de cierre).
- fn: Función de promedio seleccionada, en este caso, la media móvil exponencial (EMA).
Configuración de las Líneas y el Relleno
El siguiente bloque de código configura la visibilidad y el estilo de las líneas superiores, medias e inferiores de las Bandas STARC, así como el color de relleno entre las bandas.
luaCopiar códigoinput_group {
"front.top line",
upper_line_visible = input { default = true, type = input.plot_visibility },
upper_line_color = input { default = "#DBCF0D", type = input.color },
upper_line_width = input { default = 1, type = input.line_width }
}
input_group {
"front.middle line",
middle_line_visible = input { default = true, type = input.plot_visibility },
middle_line_color = input { default = rgba(219,207,13,0.6), type = input.color },
middle_line_width = input { default = 1, type = input.line_width }
}
input_group {
"front.bottom line",
lower_line_visible = input { default = true, type = input.plot_visibility },
lower_line_color = input { default = "#DBCF0D", type = input.color },
lower_line_width = input { default = 1, type = input.line_width }
}
input_group {
"front.newind.adx.fill",
fill_visible = input { default = true, type = input.plot_visibility },
fill_color = input { default = rgba(219,207,13,0.05), type = input.color },
}
Cálculo de las Bandas STARC
A continuación, se realiza el cálculo de las bandas superior, media e inferior.
luaCopiar códigolocal averageFunction = averages [fn]
local sourceSeries = inputs [source]
middle = averageFunction (sourceSeries, maperiod)
offset = rma(tr, period) * multiplier
upper = middle + offset
lower = middle - offset
- middle: Línea media, calculada como la media móvil del precio.
- offset: Desplazamiento calculado como el rango medio verdadero (ATR) multiplicado por el multiplicador.
- upper: Banda superior, calculada como la línea media más el desplazamiento.
- lower: Banda inferior, calculada como la línea media menos el desplazamiento.
Visualización del Indicador
Finalmente, se visualizan las bandas STARC en el gráfico, con la opción de rellenar el área entre las bandas superior e inferior.
luaCopiar códigoif fill_visible then
fill { first = upper, second = lower, color = fill_color }
end
if upper_line_visible then
plot (upper, "Upper", upper_line_color, upper_line_width)
end
if lower_line_visible then
plot (lower, "Lower", lower_line_color, lower_line_width)
end
if middle_line_visible then
plot (middle, "Middle", middle_line_color, middle_line_width)
end
- fill: Rellena el área entre la banda superior e inferior con el color especificado.
- plot: Dibuja las líneas de las bandas superior, media e inferior en el gráfico con los colores y anchos especificados.
Interpretación del Indicador
Las Bandas STARC proporcionan una visualización clara de la volatilidad del mercado y pueden ser utilizadas para identificar posibles puntos de reversión o continuación de la tendencia. Aquí algunos puntos clave para su interpretación:
- Banda Superior: Representa un nivel de resistencia potencial. Si el precio toca o supera esta banda, puede ser indicativo de un nivel de sobrecompra.
- Banda Inferior: Representa un nivel de soporte potencial. Si el precio toca o cae por debajo de esta banda, puede ser indicativo de un nivel de sobreventa.
- Línea Media: Actúa como un nivel de equilibrio y puede ser utilizada como referencia para la dirección general del mercado.
Conclusión
El Indicador de Bandas STARC es una herramienta valiosa para medir la volatilidad y detectar posibles puntos de reversión en el mercado. Su combinación de medias móviles y el rango medio verdadero (ATR) permite a los traders identificar niveles clave de soporte y resistencia, proporcionando información útil para tomar decisiones de trading informadas.
Script Completo
instrument { name = "STARC Bands", overlay = true }
period = input (15, "front.period", input.integer, 1)
maperiod = input (5, "front.newind.maperiod", input.integer, 1)
multiplier = input (1.3, "front.newind.multiplier", input.double, 0.01, 300, 0.01)
source = input (1, "front.ind.source", input.string_selection, inputs.titles_overlay)
fn = input (averages.ema, "front.newind.average", input.string_selection, averages.titles)
input_group {
"front.top line",
upper_line_visible = input { default = true, type = input.plot_visibility },
upper_line_color = input { default = "#DBCF0D", type = input.color },
upper_line_width = input { default = 1, type = input.line_width }
}
input_group {
"front.middle line",
middle_line_visible = input { default = true, type = input.plot_visibility },
middle_line_color = input { default = rgba(219,207,13,0.6), type = input.color },
middle_line_width = input { default = 1, type = input.line_width }
}
input_group {
"front.bottom line",
lower_line_visible = input { default = true, type = input.plot_visibility },
lower_line_color = input { default = "#DBCF0D", type = input.color },
lower_line_width = input { default = 1, type = input.line_width }
}
input_group {
"front.newind.adx.fill",
fill_visible = input { default = true, type = input.plot_visibility },
fill_color = input { default = rgba(219,207,13,0.05), type = input.color },
}
local averageFunction = averages [fn]
local sourceSeries = inputs [source]
middle = averageFunction (sourceSeries, maperiod)
offset = rma(tr, period) * multiplier
upper = middle + offset
lower = middle - offset
if fill_visible then
fill { first = upper, second = lower, color = fill_color }
end
if upper_line_visible then
plot (upper, "Upper", upper_line_color, upper_line_width)
end
if lower_line_visible then
plot (lower, "Lower", lower_line_color, lower_line_width)
end
if middle_line_visible then
plot (middle, "Middle", middle_line_color, middle_line_width)
end