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