Los Canales de Donchian son una herramienta técnica utilizada para identificar el rango de precios en el que se ha movido un activo durante un período de tiempo específico. Este indicador se compone de tres líneas: la línea superior, la línea inferior y la línea media. El objetivo de este indicador es ayudar a los traders a identificar posibles puntos de ruptura y reversión en el mercado.
Configuración Inicial del Script
El script comienza definiendo el nombre del instrumento y el período utilizado para calcular los Canales de Donchian.
luaCopiar códigoinstrument { name = "Donchian Channels", overlay = true }
period = input (20, "front.period", input.integer, 1, 200)
- period: El número de períodos utilizado para calcular los valores más altos y más bajos. El valor predeterminado es 20.
Configuración de las Líneas
A continuación, se configuran los grupos de entrada para determinar la visibilidad, el color y el ancho de cada una de las líneas del canal: la línea superior, la línea media y la línea inferior.
luaCopiar códigoinput_group {
"front.top line",
upper_line_visible = input { default = true, type = input.plot_visibility },
upper_line_color = input { default = "#2384C2", 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 = "#FF7700", 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 = "#2384C2", type = input.color },
lower_line_width = input { default = 1, type = input.line_width }
}
Configuración del Relleno del Canal
También se configura un grupo de entrada para determinar si se debe rellenar el área entre las líneas superior e inferior, y el color del relleno.
luaCopiar códigoinput_group {
"front.newind.adx.fill",
fill_visible = input { default = true, type = input.plot_visibility },
fill_color = input { default = rgba(35,132,194,0.08), type = input.color },
}
Cálculo de las Líneas del Canal
El script calcula las líneas superior, media e inferior utilizando las funciones highest
y lowest
para determinar los valores más altos y más bajos dentro del período especificado.
luaCopiar códigoupper = highest (high, period)
lower = lowest (low, period)
middle = (upper + lower) / 2
- upper: El precio más alto alcanzado durante el período.
- lower: El precio más bajo alcanzado durante el período.
- middle: El promedio de las líneas superior e inferior.
Visualización de las Líneas y el Relleno
Finalmente, el script dibuja las líneas y el relleno en el gráfico si están configurados como visibles.
luaCopiar códigoif fill_visible then
fill { first = upper, second = lower, color = fill_color }
end
if upper_line_visible then
plot (upper, "front.top line", upper_line_color, upper_line_width)
end
if lower_line_visible then
plot (lower, "front.bottom line", lower_line_color, lower_line_width)
end
if middle_line_visible then
plot (middle, "front.middle line", middle_line_color, middle_line_width)
end
- fill: Rellena el área entre las líneas superior e inferior con el color especificado.
- plot: Dibuja las líneas superior, media e inferior en el gráfico con el color y el grosor especificados.
Conclusión
Los Canales de Donchian son una herramienta útil para identificar niveles clave de soporte y resistencia, así como posibles puntos de ruptura en el mercado. Al visualizar el rango de precios en el que se ha movido un activo durante un período específico, los traders pueden tomar decisiones más informadas sobre sus operaciones. Este indicador es especialmente útil en mercados volátiles, donde los precios tienden a moverse rápidamente dentro de un rango definido.
Script Completo
instrument { name = "Donchian Channels", overlay = true }
period = input (20, "front.period", input.integer, 1, 200)
input_group {
"front.top line",
upper_line_visible = input { default = true, type = input.plot_visibility },
upper_line_color = input { default = "#2384C2", 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 = "#FF7700", 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 = "#2384C2", 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(35,132,194,0.08), type = input.color },
}
upper = highest (high, period)
lower = lowest (low, period)
middle = (upper + lower) / 2
if fill_visible then
fill { first = upper, second = lower, color = fill_color }
end
if upper_line_visible then
plot (upper, "front.top line", upper_line_color, upper_line_width)
end
if lower_line_visible then
plot (lower, "front.bottom line", lower_line_color, lower_line_width)
end
if middle_line_visible then
plot (middle, "front.middle line", middle_line_color, middle_line_width)
end