Я привёл минимальный код, подтверждающий само наличие проблемы.
Если кто-то из MQ проявит хоть какую-то заинтересованность в её исправлении, готов предоставить дополнительную информацию.
Мне, ещё раз повторю, указанная проблема не мешает, не я её обнаружил, я только подтвердил её наличие.
Речь о том, чтобы выяснить, проблема ли это. Если в ваших условиях проблема воспроизводится, то не понятно в чем сложность, выводить в лог и приводить полную информацию (все структуры, а не отрывки).
Речь о том, чтобы выяснить, проблема ли это. Если в ваших условиях проблема воспроизводится, то не понятно в чем сложность, выводить в лог и приводить полную информацию (все структуры, а не отрывки).
Запустите у себя мой код и понаблюдайте несколько дней - у вас проявляется?
Спасибо за совет. Попробую с ордерами поковырять на досуге. Может и там повторные вызовы будут ;)
Для начала создайте перечисление состояния ордера
enum ENUM_ORD_STATE
{
ORD_NO_STATE = 0, //ордер не установлен
ORD_DO_SET = 1, //отдана команда на установку
ORD_DO_MODIFY = 2, //отдана команда на модификацию
ORD_WORK = 3, //отложенный ордер "стоит" в стакане
ORD_DO_CANCEL = 4 //отдана команда на удаление
};
В OnTradeTransaction меняете состояние ордера, проверяя что с ордером произошло (исполнился частично, полностью, реджект, снят)
Вот здесь, хорошая функция проверки состояния ордера
Поэтому нужна дополнительная проверка состояния ордера ровно как и для других действий над ордером volume. Часто используемые и полезные функции стала называться OrderRealSelect получать данные по ордеру
Ещё несколько задвоилось.
Короче, проблема с задвоением действительно присутствует, подтверждаю. Могу предположить "гонки" где-то внутри MT, сервера или между ними.
Моих роботов это, в принципе, не касается, но знать об этом надо.
Странные люди. Так и не сделали подробный вывод всех структур, как просили.
Странные люди. Так и не сделали подробный вывод всех структур, как просили.
Я привёл минимальный код, подтверждающий само наличие проблемы.
Если кто-то из MQ проявит хоть какую-то заинтересованность в её исправлении, готов предоставить дополнительную информацию.
Мне, ещё раз повторю, указанная проблема не мешает, не я её обнаружил, я только подтвердил её наличие.
Я привёл минимальный код, подтверждающий само наличие проблемы.
Если кто-то из MQ проявит хоть какую-то заинтересованность в её исправлении, готов предоставить дополнительную информацию.
Мне, ещё раз повторю, указанная проблема не мешает, не я её обнаружил, я только подтвердил её наличие.
Речь о том, чтобы выяснить, проблема ли это. Если в ваших условиях проблема воспроизводится, то не понятно в чем сложность, выводить в лог и приводить полную информацию (все структуры, а не отрывки).
Я привёл минимальный код, подтверждающий само наличие проблемы.
Если кто-то из MQ проявит хоть какую-то заинтересованность в её исправлении, готов предоставить дополнительную информацию.
Мне, ещё раз повторю, указанная проблема не мешает, не я её обнаружил, я только подтвердил её наличие.
Вот именно. То же выложил код, который любой заинтересованный может запустить и воспроизвести ошибку.
При необходимости получения другой информации, дописать его не составит труда. Главное что ошибка моделируется, и здесь описано как.
А ситуаций, когда она на что то может повлиять, действительно крайне мало.
Речь о том, чтобы выяснить, проблема ли это. Если в ваших условиях проблема воспроизводится, то не понятно в чем сложность, выводить в лог и приводить полную информацию (все структуры, а не отрывки).
Запустите у себя мой код и понаблюдайте несколько дней - у вас проявляется?
Вот именно. То же выложил код, который любой заинтересованный может запустить и воспроизвести ошибку.
При необходимости получения другой информации, дописать его не составит труда. Главное что ошибка моделируется, и здесь описано как.
А ситуаций, когда она на что то может повлиять, действительно крайне мало.
Добрый день!
Очень часто, при проектировании советника, программист уделяет внимание сделкам, - это не правильно.
Ордер - вот первоисточник всего!
Следите за ордером, все, что с ним происходит, и Вы решите все Ваши проблемы.
Я работаю асинхронными ордерами через OnTradeTransaction с 2015 года и ни разу не было никаких проблем.
prostotrader #:
Следите за ордером, все, что с ним происходит, и Вы решите все Ваши проблемы.
Спасибо за совет. Попробую с ордерами поковырять на досуге. Может и там повторные вызовы будут ;)
Спасибо за совет. Попробую с ордерами поковырять на досуге. Может и там повторные вызовы будут ;)
Для начала создайте перечисление состояния ордера
В OnTradeTransaction меняете состояние ордера, проверяя что с ордером произошло (исполнился частично, полностью, реджект, снят)
Вот здесь, хорошая функция проверки состояния ордера
https://www.mql5.com/ru/forum/67298/page2#comment_2089220
Для начала создайте перечисление состояния ордера
Аналогичные мысли:
И элемент массива ордеров:
Аналогичные мысли:
И элемент массива ордеров:
У меня не мысли :)
8 год работает....