Гы.
Не, не могу. Просвяти пожалуйста.
Как раз проверю ордера сортируются по тикету или по времени открытия.
У отложенного ордера время открытия это когда его установили как отложенный. Но когда он срабатывает, его время открытия это время срабатывания.
Попробуй установить отложенные ордера:
№1 например BuyLimit потом
№2 например SellLimit потом
№3 например Buy.
Тогда тикеты у этих ордеров будут в том же порядке как и время открытия №1-№2-№3. Последний ордер как по тикетам, так и по времени открытия №3.
Теперь, не закрывая терминал, дождись когда сработает какой то из отложенных ордеров. Например сработал №1. Его время открытия это время его сработки. Так как он сработал последним, по времени открытия он последний. А по тикетам, самый последний это №3.
Если запустить скрипт из 2 строчек
OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);
Comment("Последний открытый ордер ",OrderTicket());
Он покажет что последний ордер это №3. В соответсвии с тикетом, а не с временем открытия.
Вывод: Сортировка по тикетам -преждевременен. Хотя он и доказывает что утверждение сортировка по времени неверно.
Теперь, для полной картины, перезапускаем терминал. И снова запускает этот же скрипт. Он показывает что последний открытый ордер это №1. Но ведь только что он показывал что последний открытый это №3, а теперь что №1.
Получается что сортировка ордеров разная для ордеров открытых в текущую сессию работы терминала и ордеров открытых в прошлые сессии работы терминала, то есть после перезапуска.
Та же ерундистика и с историческими ордерами.
Вывод: Не зря метаквоты нигде в справочнике не написали в каком порядке сортированы ордера в списке. Если программист хочет что бы программа правильно работала, он сам должен позаботиться о нужной ему сортировке. На то ведь он и программист.