Можно ли получить уведомление, когда открытая позиция была изменена?

Могу ли я узнать, как я могу получить уведомление в MQL4, если какая-либо из моих размещенных или открытых позиций была изменена из-за получения [стоп-лосса] или [тейк-профита] или срабатывания отложенного ордера?

Причина в том, что мне нужно выполнить определенные действия, когда мои размещенные или открытые позиции изменены.


person william007    schedule 25.04.2017    source источник


Ответы (2)


Да, это так, сэр.

Можно выбрать запуск кода MQL4, который отслеживает состояние набора как размещенных, так и открытых ордеров, как указано выше, и отправляет вам либо электронное письмо, либо другое сообщение по вашему выбору всякий раз, когда отслеживаемое событие появляется в Терминал MetaTrader (События рынка поступают в Терминал со стороны Брокера как события).

Так что не стесняйтесь использовать этот подход для решения выраженной потребности. Это можно сделать программно либо с помощью скрипта, либо с помощью функций исполнения MQL4-кода ExpertAdvisor. Можно даже перейти в распределенную структуру, если вы не хотите полагаться на ограничения платформы MetaTrader и реализовывать только сигнализацию событий и обрабатывать события извне, вне базы кода MQL4 (в C, C++, java, php, python, go, Erlang и т. д. в зависимости от ваших предпочтений и потребностей в производительности/задержке).

person user3666197    schedule 25.04.2017

В mql5 - событие OnTradeTransaction(), в mql4 оно не поддерживается, поэтому нужно хранить все в памяти и перебирать открытые сделки каждый тик/секунду/N миллисекунд и сравнивать текущие ордера и их типы с предыдущими тиковыми ордерами и уведомлять, если что-то произошло измененный.

person Daniel Kniaz    schedule 25.04.2017