Função OnInit Retorna código zero

 

estou utilizando o mesmo formato de criar os manipuladores dos indicadores, porém está retornando o código zero, que pelo manual da plataforma significa " A operação concluída com sucesso " 

Alguém sabe me dizer por que não está criando os manipuladores? É uma estratégia multimoeda, então criei manipuladores para múltiplos pares. no momento da execução do código ele baixa os ticks, chama os pares certinho, porém não chama os indicadores pelo manipulador. segue o código abaixo:

sinput string s1; //----------- Médias Móveis EUR/USD Gatilho -------------
input int mm_eurusd_rapida_periodo                = 09;            // Periodo Média Rápida
input int mm_eurusd_lenta_periodo                 = 33;            // Periodo Média Lenta
input ENUM_TIMEFRAMES mmeurusd_h1                 = PERIOD_H1;     // Tempo Gráfico
input ENUM_MA_METHOD  mm_eurusd_metodo            = MODE_EMA;      // Método 
input ENUM_APPLIED_PRICE  mm_eurusd_preco         = PRICE_CLOSE;   // Preço Aplicado 

sinput string s2; //------------- Médias móveis de Confirmação H4 --------------
input int mm_rapida_h4                            = 33;       // período média rápida H4
input int mm_lenta_h4                             = 88;       // período média lenta H4
input ENUM_TIMEFRAMES mm_conf_h4                  = PERIOD_H4;     // Tempo Gráfico
input ENUM_MA_METHOD  mm_conf_metodo              = MODE_EMA;      // Método 
input ENUM_APPLIED_PRICE  mm_conf_preco           = PRICE_CLOSE;   // Preço Aplicado 



//---
//+------------------------------------------------------------------+
//|  Variáveis para os indicadores                                   |
//+------------------------------------------------------------------+
//--- Médias Móveis EURUSD
// RÁPIDA - EURUSD menor período
int mm_eurusd_rapida_Handle;      // Handle controlador da média móvel rápida
double mm_eurusd_rapida_Buffer[]; // Buffer para armazenamento dos dados das médias

// LENTA - EURUSD maior período
int mm_eurusd_lenta_Handle;      // Handle controlador da média móvel lenta
double mm_eurusd_lenta_Buffer[]; // Buffer para armazenamento dos dados das médias


//--- Médias Móveis EURGBP
// RÁPIDA - EURGBP menor período
int mm_eurgbp_rapida_Handle;      // Handle controlador da média móvel rápida
double mm_eurgbp_rapida_Buffer[]; // Buffer para armazenamento dos dados das médias

// LENTA - EURGBP maior período
int mm_eurgbp_lenta_Handle;      // Handle controlador da média móvel lenta
double mm_eurgbp_lenta_Buffer[]; // Buffer para armazenamento dos dados das médias

//--- Médias Móveis EURJPY
// RÁPIDA - EURJPY menor período
int mm_eurjpy_rapida_Handle;      // Handle controlador da média móvel rápida
double mm_eurjpy_rapida_Buffer[]; // Buffer para armazenamento dos dados das médias

// LENTA - EURJPY maior período
int mm_eurjpy_lenta_Handle;      // Handle controlador da média móvel lenta
double mm_eurjpy_lenta_Buffer[]; // Buffer para armazenamento dos dados das médias

//--- Médias Móveis GBPUSD
// RÁPIDA - GBPUSD menor período
int mm_gbpusd_rapida_Handle;      // Handle controlador da média móvel rápida
double mm_gbpusd_rapida_Buffer[]; // Buffer para armazenamento dos dados das médias

// LENTA - gbpusd maior período
int mm_gbpusd_lenta_Handle;      // Handle controlador da média móvel lenta
double mm_gbpusd_lenta_Buffer[]; // Buffer para armazenamento dos dados das médias

//--- Médias Móveis USDJPY
// RÁPIDA - usdjpy menor período
int mm_usdjpy_rapida_Handle;      // Handle controlador da média móvel rápida
double mm_usdjpy_rapida_Buffer[]; // Buffer para armazenamento dos dados das médias

