Ordem não é removida após tempo de expiração

 
datetime expiration = TimeCurrent() + PeriodSeconds(PERIOD_M10);
                                
	trade.BuyStop
             (
               1, 
               100770, 
               Symbol(),
               0,
               0,
               ORDER_TIME_SPECIFIED,
               expiration,
               "Compra"
             );
             
             Comment("Datetime é: "+expiration);

Configurei uma ordem BuyStop que foi pendurada 11:30 e coloquei para expirar em 10 minutos. Mas a ordem não é removida e continua pendente no gráfico.

Segue o código e uma foto mostrando que a ordem não foi removida.

Arquivos anexados:
expiration.png  22 kb
 
moslley:

Configurei uma ordem BuyStop que foi pendurada 11:30 e coloquei para expirar em 10 minutos. Mas a ordem não é removida e continua pendente no gráfico.

Segue o código e uma foto mostrando que a ordem não foi removida.

moslley,

Eu não ou conseguir te ajudar com a "expiração" da ordem porque não utilizei. Mas tenho a mesma necessidade que a sua e resolvi 100% de outra forma.

Em vez de eu colocar o "vencimento" da ordem eu coloco um condicional no meu OnTimer() para que, tipo no seu exemplo de 10 em 10 minutos ele faça a "limpa" nas Ordens abertas, exemplo:

EventSetTimer(10);
OnTimer()
{
      if(!SemOrdem())
         PendingOrderDelete();
}
//INI: SemOrdem
bool SemOrdem()
{
   if(OrdersTotal()>0)
      return false;
   else
      return true;
}
//FIM: SemOrdem

void PendingOrderDelete()
{
   int o_total=OrdersTotal();
   for(int j=o_total-1; j>=0; j--)
   {
      ulong o_ticket = OrderGetTicket(j);
      if(o_ticket != 0)
      {
         // delete the pending order
         negocio.OrderDelete(o_ticket);
//         Print("Ordens não realizadas foram excluídas.");
      }
   }
}
 
moslley:

Configurei uma ordem BuyStop que foi pendurada 11:30 e coloquei para expirar em 10 minutos. Mas a ordem não é removida e continua pendente no gráfico.

Segue o código e uma foto mostrando que a ordem não foi removida.

Tem corretoras que não aceitam expiração de Ordens case se esteja operando Day Trade/Futuros. Não sei esse é o seu caso.

Independente dos modos que as corretoras usam, use a solução do  @Ruy Christian Hoffmann ...  

Tenha VOCÊ o controle sobre as suas ordens, jamais deixei um robô solto por aí acreditando que "tudo vai dar certo". Aqui nas corretoras do Brasil, na verdade, a tendência é TUDO dar errado...

;)

 
Flavio Jarabeck:

Tem corretoras que não aceitam expiração de Ordens case se esteja operando Day Trade/Futuros. Não sei esse é o seu caso.

Independente dos modos que as corretoras usam, use a solução do  @Ruy Christian Hoffmann ...  

Tenha VOCÊ o controle sobre as suas ordens, jamais deixei um robô solto por aí acreditando que "tudo vai dar certo". Aqui nas corretoras do Brasil, na verdade, a tendência é TUDO dar errado...

;)

Verdade ^^ Obrigado pela ajuda galera, tudo resolvido =D