Мда, ни ответа, ничего)
Короче, для захвата старой позиции получилось так:
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
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Для выбора молодой по времени позиции использую:
Кстати, посмотрите плиз, что можно усовершенствовать в ней.
Пытался использовать эту же ф-ю для выбора самой старой позиции, просто поменяв условие на:
if(iposition.Time()<time_last)
Но т.к. изначально мы время задали нулю datetime time_last = 0, то меньше этого времени ничего не найдешь, пытался присвоить значение 999999999999999, но оно не работает, какое значение лучше присвоить?