Descripción del indicador.
En una publicación previa decíamos que el indicador «Standard Error Channel Color», a diferencia del «Standard Dev Channel Color», se toma la dispersión media de los precios en torno a la recta de regresión ajustada; es decir, no considera los precios directamente, sino que recurre al error estándar. Pues bien, este indicador que hemos llamado «Multi Standard Error Channel Color» se basa en el mismo principio, solo que agregamos tres canales para que el usuario pueda analizar el gráfico del precio para diferentes números de barras y de desviaciones estándar. La teoría subyacente ya fue explicada, pero vale recordar que parte de la premisa de que los precios siguen una distribución normal, cuestión que es poco precisa y que fue la causante del fracaso del modelo Black-Scholes-Merton para «valorar» opciones, por decir lo menos.
El usuario debe ser consciente de que, al usar este indicador, si bien supera el problema de la subjetividad de las líneas de tendencia, no le exime de cometer errores creyendo que, porque tiene una teoría matemática subyacente, es infalible. En efecto, vale más saber usar bien las líneas y canales de tendencia que engañarse creyendo que este indicador es especial solo por basarse en funciones de probabilidad.
Explicación del código.
Bloque 5-14: Definimos los inputs de las variables de entrada del sistema, dividiendo el código en tres bloques semejantes, pues deben ser independientes para que el usuario pueda configurarlo todo desde la ventana de estudios actuales en Thinkorswim®, o desde la configuración de los indicadores actuales de TradingView®, sin tocar una sola línea de código. La variable fullRange# señala el valor lógico de cierto o verdadero para considerar todas o solo una parte de los precios en la graficación del canal.
Bloque 16-42: Este código, aunque complicado, simplemente es un condicional replicado en tres bloques que permite calcular el canal basado en todos o solo en una parte de los precios. En efecto, es el bloque de código necesario para que nuestra variable fullRange# pueda ser funcional al elegir su valor al principio.
Bloque 44-52: Con este código especificamos que cada uno de los tres canales sea graficado con independencia de los otros. Observamos que al dibujar el canal de regresión de los errores se sigue el mismo procedimiento que con el canal de regresión estándar; no obstante, aquí estamos usando la función preconstruida StErrAll. Esta simple función tuvo que ser construida desde cero en PineScript, tomando como base las fórmulas y códigos relacionados. Es bastante evidente el ahorro de tiempo y esfuerzo que permiten este tipo de funciones.
Bloque 54-75: En esta sección es donde más cobra fuerza la separación de cada uno de los tres bloques de código, uno para cada canal, pues las configuraciones de los colores son únicas en cada canal, de modo que el usuario puede modificarlos directamente en la ventana emergente, sin necesidad de recurrir al código cada vez que pretenda hacerlo. En la primera parte se asigna el color y el estilo de cada línea del canal como atributo; en la segunda parte se definen los colores de relleno como colores globales, y finalmente se usa la función AddCloud para que cada color de relleno siga una condicionante lógica, en lugar de colorear espacios sin una lógica clara.
Bloque 77-82: Para concluir, agregamos tres pares de alertas independientes, un par para cada que el precio cruce la línea superior o inferior de cada canal. La estructura de la función para agregar la alerta puede resultar ya bastante clara para quien ha consultado los indicadores previos, pues se basa en la condición lógica de activación, seguida del texto que muestra al activarse, de la ubicación de la alerta en los datos del precio y del tipo de sonido que se escucha al activarse.