Trava quando utilizo 3 médias móveis.

 

Estou criando um serviço no MQL5 e percebi que quando coloco mais de duas médias moveis, trava no CopyBuffer.

Tem alguma forma de trabalhar com mais de duas médias sem dar problema?


         mm_17_Handle = iMA(ativo,mm_tempo_grafico,17,0,mm_metodo,mm_preco);

         mm_72_Handle = iMA(ativo,mm_tempo_grafico,72,0,mm_metodo,mm_preco);

         mm_305_Handle = iMA(ativo,mm_tempo_grafico,305,0,mm_metodo,mm_preco);

         if(mm_17_Handle<0 || mm_72_Handle<0 || mm_305_Handle<0){

            Alert("Erro ao tentar criar Handles para o indicador - erro: ",GetLastError(),"!");

            break;

         }

         

         //--- Alimentar Buffers das Velas com dados:

         CopyRates(ativo,mm_tempo_grafico,0,1,velas);   


         // Copiar um vetor de dados tamanho três para o vetor mm_Buffer

         CopyBuffer(mm_17_Handle,0,0,3,mm_17_Buffer);

         CopyBuffer(mm_72_Handle,0,0,3,mm_72_Buffer);

         CopyBuffer(mm_305_Handle,0,0,3,mm_305_Buffer);



         // Ordenar o vetor de dados:

         ArraySetAsSeries(velas,true);

         ArraySetAsSeries(mm_17_Buffer,true);

         ArraySetAsSeries(mm_72_Buffer,true);

         ArraySetAsSeries(mm_305_Buffer,true);

 
Fabiano Dias:

Estou criando um serviço no MQL5 e percebi que quando coloco mais de duas médias moveis, trava no CopyBuffer.

Tem alguma forma de trabalhar com mais de duas médias sem dar problema?


         mm_17_Handle = iMA(ativo,mm_tempo_grafico,17,0,mm_metodo,mm_preco);

         mm_72_Handle = iMA(ativo,mm_tempo_grafico,72,0,mm_metodo,mm_preco);

         mm_305_Handle = iMA(ativo,mm_tempo_grafico,305,0,mm_metodo,mm_preco);

         if(mm_17_Handle<0 || mm_72_Handle<0 || mm_305_Handle<0){

            Alert("Erro ao tentar criar Handles para o indicador - erro: ",GetLastError(),"!");

            break;

         }

         

         //--- Alimentar Buffers das Velas com dados:

         CopyRates(ativo,mm_tempo_grafico,0,1,velas);   


         // Copiar um vetor de dados tamanho três para o vetor mm_Buffer

         CopyBuffer(mm_17_Handle,0,0,3,mm_17_Buffer);

         CopyBuffer(mm_72_Handle,0,0,3,mm_72_Buffer);

         CopyBuffer(mm_305_Handle,0,0,3,mm_305_Buffer);



         // Ordenar o vetor de dados:

         ArraySetAsSeries(velas,true);

         ArraySetAsSeries(mm_17_Buffer,true);

         ArraySetAsSeries(mm_72_Buffer,true);

         ArraySetAsSeries(mm_305_Buffer,true);

Não sei o que você quer dizer com "serviço", mas a dica é, NUNCA confie no sucesso das operações.

Éisto que define um Indicador ou Expert Advisro minimamente seguro.

Você não está checando o sucesso de nenhuma das operações... Portanto, você está voando às cegas...

;)

Razão: