- DRAW_NONE
- DRAW_LINE
- DRAW_SECTION
- DRAW_HISTOGRAM
- DRAW_HISTOGRAM2
- DRAW_ARROW
- DRAW_ZIGZAG
- DRAW_FILLING
- DRAW_BARS
- DRAW_CANDLES
- DRAW_COLOR_LINE
- DRAW_COLOR_SECTION
- DRAW_COLOR_HISTOGRAM
- DRAW_COLOR_HISTOGRAM2
- DRAW_COLOR_ARROW
- DRAW_COLOR_ZIGZAG
- DRAW_COLOR_BARS
- DRAW_COLOR_CANDLES
DRAW_COLOR_LINE
El estilo DRAW_COLOR_LINE es la versión en color del estilo DRAW_LINE. Éste también traza una línea según los valores del búfer indicador. Pero este estilo, igual que todos los estilos de color en cuyo nombre figura COLOR, cuenta con un especial búfer indicador adicional que guarda el índice (número) del color desde un especial array de colores. De esta manera, se puede definir el color de cada sección de la línea indicando el índice del color que debe adquirir la línea en una barra en concreto.
Usted puede establecer el grosor, color y el estilo de la línea tanto con las directivas del compilador, como de forma dinámica, utilizando la función PlotIndexSetInteger(). La opción del cambio dinámico de las propiedades de la construcción gráfica permite crear indicadores "vivos", es decir, los que cambian su apariencia en función de la situación actual.
El número de búfers requeridos para construir DRAW_COLOR_LINE 2:
- un búfer para almacenar los valores del indicador a base de los cuales se traza la línea;
- un búfer para almacenar el índice de color con el que se traza la línea en cada barra.
Se puede definir los colores con la directiva del compilador #property indicator_color1, separados por coma. El número de colores no puede superar 64.
//--- estableceremos 5 colores para colorear cada barra (se almacenan en un array especial)
|
Aquí tenemos un ejemplo del indicador que traza una línea usando los precios de cierre de las barras Close. El grosor y el estilo de la línea se cambian de forma aleatoria cada N=5 tics.
Los colores para los segmentos de la línea también se cambian aleatoriamente en la función personalizada ChangeColors().
//+------------------------------------------------------------------+
|
En el ejemplo se muestra una particularidad propia de las versiones "de colores" de los indicadores para cambiar el color de un segmento de la línea no hace falta cambiar los valores en el búfer ColorLineColors[] (que almacena los índices de colores). Basta con definir nuevos colores en un array especial. Esto permite cambiar rápidamente el color para toda la construcción gráfica, modificando únicamente un pequeño array de colores a través de la función PlotIndexSetInteger().
Fíjense que inicialmente para la construcción gráfica plot1 con el estilo DRAW_COLOR_LINE las propiedades se establecen mediante la directiva del compilador #property, y luego en la función OnCalculate() estas tres propiedades se establecen de forma aleatoria.
Los parámetros N y Length (longitud de los segmentos coloreados de la barra) están sacados a los parámetros externos del indicador para que exista la posibilidad de establecerlo manualmente (pestaña "Parámetros" en la ventana de propiedades del indicador).
//+------------------------------------------------------------------+
|