Как выбрать предпоследний закрытый ордер из истории

 
int i,accTotal=OrdersHistoryTotal();
  for(i=0;i<accTotal;i++)
    {
     if(OrderSelect(i-1,SELECT_BY_POS,MODE_HISTORY)==true)
 
voviko:

Можно без цикла:

if(OrderSelect(OrdersHistoryTotal()-2,SELECT_BY_POS,MODE_HISTORY)==true)

но так может быть выбран и чужой ордер, а если надо проверять на дополнительные критерии, то лучше в цикле, в обратном порядке.

 
Vitalie Postolache:

Можно без цикла:

но так может быть выбран и чужой ордер, а если надо проверять на дополнительные критерии, то лучше в цикле, в обратном порядке.

Спасибо
 
Vitalie Postolache:

Можно без цикла:

но так может быть выбран и чужой ордер, а если надо проверять на дополнительные критерии, то лучше в цикле, в обратном порядке.

А если вдруг опять объявится зависимость от сортировки? Понимаю, что может быть и паранойя, но чем чёрт не шутит, а?
 
Artyom Trishkin:
А если вдруг опять объявится зависимость от сортировки? Понимаю, что может быть и паранойя, но чем чёрт не шутит, а?
Ну я же там дописал - в цикле надо бы проверять на доп. признаки. Но в обратном порядке, а не как в начале темы.
 

В общем случае нужно считывать всю историю, выбирая свои ордера, потом сортировать их по времени закрытия.

Иначе после переподключения к серверу ордера в истории упорядочатся по возрастанию тикета - т.е. по времени открытия.

 
Vladimir Kazakov:

В общем случае нужно считывать всю историю, выбирая свои ордера, потом сортировать их по времени закрытия.

Иначе после переподключения к серверу ордера в истории упорядочатся по возрастанию тикета - т.е. по времени открытия.

Какая чушь, никакого упорядочивания истории по возрастанию тикета не происходит, не распространяйте ложную информацию.
 
Alexander Bereznyak:
Какая чушь, никакого упорядочивания истории по возрастанию тикета не происходит, не распространяйте ложную информацию.Да 

Самую ложную информацию сейчас вы распространяете.

На запуске терминала ордера в истории по тикету отсортированы. В процессе работы закрываемые ордера, добавляются в историю по мере закрытия. 

 
Vladimir Kazakov:

В общем случае нужно считывать всю историю, выбирая свои ордера, потом сортировать их по времени закрытия.

Иначе после переподключения к серверу ордера в истории упорядочатся по возрастанию тикета - т.е. по времени открытия.

Да. Примерно так. 
 
Dmitry Fedoseev:

Самую ложную информацию сейчас вы распространяете.

На запуске терминала ордера в истории по тикету отсортированы. В процессе работы закрываемые ордера, добавляются в историю по мере закрытия.

Ещё один бредоносец объявился, при запуске какого терминала и что отсортировывается, терминал ничего не сортирует, история отработанных ордеров

хранится на сервере брокера, терминал может получить только копию и ничего не сортирует. 

 
Alexander Bereznyak:

Ещё один ...

Вот неугомонный. Ты тупой что ли? Проверить трудно?

Открой ордер №1, потом ордер №2.

Закрой №2, закрой №1.

Последний в истории будет №1.

Перезагрузи терминал.

Сейчас последний ордер в истории №2.

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