В OnTrade перед проверкой вызывайте HistoryOrderSelect(TicketEvent1).
Либо же используйте OnTradeTransaction. Там без обращения к истории можно получить инфу, но только при хорошей связи.
В OnTrade перед проверкой вызывайте HistoryOrderSelect(TicketEvent1).
Либо же используйте OnTradeTransaction. Там без обращения к истории можно получить инфу, но только при хорошей связи.
Связь тут не причём, того кто сказал что события в OnTradeTransaction не гарантированы давно расстреляли ))
Связь тут не причём, того кто сказал что события в OnTradeTransaction не гарантированы давно расстреляли ))
Сарказм не однозначный, поэтому пояснить бы.
Сарказм не однозначный, поэтому пояснить бы.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Как правильно открыть ордер по рынку?
prostotrader, 2017.02.04 11:45
Вы наверное, не видели сообщение от разработчиков, что теперь, OnTradeTransaction() гарантировано.
Что касается этой фразы.
Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.
Сколько ставить паузу? 1 сек 2, а может 10?
Добавлено
Не забывайте, что Вы работаете с приложением КЛИЕНТ - СЕРВЕР (запрос-ответ)
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
"Плавающая" ошибка PositionSelect()
MQ Alexander, 2016.08.03 18:00
Что касается ордеров, позиций и сделок.
Как написано в хелпе - последовательность поступления транзакций не гарантирована - транзакция переноса ордера в историю может быть получена раньше, чем транзакция сделки.
Изменение позиции в терминале происходит строго в результате получения сделочной транзакции, соответственно её получение является гарантией того что позиция поменялась.
Получение транзакции переноса ордера в историю, гарантирует только то, что ордер перестал быть активным (открытым) и был перенесён в историю ордеров.
Что касается этой фразы.
Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.
Значит, я не ошибся.
В OnTrade перед проверкой вызывайте HistoryOrderSelect(TicketEvent1).
Либо же используйте OnTradeTransaction. Там без обращения к истории можно получить инфу, но только при хорошей связи.
Спасибо, ваш совет помог. Почему-то мне показалось, что раз HistoryOrderGetInteger требует в аргументах тикет, то HistoryOrderSelect делать не нужно
Спасибо, ваш совет помог. Почему-то мне показалось, что раз HistoryOrderGetInteger требует в аргументах тикет, то HistoryOrderSelect делать не нужно
Он требует по той причине, что есть еще HistorySelect.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброе утро, при разработке робота столкнулся со следующей проблемой:
выставляю отложенный ордер через TradeRequest, тикет сохраняю в TicketForEvent1, в функции OnTrade проверяю
проблема в том, что в тестере стратегий всё работает как и задумано, то есть код из условия выполняется, когда по этому ордеру открывается сделка, а на реальной торговле сразу после выставления ордера ORDER_STATE == ORDER_STATE_FILLED и код выполняется, хотя не должен.