Requotes

 

Olá pessoal,

eu comecei recentemente a estudar o MQL5, estou desenvolvendo um Expert Advisor para Forex e estou com o seguinte problema:

2019.11.18 21:04:52.205 2019.11.13 22:24:25   requote 1.10046 / 1.10049 / 1.10046 (instant buy 0.01 EURUSD at 1.10046 sl: 1.09996 tp: 1.10096)

2019.11.18 21:04:52.205 2019.11.13 22:24:25   requote 1.10046 / 1.10049 (instant buy 0.01 EURUSD at 1.10046 sl: 1.09996 tp: 1.10096)

2019.11.18 21:04:52.205 2019.11.13 22:24:25   CTrade::OrderSend: instant buy 0.01 EURUSD at 1.10046 sl: 1.09996 tp: 1.10096 [requote (1.10046/1.10049)]


Eu consigo enviar a primeira ordem, entretanto, as ordens seguintes não são enviadas.

O fonte está em anexo.


Desde já agradeço.



Arquivos anexados:
fonte.txt  3 kb
 
crls1235:

Olá pessoal,

eu comecei recentemente a estudar o MQL5, estou desenvolvendo um Expert Advisor para Forex e estou com o seguinte problema:

2019.11.18 21:04:52.205 2019.11.13 22:24:25   requote 1.10046 / 1.10049 / 1.10046 (instant buy 0.01 EURUSD at 1.10046 sl: 1.09996 tp: 1.10096)

2019.11.18 21:04:52.205 2019.11.13 22:24:25   requote 1.10046 / 1.10049 (instant buy 0.01 EURUSD at 1.10046 sl: 1.09996 tp: 1.10096)

2019.11.18 21:04:52.205 2019.11.13 22:24:25   CTrade::OrderSend: instant buy 0.01 EURUSD at 1.10046 sl: 1.09996 tp: 1.10096 [requote (1.10046/1.10049)]


Eu consigo enviar a primeira ordem, entretanto, as ordens seguintes não são enviadas.

O fonte está em anexo.


Desde já agradeço.



Primeiro: NÃO USE ESTE CÓDIGO EM CONTA REAL.

Segundo: Informe o código de erro constante na aba diário.

 

Opa, fala Joscelino,

Sobre o primeiro ponto, tranquilo, ainda estou aprendendo, não tinha nenhuma pretensão de colocar isso em uma conta real.


Sobre o código de erro constante, eu tive conhecimento do que se tratava depois do seu comentário, eu adicionei esta função no código após a chamado do "trade.buy": GetLastError()

O código de retorno é o 4756


De acordo com a documentação: 

ERR_TRADE_SEND_FAILED: Envio de solicitação de negociação falhou 

 
crls1235:

Opa, fala Joscelino,

Sobre o primeiro ponto, tranquilo, ainda estou aprendendo, não tinha nenhuma pretensão de colocar isso em uma conta real.


Sobre o código de erro constante, eu tive conhecimento do que se tratava depois do seu comentário, eu adicionei esta função no código após a chamado do "trade.buy": GetLastError()

O código de retorno é o 4756


De acordo com a documentação: 

ERR_TRADE_SEND_FAILED: Envio de solicitação de negociação falhou 

O problema esta em seu código, Uma das hipóteses eh você não ter definido o tipo de preenchimento de ordens. Pode haver problema como volume também (não opero FX). Sugiro que vá na tentativa e erro, fazendo ajustes e  testando.

Outra ferramenta eh a funcionalidade "depurar" do Metaeditor. 

Dica para você que esta começando:

1) Olhe outros códigos no CodeBase (grande maioria foi feita para Forex);

2) Procure como usar o depurador;

3) Faca verificações de segurança ao longo do código (retorno de funções, erros, recebimento correto de dados de indicadores, etc)

4) Ao postar seu código aqui não use anexos, mas Alt+S.

$uce$$o.

Razão: