Как найти идентификатор запроса? - страница 3

 

Какие интересные шарики вы катаете. Конечно HistoryOrderSelectById() было бы классно. Но этого не будет, потому-что слишком хорошо.

Поэтому метить магиком или комментарием и бегать по истории.

 
Mikalas:

Дорогой C-4!

У вас просто не было случая, чтобы не сработал OnTradeTransaction,

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

И какой смысл использовать OrderSendAsync, если вы проверяете его на таймере?

У меня среднее исполнение приказов 45-50 мс, так какой интервал должен быть у таймера? 

50 экспертов просто "повесят" процессор. 

Я не проверяю OrderSendAsynch на таймере. Я проверяю окружение по таймеру, например количество сделок. Подзадача подписана и на OnTradeTransation и на OnTimer. Поэтому если OnTradeTransaction не придет, подзадача все равно выполнится, но уже по таймеру. Т.е. система стремится выполнить задачу любым доступным способом, допуская отсутствие OnTradeTansaction.

Более того, было замечено, что в момент вызова OnTradeTransaction при срабатывании нового ордера, его окружение (цена срабатывание, направление, объем и т.д.) Еще не доступны. Т.е. если Вы возьмете идентификатор ордера из MqlTradeResult  и начнете использовать его в HistoryOrderGet... функциях, то будете получать не инициализированные значения. Учитывая это, работа с OnTradeTransaction как с единственным источником данных вообще под вопросом. 

 

Василий, Вы читаете, что я пишу?

Мне нужно ТОЧНО знать, что произошло с моим ордером через 50 мс,

а не по косвенным данным, которые будет брать таймер через 1 сек или 2.

Таймер можно использовать как крайнее средство, когда совсем "вилы". 

Нет смыла использовать OrderSendAsync, если результаты проверяются по таймеру.

Тогда просто OrderSend и никаких проблем! 

Чего гадать будут делать HistoryOrderSelectById или нет.

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

И если нас будет много, то, думаю, сделают... 

 
Документация по MQL5: Работа с событиями / EventSetMillisecondTimer
Документация по MQL5: Работа с событиями / EventSetMillisecondTimer
  • www.mql5.com
Работа с событиями / EventSetMillisecondTimer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Mikalas:

Мне нужно ТОЧНО знать, что произошло с моим ордером через 50 мс,


B как вам в этом поможет  HistoryOrderSelectById()?
 
Yurich:
B как вам в этом поможет  HistoryOrderSelectById()?
Узнаю tiicket ордера, а дальше Вы знаете как.
 
Mikalas:
Узнаю tiicket ордера, а дальше Вы знаете как.
А как вы отсчитает 50ms без таймера? и причем здесь History?
 
Yurich:
А как вы отсчитает 50ms без таймера? и причем здесь History?

Yurich, я вообще не использую таймер для проверки (вернее использую "на крайний случай").

А History, потому что ордера только там, если не пришел OnTradeTransaction 

 
Mikalas:
Узнаю tiicket ордера, а дальше Вы знаете как.
Интереснее, что "до". Что эксперт делает в тем 50 мс от отправки запроса до получения ответа?
 
Integer:
Что эксперт делает в тем 50 мс от отправки запроса до получения ответа?
Работает по намеченному алгоритму. Например отсылает следующий ордер.
Причина обращения: