ordem não é executada com o valor informado no MqlTradeRequest.price

 

Estou tentando enviar uma ordem em uma conta demo da Clear mas ela não é executada com o valor informado MqlTradeRequest.price, sempre é executada com o ultimo valor negociado. Meu código é o seguinte

//--- Atualização e inicialização do pedido e o seu resultado
   MqlTradeRequest request={0};
   MqlTradeResult  result={0};
//--- parâmetros do pedido
   request.action   =TRADE_ACTION_DEAL;                    
   request.symbol   ="VALE5";                              
   request.volume   =100;                                  
   request.type     =ORDER_TYPE_BUY;                        
   request.price    =28;
   request.deviation=0;                                    
   request.magic    =EXPERT_MAGIC;                          
//--- envio do pedido
   if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());    
//--- informação sobre a operação
   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);


Estou iniciando então não sei se estou usando o tipo de ordem errada.

 

Welbson, boa noite!

 Talvez usando ordem pendente e não a mercado resolva, veja os tipos na documentação https://www.mql5.com/pt/docs/constants/tradingconstants/enum_trade_request_actions.

 Abraço,

Daniel