El indicador Keltner Channels es una herramienta técnica utilizada por los traders para identificar tendencias y condiciones de sobrecompra o sobreventa en el mercado. Este indicador traza tres líneas: una línea media (que generalmente es una media móvil), una línea superior y una línea inferior que están desplazadas por un múltiplo del rango verdadero medio (ATR). A continuación, se explica el script para crear este indicador en detalle.
Configuración Inicial del Script
El script define el nombre del instrumento y los parámetros iniciales necesarios para calcular los Keltner Channels.
luaCopiar códigoinstrument { name = "Keltner Channels", overlay = true }
period = input (20, "front.period", input.integer, 1)
shift = input (5, "front.newind.offset", input.double, 0.01, 300, 0.01)
fn = input (averages.ema, "front.newind.average", input.string_selection, averages.titles)
- period: Número de períodos utilizados para calcular la media móvil y el ATR.
- shift: Factor multiplicador para desplazar las bandas superior e inferior.
- fn: Función de media móvil seleccionada, en este caso la media móvil exponencial (EMA).
Configuración de las Líneas del Indicador
Se configuran los parámetros visuales del indicador, como el color y el grosor de las líneas que se trazarán en el gráfico.
luaCopiar códigoinput_group {
"front.top line",
upper_line_visible = input { default = true, type = input.plot_visibility },
upper_line_color = input { default = "#21B190", 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(33,177,144,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 = "#21B190", 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(33,177,144,0.08), type = input.color },
}
Cálculo de los Keltner Channels
A continuación, se realiza el cálculo de la línea media, las líneas superior e inferior utilizando la media móvil y el ATR.
luaCopiar códigolocal averageFunction = averages [fn]
middle = averageFunction (hlc3, period)
offset = rma(tr, period) * shift
upper = middle + offset
lower = middle - offset
- middle: La línea media, calculada como una media móvil de los precios.
- offset: Desplazamiento calculado como el ATR multiplicado por el factor de desplazamiento.
- upper: Línea superior, calculada sumando el desplazamiento a la línea media.
- lower: Línea inferior, calculada restando el desplazamiento de la línea media.
Visualización del Indicador
Finalmente, se trazan las líneas del indicador y se rellena el área entre las líneas 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
Interpretación del Indicador
El Keltner Channels proporciona una visión clara de las tendencias y posibles puntos de reversión del mercado. Aquí algunos puntos clave para su interpretación:
- Línea Media (Middle): Actúa como una línea de referencia central, que generalmente indica la dirección de la tendencia.
- Línea Superior (Upper): Indica una posible área de sobrecompra. Si el precio toca o supera esta línea, puede ser señal de que el activo está sobrecomprado.
- Línea Inferior (Lower): Indica una posible área de sobreventa. Si el precio toca o cae por debajo de esta línea, puede ser señal de que el activo está sobrevendido.
- Relleno (Fill): El área entre las líneas superior e inferior puede ser utilizada para visualizar mejor la volatilidad y el rango de precios.
Conclusión
El indicador Keltner Channels es una herramienta versátil que puede ser utilizada para identificar tendencias, áreas de sobrecompra y sobreventa, así como para evaluar la volatilidad del mercado. Al ajustar los períodos y el factor de desplazamiento, los traders pueden adaptar este indicador a sus necesidades específicas y estrategias de trading.
Script Completo
instrument { name = "Keltner Channels", overlay = true }
period = input (20, "front.period", input.integer, 1)
shift = input (5, "front.newind.offset", input.double, 0.01, 300, 0.01)
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 = "#21B190", 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(33,177,144,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 = "#21B190", 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(33,177,144,0.08), type = input.color },
}
local averageFunction = averages [fn]
middle = averageFunction (hlc3, period)
offset = rma(tr, period) * shift
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