Обсуждение статьи "Обработка торговых событий в эксперте при помощи функции OnTrade()" - страница 2

 

То есть: OnTrade( )

должно быть OnTrade( id, para1,para2.....)

 

Мог бы кто-нибудь доработать код, приведённый в статье, на предмет обработки события закрытия позиции по стоплоссу или тейкпрофиту?

Неужели это никому оказалось ненужным за прошедших 2,5 года с момента публикации статьи?

 
  • Позиции
    1. Открыть
    2. Добавить
    3. Изменить (изменить "Стоп-лосс" и "Тейк-профит")
    4. Обратно
    5. Закрыть всю позицию
    6. Закрыть часть позиции
    1. Разместить
    отложенный ордер
    1. Изменить

Рекомендуется перевести https://www.mql5.com/en/articles/211 Ордера, позиции и сделки в MetaTrader 5.

Для начала необходимо выяснить, какая из 6+2 выше соответствует ордерам, позициям и сделкам!

Orders, Positions and Deals in MetaTrader 5
Orders, Positions and Deals in MetaTrader 5
  • 2011.02.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Creating a robust trading robot cannot be done without an understanding of the mechanisms of the MetaTrader 5 trading system. The client terminal receives the information about the positions, orders, and deals from the trading server. To handle this data properly using the MQL5, it's necessary to have a good understanding of the interaction between the MQL5-program and the client terminal.
 
для MQL4, что можно придумать что-бы было похоже на OnTrade?
 
Serhiy Dotsenko:
для MQL4, что можно придумать что-бы было похоже на OnTrade?

Проверять на каждом тике OrdersTotal() и OrdersHistoryTotal() - если цифирь изменилась - вызов OnTrade().

 
спасибо, тоже к чему-то похожему сам пришёл ) думал, есть что-то именно событийное ) т.к. реагировать на ручной онтрэйд уже получится только на 2 тике )
 

Привет ,


Спасибо, что написали эту статью... Я немного поиграл с вашим кодом. Но сначала у меня возникла основная проблема, что я работаю с позициями. Это означает:

Мой советник устанавливает ордер на покупку в бэктесте и функция Ontrade вызывается несколько раз, как описано. Но ваш код проверяет только OrdersTotal. Странно, но результат этой функции всегда равен 0. После размещения ордера у меня остается только позиция Buy, что не обрабатывается вашим кодом, не так ли?

Что здесь не так?

 
Serhiy Dotsenko:
для MQL4, что можно придумать что-бы было похоже на OnTrade?
Генерируйте OnChartEvent() перед совершением торговой операции, и в нём пытайтесь получить результат торговой операции... Причём можно придумать тип, в соответствии с которым вызывать OnChartEvent() необходимое число раз...
 
Denis Kirichenko:
Генерируйте OnChartEvent() перед совершением торговой операции, и в нём пытайтесь получить результат торговой операции... Причём можно придумать тип, в соответствии с которым вызывать OnChartEvent() необходимое число раз...

Елси нет графических элементов, зачем нам такой вариант? Это,по-моему, лишнее..

 
За статью, конечно, спасибо. Сэкономил время. Т.к. не пришлось где-то шерстить по поводу этих событий. В справке информации ноль, а писать в саппорт постоянно это тоже время. Поэтому, статья в тему. Но вот код корявый, если честно. Пришлось переносить к себе и приводить к нормальному виду. И тогда уже обмозговывать всё.