Qual função me retorna a existência de uma ordem já enviada e que ainda não foi executada

 
Pessoal, eu já li o PDF mql5 , mas não consegui esclarecimento sobre o processo que me informa sobre a existência de uma ordem
Na minha lógica de programação eu não quero que se abram novas ordens se eu já tiver uma aguardando a execução(sei que existem diferentes modos de execução (preenchimento) de ordem) ou se ainda não foi cancelada.
 
williansantoa:
Pessoal, eu já li o PDF mql5 , mas não consegui esclarecimento sobre o processo que me informa sobre a existência de uma ordem
Na minha lógica de programação eu não quero que se abram novas ordens se eu já tiver uma aguardando a execução(sei que existem diferentes modos de execução (preenchimento) de ordem) ou se ainda não foi cancelada.

Bom, isso vai te ajudar;


bool DoExisteOrdem()
  {
   bool ret=false;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(OrderGetTicket(i)))
         if(OrderGetString(ORDER_SYMBOL)==_Symbol
            && OrderGetInteger(ORDER_MAGIC)==MagicNumber)
           {
            Ticket=OrderGetInteger(ORDER_TICKET);
            ret=true;
            break;
           }
     }
   return(ret);
  }
 
Rogerio Giannetti Torres:

Bom, isso vai te ajudar;


Olá !! Então quer dizer que a função orderstotal me passa o número de ordens que estão aguardando execução ou cancelamento , certo??
 
williansantoa:
Olá !! Então quer dizer que a função orderstotal me passa o número de ordens que estão aguardando execução ou cancelamento , certo??

Sim, William. Quando uma ordem é totalmente executada, ela some do OrdersTotal() e se torna uma "position" (ou o volume executado se soma à "position" já existente, caso seja uma conta netting e vc já tenha posição no mesmo ativo).

obs: se ela for apenas parcialmente executada, ela ainda continua no OrdersTotal() com status ORDER_STATE_PARTIAL e o volume parcial que foi executado se torna "position" (ou se soma à posição previamente existente do mesmo ativo, se for conta netting).

 
williansantoa:
Pessoal, eu já li o PDF mql5 , mas não consegui esclarecimento sobre o processo que me informa sobre a existência de uma ordem
Na minha lógica de programação eu não quero que se abram novas ordens se eu já tiver uma aguardando a execução(sei que existem diferentes modos de execução (preenchimento) de ordem) ou se ainda não foi cancelada.
OrdersTotal() mostra as ordens Que não foram excutadas
PositionsTotal() as ordens em aberto, as posicionadas...

Razão: