Вопрос по конструктору советников

 

Господа - эксперты в mql, прошу откликнуться.

Вопрос такой.

В конструкторе экспертов имеются функции: ThresholdOpen, ThresholdClose

Которые определяют пороги открытия и закрытия позиций для советника.

Для всех сигналов (фильтров) задействованных в советнике.

Вопрос в следующем:

Как сделать чтобы ThresholdOpen, ThresholdClose работали для каждого сигнала в отдельности.

Т.е. контролировать порог открытие/закрытие позиций для каждого сигнала раздельно?


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

 
Paulo74:

Господа - эксперты в mql, прошу откликнуться.

Вопрос такой.

В конструкторе экспертов имеются функции: ThresholdOpen, ThresholdClose

Которые определяют пороги открытия и закрытия позиций для советника.

Для всех сигналов (фильтров) задействованных в советнике.

Вопрос в следующем:

Как сделать чтобы ThresholdOpen, ThresholdClose работали для каждого сигнала в отдельности.

Т.е. контролировать порог открытие/закрытие позиций для каждого сигнала раздельно?


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

ThresholdOpen, ThresholdClose - это пороги открытия и закрытия позиции на уровне советника. 

Вам нужно просто для разных модулей сигналов менять веса этих сигналов. 

 
Karputov Vladimir:

ThresholdOpen, ThresholdClose - это пороги открытия и закрытия позиции на уровне советника. 

Вам нужно просто для разных модулей сигналов менять веса этих сигналов. 

Про изменение веса - всё понятно, но этим вопрос не решить. Изменение веса влияет одновременно и на открытие и на закрытие.

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

 
Paulo74:

Про изменение веса - всё понятно, но этим вопрос не решить. Изменение веса влияет одновременно и на открытие и на закрытие.

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

Неправильное утверждение.

В каждом сигнале может быть несколько моделей и эта каждая модель может иметь свой, отличный от других, вес. Таким образом, изменяя вес (значимость) каждой отдельной модели внутри модуля сигналов можно влиять на итоговую силу сигнала.

На примере ...\MQL5\Include\Expert\Signal\SignalMACD.mqh:

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

и вот веса этих моделей:

CSignalMACD::CSignalMACD(void) : m_period_fast(12),
                                 m_period_slow(24),
                                 m_period_signal(9),
                                 m_applied(PRICE_CLOSE),
                                 m_pattern_0(10),
                                 m_pattern_1(30),
                                 m_pattern_2(80),
                                 m_pattern_3(50),
                                 m_pattern_4(60),
                                 m_pattern_5(100)
  {
//--- initialization of protected data
   m_used_series=USE_SERIES_HIGH+USE_SERIES_LOW;
  }
 
Karputov Vladimir:

Неправильное утверждение.

В каждом сигнале может быть несколько моделей и эта каждая модель может иметь свой, отличный от других, вес. Таким образом, изменяя вес (значимость) каждой отдельной модели внутри модуля сигналов можно влиять на итоговую силу сигнала.

При оптимизации как выбрать "вес модели" чтобы получить например: m_pattern_2

   int               m_pattern_0;      // model 0 "the oscillator has required direction"
   int               m_pattern_1;      // model 1 "reverse of the oscillator to required direction"
   int               m_pattern_2;      // model 2 "crossing of main and signal line"
   int               m_pattern_3;      // model 3 "crossing of main line an the zero level"
   int               m_pattern_4;      // model 4 "divergence of the oscillator and price"
   int               m_pattern_5;      // model 5 "double divergence of the oscillator and price"
 
lilita bogachkova:

При оптимизации как выбрать "вес модели" чтобы получить например: m_pattern_2

Снова полное непонимание. Ознакомьтесь, пожалуйста, со статьёй Мастер MQL5: Новая версия (особенно с первой картинкой)

 


 
Karputov Vladimir:

Снова полное непонимание. Ознакомьтесь, пожалуйста, со статьёй Мастер MQL5: Новая версия (особенно с первой картинкой)

 


Спасибо, то что надо.
 
Karputov Vladimir:

Неправильное утверждение.

В каждом сигнале может быть несколько моделей и эта каждая модель может иметь свой, отличный от других, вес. Таким образом, изменяя вес (значимость) каждой отдельной модели внутри модуля сигналов можно влиять на итоговую силу сигнала.

На примере ...\MQL5\Include\Expert\Signal\SignalMACD.mqh:

и вот веса этих моделей:

Владимир, благодарю за ответ.

Веса моделей я уже давно использую. Даже вывожу их в общий public эксперта для участия в тестировании.

