Problemas com EA... Erro com o "OrderSend"

 

Caros...

Estou tentando criar um EA com base na programação que venho encontrando no site do Metatrade. No entanto estou tendo um problema persistente com o 'OrderSend'.

Sempre que eu testo na conta demo aparece a seguinte mensagem

"return value of 'OrderSend' should be checked". 

Uma outra mensagem que aparece é a seguinte

"implicit conversion from 'number' to 'string'".

Somente essas mensagens aparecem, a compilação não apresenta erros. No entanto o EA não abre posições nos testes que eu faço... Me disseram que talvez isso tenha a ver com o mercado brasileiro, que o problema não ocorreria se fosse no Forex... Eu realmente não consegui compreender os detalhes...

Em anexo segue um exemplo do arquivo "mt5" de uma EA simples que deveria abrir posição sempre que"Open[1] < Close[1]".

Alguém poderia me ajudar a fazer funcionar esse exemplo?

Abraços

Arquivos anexados:
 
Tiberio:

Caros...

Estou tentando criar um EA com base na programação que venho encontrando no site do Metatrade. No entanto estou tendo um problema persistente com o 'OrderSend'.

Sempre que eu testo na conta demo aparece a seguinte mensagem

"return value of 'OrderSend' should be checked". 

Uma outra mensagem que aparece é a seguinte

"implicit conversion from 'number' to 'string'".

Somente essas mensagens aparecem, a compilação não apresenta erros. No entanto o EA não abre posições nos testes que eu faço... Me disseram que talvez isso tenha a ver com o mercado brasileiro, que o problema não ocorreria se fosse no Forex... Eu realmente não consegui compreender os detalhes...

Em anexo segue um exemplo do arquivo "mt5" de uma EA simples que deveria abrir posição sempre que"Open[1] < Close[1]".

Alguém poderia me ajudar a fazer funcionar esse exemplo?

Abraços

Olá Tiberio,

a função OrderSend é booleana, logo, você precisa assinalar o retorno da função para uma variável e verificar o status pós envio da ordem.

Abraços,
Malacarne

 

Sobre o erro "implicit conversion from 'number' to 'string'". 


Saberia dizer qual o problema?


No meu caso estou usando a expressão:


Horas = ((string)Hora_Temp.hour + 0 + (string)Hora_Temp.min);  


Tentando concatenar a Hora e o Min, porem com um 0 caso o minuto seja menor que 10 para ficar 2 digitos.


Teria outra forma de fazer isso? Para sumir o warning?


Obrigado.

 

Olá bom dia,

acho que se vc colocar aspas no 0(zero) resolve o problema.  

Horas = ((string)Hora_Temp.hour + "0" + (string)Hora_Temp.min); 

 
Show de bola, estava com um bug aqui e esse negócio de colocar aspas no 0 funcionou para min em um robô, obrigado!
Razão: