Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Заведи торговый сигнал. Зарабатывай на платной подписке!
Vladimir Deryagin
344
Vladimir Deryagin 2015.06.23 11:49 
int i,accTotal=OrdersHistoryTotal();
  for(i=0;i<accTotal;i++)
    {
     if(OrderSelect(i-1,SELECT_BY_POS,MODE_HISTORY)==true)
Vitalie Postolache
12130
Vitalie Postolache 2015.06.23 11:52  
voviko:

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

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

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

Vladimir Deryagin
344
Vladimir Deryagin 2015.06.23 12:22  
Vitalie Postolache:

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

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

Спасибо
Artyom Trishkin
Модератор
75733
Artyom Trishkin 2015.06.23 12:26  
Vitalie Postolache:

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

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

А если вдруг опять объявится зависимость от сортировки? Понимаю, что может быть и паранойя, но чем чёрт не шутит, а?
Vitalie Postolache
12130
Vitalie Postolache 2015.06.23 12:33  
Artyom Trishkin:
А если вдруг опять объявится зависимость от сортировки? Понимаю, что может быть и паранойя, но чем чёрт не шутит, а?
Ну я же там дописал - в цикле надо бы проверять на доп. признаки. Но в обратном порядке, а не как в начале темы.
Vladimir Kazakov
5718
Vladimir Kazakov 2015.06.23 13:52  

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

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

Alexander Bereznyak
21475
Alexander Bereznyak 2015.06.23 15:16  
Vladimir Kazakov:

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

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

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

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

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

Dmitry Fedoseev
42903
Dmitry Fedoseev 2015.06.23 15:29  
Vladimir Kazakov:

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

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

Да. Примерно так. 
Alexander Bereznyak
21475
Alexander Bereznyak 2015.06.23 16:21  
Dmitry Fedoseev:

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

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

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

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

Vladimir Kazakov
5718
Vladimir Kazakov 2015.06.23 16:39  
Alexander Bereznyak:

Ещё один ...

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

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

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

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

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

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

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий