Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
К сожалению, только через костыль - глобальная переменная терминала.
И через дополнительные костыли, обеспечивающие удаление гл. переменной при аварийном сбое, например.
Поэтому мой вариант с ожиданием сделки в истории надежнее и проще. Но все равно костыльный..
Не проверял, но, возможно, после OrderSend ВСЕ советники получают соответствующее событие для OnTradeTransaction.
Тогда все решается без костылей и для нескольких советников на одном символе.
Хотите, я Вам помогу обойти эти казусы (из личного опыта торговли на реальном счёте роботами МТ5)?
Добавлено
Абсолютно бесплатно :)
Люди не хотят думать сами, а хотят чтобы за нах это делали другие... к сожалению это так.
Люди не только думают, но и делятся своими решениями. Разработчики по этому поводу молчат, к сожалению.
Ни одного примера в Документации на эту тему. И это с основной функцией.
Я поддерживаю. Если бы где-то было написано, что OrderSend() дожидается ответа от сервера и что происходит дальше, не надо было бы придумывать обходных путей проверки.
Есть отличная статья про ордера, сделки и позиции и работу с ними и с их кэшем, где подробно расписано все до деталей. Однако, она абсолютно обходит стороной процессы, которые происходят при самой посылке ордеров.
Мой вариант
Пользуйтесь.
А что произойдет, если событие OnTrade() сработает до того, как закончится обработка OnTick(). Время иногда имеет значение. Ждать пока дойдет очередь до OnTrade() может быть проблематично. Кроме того, сама функция OrderSend() сконструирована так, чтобы я мог прямо на месте получить информацию о ее результатах. Или нет?
OrderSend() абсодютно синхронная функци - если получили билет, то всё исполнилось.
Внизу пример
Добавлено, а здесь логи
https://www.mql5.com/ru/forum/38456/page85#comment_2888263
Не исполнилось, а отправилось на сервер МТ5.
Нет. Для биржи - отправилось на Биржу (может и не исполнилось :) ), для ФОРЕКС не знаю
Добавлено
Т.е (Для биржи),если Вы получили тикет в функции OrderSend((), то это означает, что ордер принят Биржей
Добавлено
См. картинку (были изменения в 1375)
Это частный случай отправки лимитного ордера на биржу. А что с маркет-ордером на форексе?
В этой теме — ни разу. Только про МТ5 и синхронность ОрдерСенд.
Значит, не подходит ответ.
Нет. Для биржи - отправилось на Биржу (может и не исполнилось :) ), для ФОРЕКС не знаю
Добавлено
Т.е (Для биржи),если Вы получили тикет в функции OrderSend((), то это означает, что ордер принят Биржей
Добавлено
См. картинку (были изменения в 1375)