little problem with OrderDelete

 

Hi guys,

I want delete my pending order if price reach StopLoss which is defined in order. I need to check this conditions in every price change, but now it checks only once after ordersend. Can you give me advice with this.

if( OrderSelect(ticket,SELECT_BY_TICKET) && OrderCloseTime()==0 )
{
   if (OrderType()==OP_SELLSTOP)
      {
         if(Ask>SL)
         OrderDelete(ticket);
      }
}  
 
  1. Since you're not selecting history, OrderCloseTime will ALWAYS be zero
  2. Either you must remember the ticket number (persistent storage) for checking next tick, or
  3. for(pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(pos, SELECT_BY_POS)                 // Only my orders w/
    &&  OrderMagicNumber()  == magic.number             // my magic number
    &&  OrderSymbol()       == Symbol() ){              // and my pair.
        if (OrderType()==OP_SELLSTOP 
        && Ask>OrderStopLoss()){
            if(!OrderDelete(OrderTicket()))
              Alert("OrderDelete(",OrderTicket(),") failed:", GetLastError());
    }   }