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

 

Подскажите, каким образом можно при помощи LongCondition и ShortCondition не только открывать, но и закрывать позицию без открытия противоположной? Например, параметр Signal threshold value to open = 30 и Signal threshold value to close = 70.

Мы хотим открыть long при выполнении Condition1 и закрыть позицию при выполнении Condition2. Какие значения должны возвращать LongCondition и ShortCondition в этом случае? 

Если управления возвращаемыми значениями LongCondition и ShortCondition недостаточно, то как это можно сделать? Предполагается, что мы используем только один сигнал.

Спасибо.

 

Привет,

Я выполнил все шаги, описанные в статье, но у меня ничего не получилось.

Я сохранил сигнал в файле \include\expert\signal\mysignals\samplesignal.mqh.

Но он не распознается мета-редактором. Я попробовал то же самое с прикрепленным файлом в статье, никаких изменений...


Текущая версия метаредактора - 5.00 Build 567.


Есть идеи?


Спасибо, Марио

 

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

Я нахожу, что комментарий о Type должен быть следующим:

//| Type=SignalAdvanced                                          |

 
yankai0219:

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

Я нахожу, что комментарий о Type должен быть следующим:

//| Type=SignalAdvanced                                          |

Вы можете прочитать об этом в статье Создайте собственного торгового робота за 6 шагов!
 

Привет всем,

Я загрузил сигнал из этой статьи и создал MQ5 с помощью мастера, но советник не совершает никаких сделок. Есть идеи?

Мне пришлось внести изменения в комментарии выше, чтобы сигнал появился в списке, но кроме этого он скомпилировался нормально. Запуск советника в тестере стратегий ничего не дает :(

EDIT: После вставки операторов печати во все функции класса CSampleSignal и CExpertSignal создается впечатление, что унаследованные функции не перезаписываются функциями CSampleSignal.

т. е. в этом примере вместо этих функций выполняются эти:

class CSampleSignal : public CExpertSignal
  {
	 bool CSampleSignal::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 bool CSampleSignal::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

выполняются следующие:

class CExpertSignal : public CExpertBase
  {
	 virtual bool     CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 virtual bool     CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

Имеет ли это смысл? Функции из родительского класса выполняются, когда они перезаписываются в дочернем классе ... Любая помощь будет очень признательна!!!

 
trolley:

Привет всем,

Я загрузил сигнал из этой статьи и создал MQ5 с помощью мастера, но советник не совершает никаких сделок. Есть идеи?

Мне пришлось внести изменения в комментарии выше, чтобы сигнал появился в списке, но кроме этого он скомпилировался нормально. Запуск советника в тестере стратегий ничего не дает :(

EDIT: После вставки операторов печати во все функции класса CSampleSignal и CExpertSignal создается впечатление, что унаследованные функции не перезаписываются функциями CSampleSignal.

т. е. в этом примере вместо этих функций выполняются эти:

выполняются следующие:

Имеет ли это смысл? Функции из родительского класса выполняются, когда они перезаписываются в дочернем классе ... Любая помощь будет очень признательна!!!

Привет, Троллейбус,

У меня такая же проблема. Вы нашли какое-нибудь решение или идею по этому поводу?

Спасибо

 

Добрый день, 

Посоветуйте, пожалуйста, как увеличить (долить) позицию в советнике, который написан на базе Мастера MQL5 и где позиции открываются через

   virtual int       LongCondition();
   virtual int       ShortCondition();   

Я написал робот по рекомендациям в статье  

 https://www.mql5.com/ru/articles/367   "создай торговый робот за 6 шагов" и он прекрасно работает, но попытки повлиять на размер позиции

(неважно увеличить или уменьшить) через повторную генерацию условия  в , например в 

LongCondition();

ни к чему не приводит, уже открытая позиция не изменяется, ее можно только удалить через выполнение условия закрытия или по срабатыванию sl , tp.

 Мастер MQL5 мне нравиться, можно легко и быстро "собирать" многоиндикаторный советник, менять модуль отслеживания sl, менять модуль управления капиталом.

Но попытка написать советник, который открывает минимальную позицию при формировании условия от одного индикатора и увеличивает (доливает) позицию при подтверждении тренда другим индикатором

натолкнулась на вышеописанную проблему - уже открытая позиция не изменяется при повторной выдаче сигнала на открытие через. например LongCondition();

Спасибо. 

Создай торговый робот за 6 шагов!
Создай торговый робот за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
файл из статьи не видно в мастере, кто в теме, подскажите пж-та что подправить.
 
thejobber:
файл из статьи не видно в мастере, кто в теме, подскажите пж-та что подправить.

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

//| Type=Signal

на

//| Type=SignalAdvanced

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

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