Обсуждение статьи "Как написать модуль торговых сигналов для Мастера MQL5" - страница 3

 
В новой версии MQL5 Визард формат модулей сигналов изменился. Посмотрите здесь информацию - https://www.mql5.com/ru/forum/3724/66962#comment_66962.
Обсуждение статьи "Мастер MQL5: Новая версия"
Обсуждение статьи "Мастер MQL5: Новая версия"
  • www.mql5.com
Изменения в архитектуре сигналов позволяют теперь создавать торговые роботы на основе комбинации различных рыночных моделей.
 
Rosh:
В новой версии MQL5 Визард формат модулей сигналов изменился. Посмотрите здесь информацию - https://www.mql5.com/ru/forum/3724/66962#comment_66962.

Я сделал эти изменения, мастер видит новый модуль сигналов, но полученный советник почему-то не торгует. А можно с помощью отладки добраться до  функций CheckOpenShort/CheckOpenLong?
 
Просмотрел код нескольких готовых сигналов из папки  Signal, нет реализации функций  CheckOpenShort/CheckOpenLong. Вместо них используются
//--- methods of checking if the market models are formed
   virtual int       LongCondition();
   virtual int       ShortCondition();
правильно я понимаю? При написании своего модуля тоже надо их реализовать? Когда появиться описание класса CExpert?
 
beginner:

Просмотрел код нескольких готовых сигналов из папки  Signal, нет реализации функций  CheckOpenShort/CheckOpenLong. Вместо них используютсяправильно я понимаю?
Да, правильно.
 
Rosh:
Да, правильно.

Честно говоря немного запутался. В классе CExpertSignal есть функции CheckOpenShort/CheckOpenLong. Вы в своих сигналах используете другие, где они вызываются в CExpert тоже не понял. Проблема в том, что взяв готовый сигнал из статьи о написании своего модуля сигналов,  добился чтобы мастер его увидел (можно наверно внести изменения в статью по поводу нового формата) получил советник с этим сигналом, но он у меня не торгует, за год в тестере ни одной сделки.

Функции вызываются в конструкторе- это ясно, но почему не используются стандартные?

 
Посмотрите плиз, что не так. Не торгует в тестере.
Файлы:
1.mq5  7 kb
 
beginner:

Посмотрите плиз, что не так. Не торгует в тестере.

этот модуль торгует

для вашего случая замените для лонгов

if(  High(1) > High(2) && Low(2)>Low(3) && High(2)<High(3) && Close(3)>Open(3) ){
     return(100);
   }
//--- условие не выполнено
   return(0);  
  }

 на 

Open(1)< Open(2)

 для шортов - найдете сами

Файлы:
 
gdtt:

этот модуль торгует

для вашего случая замените для лонгов

 на 

 для шортов - найдете сами

Да торгует, спасибо! День потратил, вроде все сделал как в статье, в чем моя ошибка?
 
beginner:
Да торгует, спасибо! День потратил, вроде все сделал как в статье, в чем моя ошибка?

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

virtual bool      CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);

virtual bool      CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

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

   virtual int       ShortCondition();      //проверка условия открытия селла

   virtual int       LongCondition();       //проверка условия открытия бая

 

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

 

 

 
Да статьи не хватает, и документацию по CExpertSignal наверно надо дополнить.