Как удалить отложенный ордер, если сработал другой

 
По сигналу эксперт открывает два ордера
OrderSend(Symbol(),OP_BUYSTOP,Lot,Ask+Stops_Step*Point,slippage,mml[12]+SL_Step*Point,mml[10]-TP_Step*Point,0,98765);
OrderSend(Symbol(),OP_SELLSTOP,Lot,Bid-Stops_Step*Point,slippage,mml[10]-SL_Step*Point,mml[12]+TP_Step*Point,0,98764);
как прописать в коде, чтоб если сработал 1 из них, то второй удалился.
 

спасибо)
 

попробовал как там, в тестере проверил - ничего не удаляет...
 

вот функция она считает ордера по типам

//+------------------------------------------------------------------+
//|  Считает открытые ордера согласно условиям                       |
//|  Counts open orders under the conditions                         |
//+------------------------------------------------------------------+
int OpOrdCount(int magik = 0, int typ = -1,string sy = ""){int i,c;
   if(sy == ""){sy = Symbol();}
   for(i = OrdersTotal()-1; i>=0; i--){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()!=sy){continue;}
         if(OrderCloseTime()!=0){continue;}
         if(OrderType()==typ||typ==-1){
            if(OrderMagicNumber()==magik||magik==0){c++;}
         }else if(typ == 10){
            if(OrderType()<2){
               if(OrderMagicNumber()==magik||magik==0){c++;}
            }
         }else if(typ == 11){
            if(OrderType()>1){
               if(OrderMagicNumber()==magik||magik==0){c++;}
            }
         }
      }
   }
   return(c);
}

int pos = OpOrdCount(magik,10);На каждом тике считаем количество открытых рыночных позиций, 
if(pos>0){//если позиции есть,
    int ords = OpOrdCount(magik,11);//то считаем количество отложенных,
    if(ords>0){//если они есть, 
        OrdersDelete();//то удаляем отложенные.
    }
}  
Причина обращения: