Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Какие интересные шарики вы катаете. Конечно HistoryOrderSelectById() было бы классно. Но этого не будет, потому-что слишком хорошо.
Поэтому метить магиком или комментарием и бегать по истории.
Дорогой C-4!
У вас просто не было случая, чтобы не сработал OnTradeTransaction,
Никакой сценарий вам не поможет, чтобы узнать что произошло с ордером.
И какой смысл использовать OrderSendAsync, если вы проверяете его на таймере?
У меня среднее исполнение приказов 45-50 мс, так какой интервал должен быть у таймера?
50 экспертов просто "повесят" процессор.
Я не проверяю OrderSendAsynch на таймере. Я проверяю окружение по таймеру, например количество сделок. Подзадача подписана и на OnTradeTransation и на OnTimer. Поэтому если OnTradeTransaction не придет, подзадача все равно выполнится, но уже по таймеру. Т.е. система стремится выполнить задачу любым доступным способом, допуская отсутствие OnTradeTansaction.
Более того, было замечено, что в момент вызова OnTradeTransaction при срабатывании нового ордера, его окружение (цена срабатывание, направление, объем и т.д.) Еще не доступны. Т.е. если Вы возьмете идентификатор ордера из MqlTradeResult и начнете использовать его в HistoryOrderGet... функциях, то будете получать не инициализированные значения. Учитывая это, работа с OnTradeTransaction как с единственным источником данных вообще под вопросом.
Василий, Вы читаете, что я пишу?
Мне нужно ТОЧНО знать, что произошло с моим ордером через 50 мс,
а не по косвенным данным, которые будет брать таймер через 1 сек или 2.
Таймер можно использовать как крайнее средство, когда совсем "вилы".
Нет смыла использовать OrderSendAsync, если результаты проверяются по таймеру.
Тогда просто OrderSend и никаких проблем!
Чего гадать будут делать HistoryOrderSelectById или нет.
Нужно обратиться в сервисдекск с просьбой, чтобы сделали.
И если нас будет много, то, думаю, сделают...
https://www.mql5.com/ru/docs/eventfunctions/eventsetmillisecondtimer
Мне нужно ТОЧНО знать, что произошло с моим ордером через 50 мс,
B как вам в этом поможет HistoryOrderSelectById()?
Узнаю tiicket ордера, а дальше Вы знаете как.
А как вы отсчитает 50ms без таймера? и причем здесь History?
Yurich, я вообще не использую таймер для проверки (вернее использую "на крайний случай").
А History, потому что ордера только там, если не пришел OnTradeTransaction
Узнаю tiicket ордера, а дальше Вы знаете как.
Что эксперт делает в тем 50 мс от отправки запроса до получения ответа?