Скачать MetaTrader 5

Как работать с событиями класса CExpert ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужен приватный мониторинг счета? В Сигналах есть такая возможность!
George Merts
3612
George Merts 2012.11.02 17:58 

Всех приветствую.

Такой вопрос - где почитать, как работать с событиями класса CExpert  ?  В частности, меня интересует событие TradeEventOrderTriggered ?

Я сперва хотел использовать событие OnTradeTransaction(), но в этом случае мне надо анализировать события, разбираться, что произошло, а оказывается, уже все готовое есть в классе CExpert !

Как я понял, сперва надо вызвать метод WaitEvent(TRADE_EVENT_ORDER_TRIGGER) (его можно вызывать прямо в конструкторе эксперта ? ), и после этого - должна начать вызываться функция

чтобы эксперт знал, что сработал отложенный ордер ?  Какие еще действия надо выполнить ? Где об этом почитать ?

Yedelkin
4532
Yedelkin 2012.11.02 18:14  
Laryx: меня интересует событие TradeEventOrderTriggered ?
 Поиском по сайту пользовались?
George Merts
3612
George Merts 2012.11.03 05:25  

Yedelkin:
 Поиском по сайту пользовались?

Ну а как же ?

Поиск по ключевому слову  "TradeEventOrderTriggered" дает в данный момент четыре ссылки - две из них на эту тему.  В третьей - ссылка на описание класса CExpert, где эта функция описывается среди прочих, в четвертой - отдельное описание самой функции. Причем, в этом описании даже нет упоминания о функции WaitEvent(), которую, видимо, обязательно необходимо вызывать, чтобы события о срабатывании отложенных ордеров начали приходить в СExpert.

Лучше всего бы найти код работающего советника, в котором используется этот механизм событий, чтобы поглядеть, что я упустил. К сожалению, код всех советников, на которые я глядел - это простая "калька" с MQL4-кода, в лучшем случае, с использованием классов типа COrderInfo или СTrade - которые просто инкапсулируют интерфейс работы с ордерами или торговыми операциями, обработки событий в них нет.

 

 

Konstantin Gruzdev
14026
Konstantin Gruzdev 2012.11.03 06:42  
Laryx:

Лучше всего бы найти код работающего советника, в котором используется этот механизм событий, чтобы поглядеть, что я упустил. 

 Сгенерируйте простой советник через Мастер MQL5, и изучайте.

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
Yedelkin
4532
Yedelkin 2012.11.03 08:30  

Laryx:

Yedelkin:

Laryx: Такой вопрос - где почитать, как работать с событиями класса CExpert  ? 

  Поиском по сайту пользовались?

 Ну а как же? Поиск по ключевому слову  "TradeEventOrderTriggered" дает в данный момент четыре ссылки - две из них на эту тему.   

 Ну вот Вы сами и ответили на свой же вопрос. Если на специализированном сайте нет нужной информации по искомой теме - значит, "почитать негде".
George Merts
3612
George Merts 2012.11.03 08:41  
Lizar:

 Сгенерируйте простой советник через Мастер MQL5, и изучайте.

Да, я так тоже поступал, и когда разбирался с сигналами - мне это очень помогло. Однако, советники, генерируемые через Мастера - не используют события (ну или я так и не понял, как их задействовать). И понять, как обрабатывать то или иное событие, используя функции класса CExpert - из этого кода нельзя.

Идея - на мой взгляд, очень правильная. События типа срабатывания отложенного ордера должны обрабатываться именно в классе CExpert.  Мне вобще классы Стандартной бибилотеки кажутся очень логичными и полезными. Причем, и документация классов - также на весьма высоком уровне. По крайней мере, все тривиальные вещи - очень хорошо расписаны, и проиллюстрированы.  Но, когда требуется использовать редкие и тонкие вещи - все-таки нехватка документации начинает ощущаться.

Еще хорошо бы, чтобы отладчик работал через Тестер Стратегий, на исторических данных...  

 

 

 

George Merts
3612
George Merts 2012.11.03 13:22  

Внимательное исследование кода позволило установить, что для генерации событий необходимо вызывать фукнцию OnTradeProcess(true). Вроде после этого - событие   TradeEventOrderTriggered начинает обрабатываться. К сожалению, об этом нигде в документации не сказано.

Исследуем код дальше. 

(И ждем ответа поддержки - может быть, еще какие-то действия надо выполнить).  

 

George Merts
3612
George Merts 2012.11.05 10:17  

Вроде как событие TradeEventOrderTriggered() сейчас работает. А вот TradeEventOrderPlaced() никак не могу заставить работать. Ау, представители поддержки, растолкуйте, как работать с событиями в СExpert ?! 

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий