Насколько быстро обновляется OrdersHistory после закрытия ордера? - страница 2

 
RickD:
А может ли код эксперта исполниться в тот момент, когда закрытый ордер уже исчез из открытых ордеров, но еще не добавился в историю ордеров?
Чтобы не гадать, запуститет советника TradeTransactionListener.mq5 из статьи С чего начать при создании торгового робота для Московской биржи MOEX и прослушайте все торговые события. Можно вручную совершать любые операции и смотреть, что выводится в лог.
 
AlexeyVik:
А в тот момент, в закладке "История счёта" не переключал диапазон отображаемых ордеров?
Это не у меня, а у заказчика. Эксперт работает на VPS. Говорит, что в то время никаких действий он не совершал. Для истории стоит All History. Второй копии эксперта с таким же Magic не запускал.
 
Buz23:
как вариант - проверять количество закрытых ордеров НЕ на текущем баре, а по времени закрытия - такая проверка более надежная.
А в чем разница?
 
Rosh:
Чтобы не гадать, запуститет советника TradeTransactionListener.mq5 из статьи С чего начать при создании торгового робота для Московской биржи MOEX и прослушайте все торговые события. Можно вручную совершать любые операции и смотреть, что выводится в лог.
У меня ситуация с MetaTrader4, а не с  MetaTrader5.
 
На своем компьютере я запустил тестовый эксперт с таймером раз в 10 миллисекунд, который выводит разницу между текущим и предыдущим OrdersTotal() и между текущим и предыдущим OrdersHistoryTotal(). Другой эксперт открывал ордера с близкими стопами. Таблицы OrdersTotal и OrdersHistoryTotal обновлялись синхронно при закрытии ордеров. Не знаю, насколько этот эксперимент чист. Возможно, на медленном VPS может быть иначе.
 
RickD:
Это не у меня, а у заказчика. Эксперт работает на VPS. Говорит, что в то время никаких действий он не совершал. Для истории стоит All History. Второй копии эксперта с таким же Magic не запускал.

А поинтересуйся, не начисляли каких ни-будь ... или наоборот, какую комиссию сняли? Вот и изменение количества ордеров в истории.

Я уже давно отказался от прочёсывания истории ордеров. Просто в цикле проверяю массив тикетов открытых ордеров и если оказалось что один из них закрыт принимаю факт закрытия ордера, выполняются соответствующие действия и перезаполняется массив в цикле по всем открытым ордерам.

 
AlexeyVik:

А поинтересуйся, не начисляли каких ни-будь ... или наоборот, какую комиссию сняли? Вот и изменение количества ордеров в истории.

Я уже давно отказался от прочёсывания истории ордеров. Просто в цикле проверяю массив тикетов открытых ордеров и если оказалось что один из них закрыт принимаю факт закрытия ордера, выполняются соответствующие действия и перезаполняется массив в цикле по всем открытым ордерам.

У меня инвесторский пароль. Все чисто. Никаких начислений комиссий, никаких переоткрытий.

Чисто RunTime ошибка. Единственное объяснение - эксперт вклинился в интервал времени, когда ордер уже исчез из открытых ордеров, но еще не добавился в историю.

Еще вариант - OrderSelect для последнего ордера вернул false и ордер выпал из подсчета.