Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Веди личную переписку в профиле. Это безопасно!
Nikolay Demko
12448
Nikolay Demko 2010.06.10 21:45 

Выставляю торговый приказ (тоесть ордер) ,

как отследить его судьбу ?

Если выбрать ордер по тикету не получиться так как тикет ордеру назначает сервер,

по позицие тоже не выйдет так как в списке позиций ордер появиться позже когда будет обработан сервером и помещён в историю ,

и проходит между этими событиями иногда не один тик,

вот мозгую как описать вызов OrderSend() чтоб при проверке исполнения не нарываться на ошибку.

В MQL-4 в категории Проверка состояния была хорошая функция IsTradeContextBusy()

if(IsTradeContextBusy()) Print("Торговый поток занят. Подождите");

как сейчас блокировать повторный запрос одного и тогоже ордера не ясно.

Dmitry Voronkov
5717
Dmitry Voronkov 2010.06.10 22:40  
Urain:

Выставляю торговый приказ (тоесть ордер) ,

как отследить его судьбу ?

Если выбрать ордер по тикету не получиться так как тикет ордеру назначает сервер,

по позицие тоже не выйдет так как в списке позиций ордер появиться позже когда будет обработан сервером и помещён в историю ,

и проходит между этими событиями иногда не один тик,

вот мозгую как описать вызов OrderSend() чтоб при проверке исполнения не нарываться на ошибку.

В MQL-4 в категории Проверка состояния была хорошая функция IsTradeContextBusy()

if(IsTradeContextBusy()) Print("Торговый поток занят. Подождите");

как сейчас блокировать повторный запрос одного и тогоже ордера не ясно.

 

 

 

Посмотри Торговые классы возможно там найдеш ответы на свои вопросы.
Nikolay Demko
12448
Nikolay Demko 2010.06.10 23:33  
vdv2001:
Посмотри Торговые классы возможно там найдеш ответы на свои вопросы.

Спасибо что отозвался, но разбирая коды класса CTrade становиться понятным что ордера выставляются а там хоть трава не рости,

может конечно повторный запрос и не отсылаеться пока не пришёл ответ на предидущий но описания как исполняется ордер нигде не нахожу.

Вопрос актуальный, что будет если на каждом тике будет делаться проверка и если нет открытой позиции выставлять ордер на открытие позиции ?

как это всё будет исполняться ? сколько ордеров будет отправлено на сервер пока состояние позиции измениться ?

и как добиться контроля над исполнением ?

Валерий
1433
Валерий 2010.06.10 23:34  
Urain:

Выставляю торговый приказ (тоесть ордер) ,

как отследить его судьбу ?


Посмотрите здесь.
Nikolay Demko
12448
Nikolay Demko 2010.06.10 23:45  
Valmars:
Посмотрите здесь.

Уже интересней, это можно по аналогии организовать перебор кодов отказа и пока результат негативный блокировать отсылку повторного запроса,

но тогда сколько же запросов на проверку состояния прийдётся вынести серверу.

Я пока что блокирую запросом OrderGetInteger(ORDER_STATE) и пока значение ORDER_STATE_STARTED блокирую новый ордер,

когда же ордер принят то его можно уже обрабатывать целевыми запросами.

А как правильно заблокировать повторный запрос ордера?

Sergey Gritsay
6218
Sergey Gritsay 2010.06.11 00:13  
Urain:

Уже интересней, это можно по аналогии организовать перебор кодов отказа и пока результат негативный блокировать отсылку повторного запроса,

но тогда сколько же запросов на проверку состояния прийдётся вынести серверу.

Я пока что блокирую запросом OrderGetInteger(ORDER_STATE) и пока значение ORDER_STATE_STARTED блокирую новый ордер,

когда же ордер принят то его можно уже обрабатывать целевыми запросами.

А как правильно заблокировать повторный запрос ордера?

Вот статья по отслеживанию событий, правда не все события рассмотрены

Обработка торговых событий в эксперте при помощи функции OnTrade()

Nikolay Demko
12448
Nikolay Demko 2010.06.11 01:17  
sergey1294:

Вот статья по отслеживанию событий, правда не все события рассмотрены

Обработка торговых событий в эксперте при помощи функции OnTrade()

Да, спасибо это то что доктор прописал :о)
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий