Выставляю торговый приказ (тоесть ордер) ,
как отследить его судьбу ?
Если выбрать ордер по тикету не получиться так как тикет ордеру назначает сервер,
по позицие тоже не выйдет так как в списке позиций ордер появиться позже когда будет обработан сервером и помещён в историю ,
и проходит между этими событиями иногда не один тик,
вот мозгую как описать вызов OrderSend() чтоб при проверке исполнения не нарываться на ошибку.
В MQL-4 в категории Проверка состояния была хорошая функция IsTradeContextBusy()
if(IsTradeContextBusy()) Print("Торговый поток занят. Подождите");
как сейчас блокировать повторный запрос одного и тогоже ордера не ясно.
Спасибо что отозвался, но разбирая коды класса CTrade становиться понятным что ордера выставляются а там хоть трава не рости,
может конечно повторный запрос и не отсылаеться пока не пришёл ответ на предидущий но описания как исполняется ордер нигде не нахожу.
Вопрос актуальный, что будет если на каждом тике будет делаться проверка и если нет открытой позиции выставлять ордер на открытие позиции ?
как это всё будет исполняться ? сколько ордеров будет отправлено на сервер пока состояние позиции измениться ?
и как добиться контроля над исполнением ?
Уже интересней, это можно по аналогии организовать перебор кодов отказа и пока результат негативный блокировать отсылку повторного запроса,
но тогда сколько же запросов на проверку состояния прийдётся вынести серверу.
Я пока что блокирую запросом OrderGetInteger(ORDER_STATE) и пока значение ORDER_STATE_STARTED блокирую новый ордер,
когда же ордер принят то его можно уже обрабатывать целевыми запросами.
А как правильно заблокировать повторный запрос ордера?
Уже интересней, это можно по аналогии организовать перебор кодов отказа и пока результат негативный блокировать отсылку повторного запроса,
но тогда сколько же запросов на проверку состояния прийдётся вынести серверу.
Я пока что блокирую запросом OrderGetInteger(ORDER_STATE) и пока значение ORDER_STATE_STARTED блокирую новый ордер,
когда же ордер принят то его можно уже обрабатывать целевыми запросами.
А как правильно заблокировать повторный запрос ордера?
Вот статья по отслеживанию событий, правда не все события рассмотрены
Обработка торговых событий в эксперте при помощи функции OnTrade()
Вот статья по отслеживанию событий, правда не все события рассмотрены
Обработка торговых событий в эксперте при помощи функции OnTrade()

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Выставляю торговый приказ (тоесть ордер) ,
как отследить его судьбу ?
Если выбрать ордер по тикету не получиться так как тикет ордеру назначает сервер,
по позицие тоже не выйдет так как в списке позиций ордер появиться позже когда будет обработан сервером и помещён в историю ,
и проходит между этими событиями иногда не один тик,
вот мозгую как описать вызов OrderSend() чтоб при проверке исполнения не нарываться на ошибку.
В MQL-4 в категории Проверка состояния была хорошая функция IsTradeContextBusy()
if(IsTradeContextBusy()) Print("Торговый поток занят. Подождите");
как сейчас блокировать повторный запрос одного и тогоже ордера не ясно.