Функция определения времени с момента откртия последнего ордера по указанному магику.

 
Доброго времени суток.
Не хватает навыков чтоб законспектировать(!) необходимую функцию.
Необходима чтобы избежать претензий со стороны брокера относительно быстрого закрытия.
Если кто может ее реализовать, и не сильно затруднит - помогите пожалуйста.
Заранее спасибо.
 
//+----------------------------------------------------------------------------+
//|  Описание : Возвращает количество минут с момента открытия последней       |
//|             позиции по текущему символу.                                   |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int TimeSinceLastOrderOpen(string sy="", int op=-1, int mn=-1) {

  datetime oot=0;

  if (sy=="0") sy=Symbol();
  for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (oot<OrderOpenTime()) oot=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  
  int minutes=(int)(TimeCurrent()-oot)/60;

return(minutes);
  
}
//+----------------------------------------------------------------------------+
В бою функцию не проверял, набросал на скорую руку.
 
Огромное спасибо