Собственно сабж. Давно на MT5, но по ряду причин придётся ещё по-пользовать MT4. Но вот в mql4 нет OnTrade() и OnTradeTransaction(), что печалит сильно.
Соответственно надо решить малой кровью (по ресурсам) задачу.
Пока ничего лучше в голову не пришло, как перебирать открытые ордера и сравнивать текущее состояние с предыдущим.
Возможно есть более разумные решения.
Не самый лёгкий вариант, ознакомиться со статьями Артёма Тришкина. А всего их 31 или уже 32. Я проверял и общался с ним по этому поводу. Все события отлавливаются "на ура".
Конечно если не стараться вникнуть в суть содержимого его кодов, то должно быть легче.
ps; О... только вернулся из этой темы и сразу бросилось в глаза тема обсуждения 32й части статьи. Сама статья тут.

- 2020.01.24
- www.mql5.com
Игорь прав, разумнее и проще одновременно что-то придумать сложно, ибо в основе любого другого решения будет всё тот же вызов OrdersTotal() с фильтрацией ордеров по вкусу и дальнейшей обработкой даты.
Я пока на этом и остановлюсь, для решения моей задачи это подойдёт.
Это как раз и есть самое разумное решение. Причем самое разумное и для МТ5, т. к. ориентироваться только на OnTrade() и OnTradeTransaction() нельзя. Они не гарантированы.
Вы наверное очень давно этим не интересовались. Из документации давным-давно убрали оговорку, что транзакция может потеряться. Так-что для mql5 ничего лучшего чем OnTradeTransaction() придумать не получится. Я проверял скорость получения события активации отложенного ордера в OnTradeTransaction() и через библиотеку Артёма. OnTradeTransaction() отрабатывает раньше. На сколько я не замерял. Для справедливых оценок надо делать больше замеров, а тратить на это время пожадничал.
Вы наверное очень давно этим не интересовались. Из документации давным-давно убрали оговорку, что транзакция может потеряться. Так-что для mql5 ничего лучшего чем OnTradeTransaction() придумать не получится. Я проверял скорость получения события активации отложенного ордера в OnTradeTransaction() и через библиотеку Артёма. OnTradeTransaction() отрабатывает раньше. На сколько я не замерял. Для справедливых оценок надо делать больше замеров, а тратить на это время пожадничал.
Это же естественно - у меня задана частота сканирования окружения. Поэтому факт самого события в терминале и факт изменения окружения идут друг за другом. Но у меня отлавливается именно факт изменения окружения, а не приход события. В этом есть свои плюсы. Но ты их всё равно отрицаешь ;) Поэтому нет смысла дискутировать.
Это какие плюсы я отрицаю? У меня только одно отрицание. Я хочу понимать как что работает, а если понять можно только не моим умом, то пользоваться этим мне не комфортно, а всё что мне не комфортно я отрицаю. Я тебе уже говорил, что ты пишешь буковок, больше чем я могу прочесть до конца жизни своей. Не кати на меня бочку...
Это как раз и есть самое разумное решение. Причем самое разумное и для МТ5, т. к. ориентироваться только на OnTrade() и OnTradeTransaction() нельзя. Они не гарантированы.
Вы безнадежно отстали от жизни!
Давно эти события гарантированы!
Вы безнадежно отстали от жизни!
Давно эти события гарантированы!
И наличие света, и интернета? Не говоря об обычных для сети пропаже пакетов. Крутые MetaQuotes стали - у всех все гарантируют! ))

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Собственно сабж. Давно на MT5, но по ряду причин придётся ещё по-пользовать MT4. Но вот в mql4 нет OnTrade() и OnTradeTransaction(), что печалит сильно.
Соответственно надо решить малой кровью (по ресурсам) задачу.
Пока ничего лучше в голову не пришло, как перебирать открытые ордера и сравнивать текущее состояние с предыдущим.
Возможно есть более разумные решения.