Эксперт "засыпает"

 
Следующий код (ниже) призван закрывать ордер через заданное количество часов. Иногда (не всегда) он не срабатывает, хотя вроде нечему тут не сработать. Стоит перекомпилировать эксперт (F5), как срабатывание происходит на первом же тике.

Прокомментируйте, пожалуйста.
Кварк

		for(nCnt = 0; nCnt < OrdersTotal(); nCnt++)
		{
			OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES);
			if(OrderMagicNumber() == nMagic)
			{
				if(CurTime() - OrderOpenTime() >= nHoursToHold * 60 * 60)
				{
					if(OrderType() == OP_BUY)
					{	
						OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
//						return(0);
					}
					else if(OrderType() == OP_SELL)
					{
						OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);
//						return(0);
					}
				}
			}
		}



Причина обращения: