Qual função se usa para mudar a cor das médias móveis inseridas em um robô?

 

Eu estou estudando a confecção de um robô de cruzamento de médias. Já consegui carregar as médias nos handles e plotar no gráfico, porém elas ficam vermelhas por padrão e eu não sei qual comando utiliza para mudar a cor.

Esse é a parte do código que trata dos buffers, arrays e da inclusão no gráfico, tudo funcionando beleza, mas não sei o que fazer pra mudar a cor das médias.

Agradeço a ajuda.

//+---------------------------------------------------------------------------------------------------------------------------------------------+
//|Atribuir valor aos Handles.                                                                                                                  |
//+---------------------------------------------------------------------------------------------------------------------------------------------+

   ima_fast_handle = iMA(_Symbol, _Period, ma_fast_period, 0, ma_fast_method, PRICE_CLOSE); //Inserir no handle os parâmetros do ativo atual, da variável ma_fast_period, deslocamento 0
                                                                                            //variável ma_fast_method e aplicar a média ao preço de fechamento.  
   if(ima_fast_handle == INVALID_HANDLE)
   {
   Print("■ Erro na criação do handle referente a média móvel rápida. Procure o suporte. ", GetLastError());  //GetLastError é uma função nativa que retorna qula foi o erro.
   return(INIT_FAILED);   
   }
   else
   {
      glInitHandle1 = true; //variável global que armazena a informação de que os valores do indicador foram atribuidos corretamente ao handle1.
   } 
     
                                                                                             
   ima_slow_handle = iMA(_Symbol, _Period, ma_slow_period, 0, ma_slow_method, PRICE_CLOSE); //Inserir no handle os parâmetros do ativo atual, da variável ma_slow_period, deslocamento 0
                                                                                            //variável ma_slow_method e aplicar a média ao preço de fechamento.  
   if(ima_slow_handle == INVALID_HANDLE)
   {
   Print("■ Erro na criação do handle referente a média móvel lenta. Procure o suporte. ", GetLastError()); //GetLastError é uma função nativa que retorna qula foi o erro.
   return(INIT_FAILED);   
   }
   else
   {
      glInitHandle2 = true; //variável global que armazena a informação de que os valores do indicador foram atribuidos corretamente ao handle2.
   }
   
 //+---------------------------------------------------------------------------------------------------------------------------------------------+
//|Função ArraySetAsSeries para o buffers                                                                                                       |
//+---------------------------------------------------------------------------------------------------------------------------------------------+
//Ao utilizar essa função eu começo a preencher os arrays dos buffers do último candle para o primeiro.

   if(!ArraySetAsSeries(ima_fast_buffer, true)) //utilizamos o ! para, além de dar o comando da função, checar se ele foi executado corretamente.
   {
      Print("■ Erro na utilização da função ArraySetAsSeries para o buffer da média rápida. Procure o suporte. ", GetLastError());
      return(INIT_FAILED);   
   }
   if(!ArraySetAsSeries(ima_slow_buffer, true)) //utilizamos o ! para, além de dar o comando da função, checar se ele foi executado corretamente.
   {
      Print("■ Erro na utilização da função ArraySetAsSeries para o buffer da média lenta. Procure o suporte. ", GetLastError());
      return(INIT_FAILED);   
   }

//+---------------------------------------------------------------------------------------------------------------------------------------------+
//|Incluir os indicadores no gráfico                                                                                                            |
//+---------------------------------------------------------------------------------------------------------------------------------------------+
// Na função ChartIndicatorAdd tem que informar o ID do grafico, no caso ChartID() quer dizer o gráfico atual
// a posição do gráfico, no caso 0 quer dizer junto aos preços, 1 significa logo abaixo do grafico, 2 logo abaixo do 1 e segue ...
// por último qual handle está sendo utilizado para montar o indicador, de onde estão vindo e quais são os dados.
   
   if(!ChartIndicatorAdd(ChartID(), 0, ima_fast_handle)) //utilizamos o ! para, além de dar o comando da função, checar se ele foi executado corretamente.
   {
   Print("■ Erro na plotagem do indicador da média rápida. Procure o suporte. ", GetLastError());
   return(INIT_FAILED);
   }
   else
   {
   Print("□ Média móvel rápida de ", ma_fast_period, " períodos carregada com sucesso.");
   glInitChart1 = true;   //variável global que armazena a informação de que os valores do handle foram carregados no grafico para formar o indicador.
   }
   
   if(!ChartIndicatorAdd(ChartID(), 0, ima_slow_handle)) ///utilizamos o ! para, além de dar o comando da função, checar se ele foi executado corretamente.
   {
   Print("■ Erro na plotagem do indicador da média lenta. Procure o suporte. ", GetLastError());
   return(INIT_FAILED);
   }
   else
   {
   Print("□ Média móvel lenta de ", ma_slow_period, " períodos carregada com sucesso.");
   glInitChart2 = true;  //variável global que armazena a informação de que os valores do handle foram carregados no grafico para formar o indicador.
   }
  
   return(INIT_SUCCEEDED);
   
 }
 
simonbm:

Eu estou estudando a confecção de um robô de cruzamento de médias. Já consegui carregar as médias nos handles e plotar no gráfico, porém elas ficam vermelhas por padrão e eu não sei qual comando utiliza para mudar a cor.

Esse é a parte do código que trata dos buffers, arrays e da inclusão no gráfico, tudo funcionando beleza, mas não sei o que fazer pra mudar a cor das médias.

Agradeço a ajuda.

Olá,

em um EA não é permitido usar comandos projetados para indicadores.  O comando que você busca é IndicatorSetInteger(), mas não pode ser usado em um EA.  Talvez algum escovador de bit possa ter feito uma gambiarra, mas eu desconheço.

 
simonbm:

Eu estou estudando a confecção de um robô de cruzamento de médias. Já consegui carregar as médias nos handles e plotar no gráfico, porém elas ficam vermelhas por padrão e eu não sei qual comando utiliza para mudar a cor.

Esse é a parte do código que trata dos buffers, arrays e da inclusão no gráfico, tudo funcionando beleza, mas não sei o que fazer pra mudar a cor das médias.

Agradeço a ajuda.

Crie um indicador com as suas 2 médias, com as cores que vc quiser, e depois chame no seu EA via iCustom().

Razão: