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

 
t101:
Скачал, сгенерил через Мастер, попробовал запустить в тестере.  Не работает. Он даже не заходит в методы CheckOpenLong/Short() в samplesignal. Они вызываются в ExpertSignal, но не в SampleSignal. Что еще сделать, чтобы наверняка переопределить их?

Вы так делали:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

SaprykinON, 2015.02.06 19:04

В комментариях нужно заменить строчку

//| Type=Signal

на

//| Type=SignalAdvanced

После этого у меня мастер стал видеть сигнал. 


и так:

Следует отметить, что для того чтобы этот файл был потом "обнаружен" Мастером MQL5 как генератор сигналов, его следует создать в папке Include\Expert\Signal\.

?
 
Karputov Vladimir:

Вы так делали:


и так:

?
Ага
 
Попробуйте сами. Только с последним билдом, я не исключаю что это когда-то работало.
 
t101:
Попробуйте сами. Только с последним билдом, я не исключаю что это когда-то работало.

Возможно после выхода статьи изменена структура сигналов. Я поднял свою статью Генератор торговых сигналов пользовательского индикатора - в статье есть модуль сигналов. Прогнал в тестере - модуль сигналов работает.

Генератор торговых сигналов пользовательского индикатора
Генератор торговых сигналов пользовательского индикатора
  • 2013.07.19
  • Karputov Vladimir
  • www.mql5.com
Как сделать генератор торговых сигналов основанный на пользовательском индикаторе. Как создать пользовательский индикатор. Как получить доступ к данным пользовательского индикатора. Зачем нужна конструкция IS_PATTERN_USAGE(0) и model 0.
 
Karputov Vladimir:

Возможно после выхода статьи изменена структура сигналов. Я поднял свою статью Генератор торговых сигналов пользовательского индикатора - в статье есть модуль сигналов. Прогнал в тестере - модуль сигналов работает.

У вас там нет методов CheckOpenLong(), CheckOpenShort() или CheckCloseLong(), CheckCloseShort(). Вы используете лишь LongCondition() и ShortCondition().
 
t101:
У вас там нет методов CheckOpenLong(), CheckOpenShort() или CheckCloseLong(), CheckCloseShort(). Вы используете лишь LongCondition() и ShortCondition().
Я собственно не против, только что делать если мне нужны в моем модуле сигналов функции закрытия позиции?
 

Я добавил в ваш файл объявление CheckOpenLong():

public:

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


И описание:

bool CSignalMyCustInd::CheckOpenLong(double &price,double &sl,double &tp,datetime &expiration)
  {
   Print(__FUNCTION__+": TEST!");
   return(false);
  }


Но не доходит сюда. Исполняется лишь одноименный метод в ExpertSignal. Как правильно сделать?
 
t101:

Я добавил в ваш файл объявление CheckOpenLong():

public:

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


И описание:

bool CSignalMyCustInd::CheckOpenLong(double &price,double &sl,double &tp,datetime &expiration)
  {
   Print(__FUNCTION__+": TEST!");
   return(false);
  }


Но не доходит сюда. Исполняется лишь одноименный метод в ExpertSignal. Как правильно сделать?

С момента выхода данной статьи мастер MQL5 был изменён: Мастер MQL5: Новая версия. Советник сгенерированный новым мастером

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

 
Если нужно реализовать свои алгоритмы закрытия то как это делать предполагается? Писать свой модуль сопровождения открытых позиций?
 
t101:
Если нужно реализовать свои алгоритмы закрытия то как это делать предполагается? Писать свой модуль сопровождения открытых позиций?
Или модуль управления капиталом. Что именно выбрать, то тут нужно подробнее уже смотреть.