- Когда веб-терминал незаменим
- Тестер стратегий в торговой платформе MetaTrader 5
- Торговые роботы и технические индикаторы в MetaTrader 5
Если отправить в OnTick заявки по нескольким инструментам через OrderSendAsync, то на следующий тик иногда отправленной заявки нет ни в списке заявок (OrdersTotal() и далее), ни в истории заявок, и объем позиции еще не изменился. Во всех случаях OrderSendAsync возвращает true. Через какое-то время заявка появляется. Методом тыка было установлено, что такое происходит при выставлении заявок по не главному инструменту (не тому, на график которого прикреплен советник). Кто-нибудь сталкивался с подобной проблемой? Могут разработчики прокомментировать ситуацию? И да, повторить ситуацию с OrderSend не удалось.
Думал, что после OrderSendAsync на следующем обработчике событий (OnTick, например) заявка должна быть в списке активных заявок с состоянием ORDER_STATE_REQUEST_ADD. Это так?
Если это неверно, в чем смысл состояний ORDER_STATE_REQUEST_*, если не для состояния асинхронно отправленной заявки?
Думал, что после OrderSendAsync на следующем обработчике событий (OnTick, например) заявка должна быть в списке активных заявок с состоянием ORDER_STATE_REQUEST_ADD. Это так?
Если это неверно, в чем смысл состояний ORDER_STATE_REQUEST_*, если не для состояния асинхронно отправленной заявки?
Добрый день!
Думаю, что Вы не всё поняли.
Обработчиком OrderSendAsync() является OnTradeTransaction()
Когда Вы посылаете команду OrderSendAsync() Вы должны получить номер запроса,
по которому в OnTradeTransaction() Вы получите билет ордера, а уж потом, по билету,
Вы узнаете, что произошло с ордером.
P/S Приход события TradeTransaction НЕ ГАРАНТИРОВАН!
OrderSendAsync может и не вернуть id ордера. Я понимаю, что ситуация может быть решена через генерацию magic для каждого ордера. По-моему этот момент сильно переусложнен.
OrderSendAsync может и не вернуть id ордера. Я понимаю, что ситуация может быть решена через генерацию magic для каждого ордера. По-моему этот момент сильно переусложнен.
Не надо ничего усложнять и генерировать. Ответ был дан выше: анализируйте результаты OrderSendAsync через изменения торгового окружения. Событийную модель используйте как вспомогательное средство.
У Вас ошибочное представление о механизме работы.
Всё вовремя обновляется и быстро...
Если Вам трудно сейчас реализовать OrderSendAsync(), то используйте OrderSend()
P/S Плохая идея на ФОРТС использовать OnTick(), я бы рекомендовал OnBookEvent()
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования