Erro 4756 ao enviar ordens tipo ORDER_TYPE_BUY_STOP_LIMIT

 

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. 

 
jhonatan.morais:

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? 

Problema com Data de Expiração da Ordem
Problema com Data de Expiração da Ordem
  • www.mql5.com
Fórum de Traders da Comunidade MQL5
Razão: