O indicador Níveis de Cor do CCI é visualmente impactante e pode ser muito útil na sua análise. Veja como ele se apresenta:

Para criar esse efeito visual, foram utilizadas três construções gráficas:
- DRAW_HISTOGRAM2 ("Nível UP");
- DRAW_LINE ("CCI");
- DRAW_HISTOGRAM2 ("Nível DOWN").

Configurações do Indicador
- Período de Média - período de média do indicador;
- Nível UP - valor do nível UP;
- Nível DOWN - valor do nível DOWN.
Os níveis UP e DOWN serão exibidos imediatamente na subjanela do indicador:

Como Acessar os Dados do Indicador em um Sistema de Trading
O estilo DRAW_HISTOGRAM2 é baseado em dois buffers do indicador, por isso vemos dois valores para o Nível UP e dois valores para o Nível DOWN na Janela de Dados:

Esses valores correspondem aos buffers do indicador de 0 a 4, inclusive.
No seu Sistema de Trading, você cria um handle do indicador usando iCustom:
//--- parâmetros de entrada input int Inp_CCI_ma_period = 14; // Período de média input double Inp_CCI_LevelUP = 90; // Nível UP input double Inp_CCI_LevelDOWN =-90; // Nível DOWN //--- int handle_iCustom; // variável para armazenar o handle do indicador iCustom //+------------------------------------------------------------------+ //| Função de inicialização do Expert | //+------------------------------------------------------------------+ int OnInit() { //--- criar handle do indicador iCCI handle_iCustom=iCustom(Symbol(),Period(),"Níveis de Cor do CCI",Inp_CCI_ma_period,Inp_CCI_LevelUP,Inp_CCI_LevelDOWN); //--- se o handle não for criado if(handle_iCustom==INVALID_HANDLE) { //--- informa sobre a falha e exibe o código de erro PrintFormat("Falha ao criar handle do indicador iCCI para o símbolo %s/%s, código de erro %d", Symbol(), EnumToString(Period()), GetLastError()); //--- o indicador é parado prematuramente return(INIT_FAILED); } //--- return(INIT_SUCCEEDED); }
Aqui, vamos assumir que o indicador Níveis de Cor do CCI está localizado na pasta [data folder]\MQL5\Indicators\.
Para obter os valores do indicador (apenas os buffers 0, 2 e 4 são significativos):
//+------------------------------------------------------------------+ //| Função de tick do Expert | //+------------------------------------------------------------------+ 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="Nível UP #0: "+DoubleToString(level_up,2)+"\n"+ "CCI #0: "+DoubleToString(cci,2)+"\n"+ "Nível DOWN #0: "+DoubleToString(level_down,2); Comment(text); }
No screenshot acima, o mouse aponta para uma barra com o índice 0, e a "Janela de Dados" com os dados do indicador também é mostrada, juntamente com as informações do EA sobre os buffers 0, 2 e 4 exibidas no gráfico.
Publicações relacionadas
- Calendário Econômico: Monitoramento e Cache para Testes de Estratégia no MetaTrader 5
- Buffers Horários para Coleta de Dados no MetaTrader 5
- Utilitário de Informações de Séries e Taxas para MetaTrader 5: Maximize Seu Trading
- Utilitário de Informações de Barras e Taxas: Como Usar no MetaTrader 5
- Níveis Históricos: O Indicador Essencial para MetaTrader 5