Выбор молодой или старой позиции

 

Для выбора молодой по времени позиции использую:

bool SelectLastPosition()
{
   datetime time_last = 0;
   
   for (int i=PositionsTotal()-1; i>=0; i--)
      if (iposition.SelectByIndex(i))
         if (iposition.Symbol() == isymbol.Name() && iposition.Magic() == Magic)
            if(iposition.Time()>time_last)
            {
               time_last = iposition.Time();
            }
         
   for (int i=PositionsTotal()-1; i>=0; i--)
      if (iposition.SelectByIndex(i))
         if (iposition.Symbol() == isymbol.Name() && iposition.Magic() == Magic)
            if(iposition.Time()==time_last)
            {
               return(true);
            }
         
   return(false);
}

Кстати, посмотрите плиз, что можно усовершенствовать в ней.

Пытался использовать эту же ф-ю для выбора самой старой позиции, просто поменяв условие на:

if(iposition.Time()<time_last)

Но т.к. изначально мы время задали нулю datetime time_last = 0, то меньше этого времени ничего не найдешь, пытался присвоить значение 999999999999999, но оно не работает, какое значение лучше присвоить?

 

Мда, ни ответа, ничего)

Короче, для захвата старой позиции получилось так:

bool SelectFirstPosition()
{
   datetime time_first = 32535244799;
   
   for (int i=PositionsTotal()-1; i>=0; i--)
      if (iposition.SelectByIndex(i))
         if (iposition.Symbol() == isymbol.Name() && iposition.Magic() == Magic)
            if(iposition.Time()<time_first)
            {
               time_first = iposition.Time();
            }
         
   for (int i=PositionsTotal()-1; i>=0; i--)
      if (iposition.SelectByIndex(i))
         if (iposition.Symbol() == isymbol.Name() && iposition.Magic() == Magic)
            if(iposition.Time()==time_first)
            {
               return(true);
            }
         
   return(false);
}

Т.е. задал datetime time_first = 32535244799 - это максимальное число, которое соответствует 31-му декабря 3000-года, времени 23:59:59