В принципе, понимаю вашу идею. Просто не совсем понятно как реализовать на практике.

Если я Вас правильно понял, предлагаете добавить модели под закрытие/открытие внутри сигнала. Т.е. Фактически один сигнал как-бы раздвоить и т.д..

Но ведь если даже добавить новую модель, раздел LongConditon и ShortCondition будет общий для всех моделей внутри сигнала? 

А если к примеру требуются сигналы с разных индикаторов, в один сигнал как-то добавлять индикаторы? Может где-то можно посмотреть примеры сигнала с несколькими индикаторами?

Насколько я понимаю, в визарде используются только готовые сигналы? Создать шаблон сигнала нельзя?

Мои познания mql пока на начальном уровне, прошу простить за чайниковские вопросы...

 
Paulo74:

Владимир, благодарю за ответ.

Веса моделей я уже давно использую. Даже вывожу их в общий public эксперта для участия в тестировании.

В принципе, понимаю вашу идею. Если я Вас правильно понял, предлагаете добавить модели под закрытие/открытие внутри сигнала. Т.е. Фактически один сигнал как-бы раздвоить и т.д..

Но ведь если даже добавить новую модель, раздел LongConditon и ShortCondition будет общий для всех моделей внутри сигнала? 

А если к примеру требуются сигналы с разных индикаторов, в один сигнал как-то добавлять индикаторы? Как это сделать?

Просто не совсем понятно как реализовать на практике Вашу идею.

Когда Вы используете несколько модулей сигналов и в каждом модуле по несколько рыночных моделей - Вы получаете змеиный клубок, который выдаёт разные по весу и зачастую противоречивые по направленности сигналы. Сначала выбирается "НАИБОЛЕЕ СИЛЬНЫЙ СИГНАЛ" (см. рис. выше) - то есть заранее нельзя сказать, кто победит.

А теперь, наиболее подробно опишите, что Вы имеет в виду:

Paulo74:

Про изменение веса - всё понятно, но этим вопрос не решить. Изменение веса влияет одновременно и на открытие и на закрытие.

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

 , может быть Вы хотите в модуле сигнала индикатора контролировать финансовые показатели торгового счёта? 

 

Paulo74:

... 

Насколько я понимаю, в визарде используются только готовые сигналы? Создать шаблон сигнала нельзя?

Мои познания mql пока на начальном уровне, прошу простить за чайниковские вопросы...

Почему нельзя?! Конечно можно!
Мастер MQL5: Как написать свой модуль торговых сигналов
Мастер MQL5: Как написать свой модуль торговых сигналов
  • 2010.12.28
  • MetaQuotes Software Corp.
  • www.mql5.com
Генератор торговых стратегий Мастера MQL5 значительно упрощает проверку торговых идей. В статье рассказывается о том, как написать и подключить в Мастер MQL5 свой собственный класс торговых сигналов с реализацией сигналов по пересечению ценой скользящей средней, рассматривается структура и формат описания созданного класса для Мастера MQL5.
 
Karputov Vladimir:

Когда Вы используете несколько модулей сигналов и в каждом модуле по несколько рыночных моделей - Вы получаете змеиный клубок, который выдаёт разные по весу и зачастую противоречивые по направленности сигналы. Сначала выбирается "НАИБОЛЕЕ СИЛЬНЫЙ СИГНАЛ" (см. рис. выше) - то есть заранее нельзя сказать, кто победит.

А теперь, наиболее подробно опишите, что Вы имеет в виду:

 , может быть Вы хотите в модуле сигнала индикатора контролировать финансовые показатели торгового счёта? 

Нет, речь не про финансовые показатели

Вопрос указан в первом посте.

Постараюсь объяснить что требуется подробнее.

К примеру, по сигналу на основе индикатора MACD требуется чтобы позиции ТОЛЬКО открывались. По сигналу на основе МА позиции ТОЛЬКО закрывались.

Вопрос в том, как это реализовать.

Предложенная идея реализации с помощью добавления в один сигнал несколько индикаторов кажется довольно сложной. Индикаторов может быть много. Разных. Придётся в каждом случае делать новый сигнал? Тогда идея самого конструктора несколько теряет смысл.

Как мне представляется, о чём я и спрашивал, это можно было реализовать, если определять пороги для каждого сигнала.

Если это трудно выполнимо, то возможно ли управлять в режиме вкл/выкл для открытия/закрытия по каждому сигналу?

Мне кажется это в плане создания советников гораздо проще. Поскольку используются уже готовые сигналы.

Причина обращения: