Закрытие последней сделки

 
Здравствуйте! Как, если открыто несколько сделок, закрыть последнюю? Я делаю так:
for (cnt=0; cnt<OrdersTotal(); cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderType()==OP_BUY && OrderOpenTime()>LTT1
&& Symbol()== OrderSymbol() )
{ LTT1 = OrderOpenTime();
if
(CurTime()-LTT1)>3600)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,DarkOrange);
}
но закрывается самая первая
и сразу еще вопрос: как между открытием и закрытием задать время не в секундах а в барах(Н1)?
С уважением, Елена
 
// Возвращает тикет последнего открытого ордера
// Type - тип искомого ордера (OP_BUY, OP_SELL)
int GetLastOpenOrder(int Type)
{
datetime LTT1 = 0;
int tiket = 0;

int total = OrdersTotal();
  for(int cnt=0; cnt<total; cnt++)
    if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) && OrderSymbol()==Symbol() &&
      OrderType()==Type && OrderOpenTime()>LTT1)
    {
      LTT1 = OrderOpenTime();
      tiket = OrderTicket();
    }
  return(tiket);
}
Причина обращения: