Обсуждение статьи "Мастер MQL5: Новая версия" - страница 4

 

1. Подскажите, как инвертировать сигнал?

пример: для подтверждения сигнала по GBP/USD в бай, нужен сигнал MACD EUR/GBP селл.  

Или проще порыться в коде библиотеки и поменять "плюс" на "минус", и сохранить как библиотеку под другим именем.

П.С. Было бы не плохо выбирать при создании советника какой сигнал брать: прямой или обратный 

 

2. Как можно вынести веса паттернов, которые зашиты в библиотеку, для оптимизации этих весов?  

 
52_rus:

1. Подскажите, как инвертировать сигнал?

пример: для подтверждения сигнала по GBP/USD в бай, нужен сигнал MACD EUR/GBP селл.  

Или проще порыться в коде библиотеки и поменять "плюс" на "минус", и сохранить как библиотеку под другим именем.

П.С. Было бы не плохо выбирать при создании советника какой сигнал брать: прямой или обратный 

 

2. Как можно вынести веса паттернов, которые зашиты в библиотеку, для оптимизации этих весов?  

1. Механизмы инвертирования (и игнорирования) сигналов заложены в базовом классе CExpertSignal, но, к сожалению, пока недоступны из "Мастера".

2. То же можно сказать и о весах паттернов.

Приложите исходник эксперта, полученный после работы "Мастера", и кратко пожелания. Я попробую объяснить как это сделать "руками".

PS. "Мастер" будет развиваться и, эти настройки станут доступны позже.

 

1. Как добавить свою библиотеку (например: изменить текущую МАКД и сохранить ее, не удаляя основную) в список сигналов мастера? 

2. Вопрос по работе с библиотеками:

Рассмотрим советник на основе МАКД, сделанный с помощью мастера: создали и откомпилировали его, протестировали и получили какой то результат

Сигнал МАКД из библиотеки были такими:

//--- setting default "weights" of the market models
   m_pattern_0    =10;       // model 0 "the oscillator has required direction"
   m_pattern_1    =30;       // model 1 "reverse of the oscillator to required direction"
   m_pattern_2    =80;       // model 2 "crossing of main and signal line"
   m_pattern_3    =50;       // model 3 "crossing of main line an the zero level"
   m_pattern_4    =60;       // model 4 "divergence of the oscillator and price"
   m_pattern_5    =100;      // model 5 "double divergence of the oscillator and price" 

Далее, если я занулю не нужные мне паттерны (например 0,1,2,4,5) в библиотеке:

//--- setting default "weights" of the market models
   m_pattern_0    =0;       // model 0 "the oscillator has required direction"
   m_pattern_1    =0;       // model 1 "reverse of the oscillator to required direction"
   m_pattern_2    =80;       // model 2 "crossing of main and signal line"
   m_pattern_3    =0;       // model 3 "crossing of main line an the zero level"
   m_pattern_4    =0;       // model 4 "divergence of the oscillator and price"
   m_pattern_5    =0;      // model 5 "double divergence of the oscillator and price" 

 

Откомпилирую только библиотеку (сам код советника компилировать не буду). Проведу  тестирование, и получу абсолютно такой же результат как при первом тесте.

Если откомпилерую и код советника тоже то получу другой результат, в данном примере только по паттерну 2.

Возник вопрос: Почему после изменения каких то параметров в библиотеке, надо перекомпилировать код советника? (Он не изменился же) 

 
52_rus:

1. Как добавить свою библиотеку (например: изменить текущую МАКД и сохранить ее, не удаляя основную) в список сигналов мастера?


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

Создание торгового робота в новом Мастере MQL5

Конструирование кода советника производится при помощи Мастера MQL5 редактора MetaEditor.

Базовые классы торговых стратегий расположены в каталоге папка_данных_терминала\MQL5\Include\Expert\. Готовые алгоритмы классов торговых сигналов, классов сопровождения открытых позиций и классов управления капиталом и рисками находятся в подкаталогах Signal, Trailing и Money. Мастер MQL5 анализирует файлы в этих каталогах и использует их для генерации кода советника.