// LENTA - usdjpy maior período
int mm_usdjpy_lenta_Handle;      // Handle controlador da média móvel lenta
double mm_usdjpy_lenta_Buffer[]; // Buffer para armazenamento dos dados das médias


//+------------------------------------------------------------------+
//| Variáveis para as funçoes                                        |
//+------------------------------------------------------------------+

int magic_number = 123456;   // Nº mágico do robô

MqlRates velas[];            // Variável para armazenar velas
MqlTick tick;                // variável para armazenar ticks 

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   mm_eurusd_rapida_Handle = iMA("EURUSD", mmeurusd_h1,mm_eurusd_rapida_periodo,0,mm_eurusd_metodo,mm_eurusd_preco);
   mm_eurusd_lenta_Handle  = iMA("EURUSD",mmeurusd_h1,mm_eurusd_lenta_periodo,0,mm_eurusd_metodo,mm_eurusd_preco);
   
   mm_eurgbp_rapida_Handle = iMA("EURGBP",mm_conf_h4,mm_rapida_h4,0,mm_conf_metodo,mm_conf_preco);
   mm_eurgbp_lenta_Handle  = iMA("EURGBP",mm_conf_h4,mm_lenta_h4,0,mm_conf_metodo,mm_conf_preco);
   
   mm_eurjpy_rapida_Handle = iMA("EURJPY",mm_conf_h4,mm_rapida_h4,0,mm_conf_metodo,mm_conf_preco);
   mm_eurjpy_lenta_Handle  = iMA("EURJPY",mm_conf_h4,mm_lenta_h4,0,mm_conf_metodo,mm_conf_preco);
   
   mm_gbpusd_rapida_Handle = iMA("GBPUSD",mm_conf_h4,mm_rapida_h4,0,mm_conf_metodo,mm_conf_preco);
   mm_gbpusd_lenta_Handle  = iMA("GBPUSD",mm_conf_h4,mm_lenta_h4,0,mm_conf_metodo,mm_conf_preco);
   
   mm_usdjpy_rapida_Handle = iMA("USDJPY",mm_conf_h4,mm_rapida_h4,0,mm_conf_metodo,mm_conf_preco);
   mm_usdjpy_lenta_Handle  = iMA("USDJPY",mm_conf_h4,mm_lenta_h4,0,mm_conf_metodo,mm_conf_preco);
   
   
   if( mm_eurusd_rapida_Handle <0 || mm_eurusd_lenta_Handle <0 || 
       mm_eurgbp_rapida_Handle <0 || mm_eurgbp_lenta_Handle <0 ||  
       mm_eurjpy_rapida_Handle <0 || mm_eurjpy_lenta_Handle <0 || 
       mm_gbpusd_rapida_Handle <0 || mm_gbpusd_lenta_Handle <0 || 
       mm_usdjpy_rapida_Handle <0 || mm_usdjpy_lenta_Handle <0 );
     {
      Alert("Erro ao tentar criar Handles para o indicador - erro: ",GetLastError(),"!");
      return(-1);
     }
   
   CopyRates(_Symbol,_Period,0,10,velas);
   ArraySetAsSeries(velas,true);
   
  

   
//---
   return(INIT_SUCCEEDED);
  }
 
Antonio Marcos Ramos:

estou utilizando o mesmo formato de criar os manipuladores dos indicadores, porém está retornando o código zero, que pelo manual da plataforma significa " A operação concluída com sucesso " 

Alguém sabe me dizer por que não está criando os manipuladores? É uma estratégia multimoeda, então criei manipuladores para múltiplos pares. no momento da execução do código ele baixa os ticks, chama os pares certinho, porém não chama os indicadores pelo manipulador. segue o código abaixo:

Bom dia.

1) Retire o ponto e virgula fora do lugar.

  mm_usdjpy_rapida_Handle <0 || mm_usdjpy_lenta_Handle <0 );

2) Todos os instrumentos devem estar na lista de observação de mercado.

 
Rogerio Giannetti Torres:

Bom dia.

1) Retire o ponto e virgula fora do lugar.

2) Todos os instrumentos devem estar na lista de observação de mercado.

bah que erro de amador esse meu. kkkkk muito obrigado seu Rogério. um abraço!