Pessoal estou tentando enviar uma ordem pendente mas reebo o erro 4756 (...)
Ordens limitadas eu envio normalmente... o problema é mesmo a ordem pendente já com o sp e o tp.
Vcs que ja sabem mais, sabem o que esta de errado na configuração da ordem?
Vide trecho do código:
//-- declaração e inicialização do pedido e o seu resultado
MqlTradeRequest request={0};
MqlTradeResult result={0};
request.action =TRADE_ACTION_PENDING;
request.symbol =Symbol();
request.volume =1;
request.type_time = ORDER_TIME_SPECIFIED;
request.expiration = TimeCurrent() + StringToTime("00:05:00");
request.deviation=2;
request.magic = EXPERT_MAGIC; // MagicNumber da ordem
request.type =ORDER_TYPE_BUY_STOP_LIMIT;
request.stoplimit = valorGatilhoEntrada ; // vem da minha ordem ex: 65450.0
request.price = valorGatilhoEntrada + 10.0;
request.sl = valorGatilhoEntrada - sl; // meu sl ex. 65350
request.tp = valorGatilhoEntrada + tp; // meu tp ex: 65550
if(! OrderSend(request,result)){
PrintFormat("OrderSend error %d", GetLastError()); // Se não for possível enviar o pedido, exibir um código de erro
return false;
}
//--- informações sobre a operação
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
return true;
a variável result da ordem develve o motivo: 10022. Segundo o manual temos essa mensagem:
10022 TRADE_RETCODE_INVALID_EXPIRATION Data de expiração da ordem inválida na solicitação
Mas se a maneira com que eu coloquei a data de expiração nao esta correta como deveria ser? para falar que a validade da ordem é de 5 minutos?
Se puderem me ajudar agradeço muito.
Opa pessoal, Descobri a solução neste post (https://www.mql5.com/pt/forum/37445). o erro era no tipo de validade da ordem que deveria ser: ORDER_TIME_DAY.
Mas na verdade eu gostaria de usar é o ORDER_TIME_SPECIFIED_DAY, pois gostaria que minhas ordem fossem desconsideradas após um periodo.
Sugestões?
- Aplicativos de negociação gratuitos
- 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
Pessoal estou tentando enviar uma ordem pendente mas reebo o erro 4756 (...)
Ordens limitadas eu envio normalmente... o problema é mesmo a ordem pendente já com o sp e o tp.
Vcs que ja sabem mais, sabem o que esta de errado na configuração da ordem?
Vide trecho do código:
//-- declaração e inicialização do pedido e o seu resultado
MqlTradeRequest request={0};
MqlTradeResult result={0};
request.action =TRADE_ACTION_PENDING;
request.symbol =Symbol();
request.volume =1;
request.type_time = ORDER_TIME_SPECIFIED;
request.expiration = TimeCurrent() + StringToTime("00:05:00");
request.deviation=2;
request.magic = EXPERT_MAGIC; // MagicNumber da ordem
request.type =ORDER_TYPE_BUY_STOP_LIMIT;
request.stoplimit = valorGatilhoEntrada ; // vem da minha ordem ex: 65450.0
request.price = valorGatilhoEntrada + 10.0;
request.sl = valorGatilhoEntrada - sl; // meu sl ex. 65350
request.tp = valorGatilhoEntrada + tp; // meu tp ex: 65550
if(! OrderSend(request,result)){
PrintFormat("OrderSend error %d", GetLastError()); // Se não for possível enviar o pedido, exibir um código de erro
return false;
}
//--- informações sobre a operação
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
return true;
a variável result da ordem develve o motivo: 10022. Segundo o manual temos essa mensagem:
10022 TRADE_RETCODE_INVALID_EXPIRATION Data de expiração da ordem inválida na solicitação
Mas se a maneira com que eu coloquei a data de expiração nao esta correta como deveria ser? para falar que a validade da ordem é de 5 minutos?
Se puderem me ajudar agradeço muito.