Это означает, что модули сигналов находятся(и должны находиться, чтобы их видел Мастер MQL5) в каталоге папка_данных_терминала\MQL5\Include\Expert\Signal
 
все получилось, спасибо, просто поправил код, а название класса не сменил...
 

Почему-то в новых версиях терминала перестали находиться пользовательские версии модулей генераторов сигналов. В папке /MQL5/Include/Expert/Signal/ находится 30 модулей, а Мастер видит только 20, поставляемых стандартно согласно справке.

Это только у меня так или редактор МТ5 больше не сканирует папку с модулями сигналов на предмет поиска новых модулей? Не подключаются даже прежние модули сигналов на основе свечных патернов, разработанные Metaquotes. 

 
Livingston:

Почему-то в новых версиях терминала перестали находиться пользовательские версии модулей генераторов сигналов. В папке /MQL5/Include/Expert/Signal/ находится 30 модулей, а Мастер видит только 20, поставляемых стандартно согласно справке.

Это только у меня так или редактор МТ5 больше не сканирует папку с модулями сигналов на предмет поиска новых модулей? Не подключаются даже прежние модули сигналов на основе свечных патернов, разработанные Metaquotes. 

Новый модуль сигнала должен иметь отличающееся описание модуля и его тип должен быть SignalAdvanced


 
Rosh:

Новый модуль сигнала должен иметь отличающееся описание модуля и его тип должен быть SignalAdvanced


Огромное спасибо.
 
Rosh:

Новый модуль сигнала должен иметь отличающееся описание модуля и его тип должен быть SignalAdvanced


Если заменить Signal на SignalAdvanced в ранее написанных модулях сигналов, они все равно не работают. Теперь функции CheckOpenShort/CheckOpenLong не используются и заменены на ShortCondition/LongCondition?

В этих функциях отсутствуют параметры, соотвественно непонятно как задавать тейки и стопы.

int CSignalMA::LongCondition()
  {
   int result=0;
   int idx   =StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar
   if(DiffCloseMA(idx)<0.0)
     {
      //--- the close price is below the indicator
      if(IS_PATTERN_USAGE(1) && DiffOpenMA(idx)>0.0 && DiffMA(idx)>0.0)
        {
         //--- the open price is above the indicator (i.e. there was an intersection), but the indicator is directed upwards
         result=m_pattern_1;
         //--- consider that this is an unformed "piercing" and suggest to enter the market at the current price
         m_base_price=0.0;
        }
     }
   else
     {
      //--- the close price is above the indicator (the indicator has no objections to buying)
      if(IS_PATTERN_USAGE(0))
         result=m_pattern_0;
      //--- if the model 2 is used
      if(IS_PATTERN_USAGE(2) && DiffMA(idx)>0.0)
        {
         //--- the indicator is directed upwards
         if(DiffOpenMA(idx)<0.0)
           {
            //--- the open price is below the indicator (i.e. there was an intersection)
            result=m_pattern_2;
            //--- suggest to enter the market at the "roll back"
            m_base_price=m_symbol.NormalizePrice(MA(idx));
           }
         else
           {
            //--- the open price is above the indicator
            if(DiffLowMA(idx)<0.0)
              {
               //--- the low price is below the indicator
               result=m_pattern_2;
               //--- consider that this is a formed "piercing" and suggest to enter the market at the current price
               m_base_price=0.0;
              }
           }
        }
     }
//--- return the result
   return(result);
  }

 теперь повсюду в модуле сигналов используется IS_PATTERN_USAGE(), непонятно зачем.

в общем, ждем информацию, как самому сделать модуль сигналов.

и будет ли доступен старый режим визарда Type=Signal? или  теперь все модули писать "по новому"? 

 

Каждой рыночной модели установлена значимость, измеряемая от 1 до 100. Чем больше значение, тем сильнее модель.

MA с весом 0.4 и Stochastic с весом 0.8 - это получается задается во внешних переменных, а откуда берутся MA - ее значимость равняется 100. Stochastic значимость этой модели равна 80. Где задается или как определяется, значимость каждой модели?