El indicador se ve así:

Se utilizaron tres tipos de construcciones gráficas para lograr este efecto visual:
- DRAW_HISTOGRAM2 ("Nivel ARRIBA");
- DRAW_LINE ("CCI");
- DRAW_HISTOGRAM2 ("Nivel ABAJO").

Datos del Indicador
- Periodo de promedio - periodo de promedio del indicador;
- Nivel ARRIBA - valor del nivel ARRIBA;
- Nivel ABAJO - valor del nivel ABAJO.
Los niveles ARRIBA y ABAJO se mostrarán de inmediato en la subventana del indicador:

Cómo Acceder a los Datos del Indicador en un Asesor Experto
El estilo DRAW_HISTOGRAM2 se basa en dos buffers del indicador, por eso vemos dos valores de Nivel ARRIBA y dos de Nivel ABAJO en la Ventana de Datos:

Estos valores corresponden a los buffers del indicador del 0 al 4 inclusive.
En el Asesor Experto, se crea un manejador del indicador usando iCustom:
//--- parámetros de entrada input int Inp_CCI_ma_period = 14; // Periodo de promedio input double Inp_CCI_LevelUP = 90; // Nivel ARRIBA input double Inp_CCI_LevelDOWN =-90; // Nivel ABAJO //--- int handle_iCustom; // variable para almacenar el manejador del indicador iCustom //+------------------------------------------------------------------+ //| Función de inicialización del Asesor Experto | //+------------------------------------------------------------------+ int OnInit() { //--- crear manejador del indicador iCCI handle_iCustom=iCustom(Symbol(),Period(),"Niveles de Color CCI",Inp_CCI_ma_period,Inp_CCI_LevelUP,Inp_CCI_LevelDOWN); //--- si el manejador no se crea if(handle_iCustom==INVALID_HANDLE) { //--- informar sobre el fallo y mostrar el código de error PrintFormat("Fallo al crear el manejador del indicador iCCI para el símbolo %s/%s, código de error %d", Symbol(), EnumToString(Period()), GetLastError()); //--- el indicador se detiene prematuramente return(INIT_FAILED); } //--- return(INIT_SUCCEEDED); }
Se asume aquí que el Niveles de Color CCI está ubicado en [carpeta de datos]\MQL5\Indicators\.
Cómo se obtienen los valores del indicador (solo los buffers 0, 2 y 4 son significativos):
//+------------------------------------------------------------------+ //| Función tick del Asesor Experto | //+------------------------------------------------------------------+ void OnTick() { //--- double level_up = iCustomGet(handle_iCustom,0,0); // buffer #0 -> BufferUpHigh double cci = iCustomGet(handle_iCustom,2,0); // buffer #2 -> BufferCCI double level_down = iCustomGet(handle_iCustom,4,0); // buffer #4 -> BufferDownLow string text="Nivel ARRIBA #0: "+DoubleToString(level_up,2)+" "+ "CCI #0: "+DoubleToString(cci,2)+" "+ "Nivel ABAJO #0: "+DoubleToString(level_down,2); Comment(text); }
En la captura de pantalla anterior, el ratón apunta a una barra con índice 0, se muestra también la "Ventana de Datos" con los datos del indicador, y se despliega la información del EA sobre los buffers 0, 2 y 4 en el gráfico.
Publicaciones relacionadas
- MetaCOT 2 CFTC ToolBox: Herramientas Esenciales para Análisis en MT4
- Mejora tu Análisis con Líneas de Cuadrícula Horizontal en Gráficos
- Líneas Verticales: Potencia tu Análisis en MetaTrader 4
- Volatilidad Estocástica: Indicador en Gráficos para MetaTrader 5
- Alertas de Señales con el Indicador Iin_MA para MetaTrader 5