Erro na data de expiração
Olá amigos
estou encontrando um problema no meu codigo quando rodo ele na conta real(na conta Demo esta ok e no backtest tambem)
Quando tento realizar uma compra ou venda o código retorna um erro: TRADE_RETCODE_INVALID_EXPIRATION que significa algum erro na Data de Expiração
Ja alterei o codigo diversas vezes mas o erro persiste.
ativo:WDOM19
corretora: Modal
Codigo:
Muito obrigado
Como você preencheu a variável "pExpiration"?
Sugiro também alterar o tipo de preenchimento de ordens de "FOK" para "RETURN" e efetuar um teste.
[ ]´s
Olá CaioVitullo
Note que apesar de funcionar em ambiente emulado, como você refere, no mundo real e servidor MT5 real, essa programação poderá depender de outros sistemas, como as regras de negócio do servidor OMS e gerais da corretora.
Como o problema está na data de expiração da ordem inválida na solicitação, recomendo você verificar melhor o código abaixo, principalmente o valor da variável pExpiration quando > 0.
if(pExpiration > 0) { request.expiration = pExpiration; request.type_time =ORDER_TIME_SPECIFIED; } else request.type_time = ORDER_TIME_GTC;
Em https://www.mql5.com/pt/docs/constants/tradingconstants/orderproperties você encontra mais detalhes sobre esse ajuste (procure por ENUM_ORDER_TYPE_TIME), caso já não tenha conhecimento.
Sds.,
Rogério Figurelli

- www.mql5.com
Como você preencheu a variável "pExpiration"?
Sugiro também alterar o tipo de preenchimento de ordens de "FOK" para "RETURN" e efetuar um teste.
[ ]´s
Olá Joscelino Celso de Oliveira, respondemos exatamente no mesmo momento, mas você foi mais rápido (apenas um segundo de diferença) e acredito que (o mais relevante) mais preciso, pois eu também suspeitaria da política de preenchimento como causa do problema (no caso ENUM_ORDER_TYPE_FILLING no documento que passei).
Sds.,
Rogério Figurelli
Olá CaioVitullo
Note que apesar de funcionar em ambiente emulado, como você refere, no mundo real e servidor MT5 real, essa programação poderá depender de outros sistemas, como as regras de negócio do servidor OMS e gerais da corretora.
Como o problema está na data de expiração da ordem inválida na solicitação, recomendo você verificar melhor o código abaixo, principalmente o valor da variável pExpiration quando > 0.
Em https://www.mql5.com/pt/docs/constants/tradingconstants/orderproperties você encontra mais detalhes sobre esse ajuste (procure por ENUM_ORDER_TYPE_TIME), caso já não tenha conhecimento.
Sds.,
Rogério Figurelli
Olá CaioVitullo
Apenas como recomendação complementar de segurança, sugiro também teres bastante cuidado com esse loop abaixo, uma vez que sequer é feita uma verificação da ordem e os riscos são altos de o robô realmente entrar em loop enviando ordens:
// Order loop int retryCount = 0; int checkCode = 0; do { bool sent = OrderSend(request,result); checkCode = CheckReturnCode(result.retcode);
Nesse sentido, recomendo você remover esse loop e utilizar a função OrderCheck antes da OrderSend, o que irá facilitar também a identificação de problemas antes do envio da ordem, o que é fundamental no mundo real.
Por fim, como você já está partindo para uso desse código e operação em conta real, sugiro, antes disso, ler o tópico em https://www.mql5.com/pt/forum/23409 com outros cuidados similares.
Sds.,
Rogério Figurelli

- 2014.04.23
- www.mql5.com
Olá Joscelino Celso de Oliveira, respondemos exatamente no mesmo momento, mas você foi mais rápido (apenas um segundo de diferença) e acredito que (o mais relevante) mais preciso, pois eu também suspeitaria da política de preenchimento como causa do problema (no caso ENUM_ORDER_TYPE_FILLING no documento que passei).
Sds.,
Rogério Figurelli
Grande @Rogerio Figurelli,
Grato pelas colocações.
Minha recomendação em relação ao preenchimento de ordens vem de experiencia própria.
Espero ter contribuído ao colega.
[ ]'s
Grande @Rogerio Figurelli,
Grato pelas colocações.
Minha recomendação em relação ao preenchimento de ordens vem de experiencia própria.
Espero ter contribuído ao colega.
[ ]'s

- Aplicativos de negociação gratuitos
- VPS Forex grátis por 24 horas
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Olá amigos
estou encontrando um problema no meu codigo quando rodo ele na conta real(na conta Demo esta ok e no backtest tambem)
Quando tento realizar uma compra ou venda o código retorna um erro: TRADE_RETCODE_INVALID_EXPIRATION que significa algum erro na Data de Expiração
Ja alterei o codigo diversas vezes mas o erro persiste.
ativo:WDOM19
corretora: Modal
Codigo:
Muito obrigado