Открытый/закрытый ордер - это не всё об ордерах. Они ещё меняют номер при частичном закрытии и переоткрытии ночью (в банках). Посмотрите Учёт ордеров в большой программе.
Вариант поиска в списке открытых ордеров не солидно выглядит.
Открытый/закрытый ордер - это не всё об ордерах. Они ещё меняют номер при частичном закрытии и переоткрытии ночью (в банках). Посмотрите Учёт ордеров в большой программе.
Не совсем то что ожидал, но ситуация сильно прояснилась :)
Вариант поиска в списке открытых ордеров не солидно выглядит.
Солидней, как мне кажется, было бы что-то в духе IsOrderOpenedbyMagic(magic_code).
солидней, как мне кажется, было бы что-то в духе IsOrderOpenedbyMagic(magic_code).
На запуске советника один раз проходим по всем ордерам, если
находим свой ордер - запоминаем в переменную, а дальше пользуемся
этой переменной. После открытия ордера тоже запоминаем. Лучше
не на запуске, а при увеличении значения OrdersTotal() и флаг поставить,
чтобы больше не выполнять этот цикл, а то эксперт может сработать
по первому тику, а список ордеров еще не загрузился (наверно).
... Однако очевидно, что работа ведется одним ордером - в тестере
цикл с одним повторением - такая большая потеря времени)). А в
реальном времени быстродействие вообще не проблема.
Однако очевидно, что работа ведется одним ордером - в тестере
цикл с одним повторением - такая большая потеря времени)). А в
реальном времени быстродействие вообще не проблема.
А по быстродействию. Это просто дело привычки - С++, знаете ли, прививает желание все соптимизировать :)
Всегда ведь хочется сократить время выполнения.
Солидней, как мне кажется, было бы что-то в духе IsOrderOpenedbyMagic(magic_code).
А если ордер установлен с руки (без магика)? Без учёта не обойтись. По-моему, программа без блока учёта ордеров может быть полезна только для оптимизации при тестировани стратегии (т.е. когда речь не о программе и использовании её на реальном счёте в режиме реального времени), с целью оптимизации алгорима для ускорения.
Цель именно обрабатывать лишь свои ордеры. Просто у меня была идея обращатся к ордерам по своей индексации, но это уже не важно.
Теперь я понял что в рамках MQL это и не возможно, да и не нужно :)
Всем спасибо за советы.
Лучше не на запуске, а при увеличении значения OrdersTotal()
Солидней, как мне кажется, было бы что-то в духе IsOrderOpenedbyMagic(magic_code).
Лучше не на запуске, а при увеличении значения OrdersTotal()
Я имел в виду пользовательскую переменную PrevOrdersTotal, и если вдруг OrdersTotal()>PrevOrdersTotal, значит есть доступ к списку ордеров. Это для отслеживания того, что список открытх ордеров загрузился на запуске терминала.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Помогите, пожалуйста, с проблемой отслеживания статуса ордера. Есть ли возможность быстро по ticket_id узнать открыт ордер или нет.
Вариант поиска в списке открытых ордеров не солидно выглядит. Или другого пути нет?
Спасибо.