Вопрос по конструктору советников - страница 2

 
А сделать, два сигнала один на открытие позиций, а другой на закрытие нельзя? Я ни когда не пользовался конструктором, но по моему вполне логично для открытия один сигнал для закрытия другой.
 
Vitalii Ananev:
А сделать, два сигнала один на открытие позиций, а другой на закрытие нельзя? Я ни когда не пользовался конструктором, но по моему вполне логично для открытия один сигнал для закрытия другой.

Так в том и вопрос, как это сделать!

В сигналах нет отдельно закрытия и открытия позиций. Там формируются условия через LongCondition и ShortCondition

 
Paulo74:

Так в том и вопрос, как это сделать!

В сигналах нет отдельно закрытия и открытия позиций. Там формируются условия через LongCondition и ShortCondition

А понятно. Надо создавать наследника, переопределять некоторые методы. Точнее сказать не могу. Как я писал выше конструктором ни когда не пользовался. 
 
Paulo74:

...

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

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

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

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

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

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

На основе модуля сигналов ...\MQL5\Include\Expert\Signal\SignalMACD.mqh (делаем так, что этот модуль будет только давать сигналы на открытие):

//+------------------------------------------------------------------+
//| "Voting" that price will grow.                                   |
//+------------------------------------------------------------------+
int CSignalMACD::LongCondition(void)
  {
//--- 
   if(PositionSelect(Symbol()))
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
         return(0);
     }
   int result=0;
   int idx   =StartIndex();

и

//+------------------------------------------------------------------+
//| "Voting" that price will fall.                                   |
//+------------------------------------------------------------------+
int CSignalMACD::ShortCondition(void)
  {
//--- 
   if(PositionSelect(Symbol()))
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
         return(0);
     }
   int result=0;
   int idx   =StartIndex();
 
Karputov Vladimir:

На основе модуля сигналов ...\MQL5\Include\Expert\Signal\SignalMACD.mqh (делаем так, что этот модуль будет только давать сигналы на открытие):

и

Понятно

Соответственно для только ЗАКРЫТИЯ так будет?

//+------------------------------------------------------------------+
//| "Voting" that price will grow.                                   |
//+------------------------------------------------------------------+
int CSignalMACD::LongCondition(void)
  {
//--- 
   if(PositionSelect(Symbol()))
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
         return(0);
     }
   int result=0;
   int idx   =StartIndex();
//+------------------------------------------------------------------+
//| "Voting" that price will fall.                                   |
//+------------------------------------------------------------------+
int CSignalMACD::ShortCondition(void)
  {
//--- 
   if(PositionSelect(Symbol()))
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
         return(0);
     }
   int result=0;
   int idx   =StartIndex();
 
Paulo74:

Понятно

Соответственно для только ЗАКРЫТИЯ так будет?

Да. Кроме того можно сделать всё на основе одного сигнала, только нужно добавить в сигнал параметров и методов (сегодня хочу и модуль выдаёт только сигналы на закрытие и тому подобное...).
 
Karputov Vladimir:
Да. Кроме того можно сделать всё на основе одного сигнала, только нужно добавить в сигнал параметров и методов (сегодня хочу и модуль выдаёт только сигналы на закрытие и тому подобное...).

Это так, чтобы в public советника управление вывести? Проставлять true/false чтобы сигнал универсальный был?

Так бы было вообще правильно!

Подскажите как сделать? Переменными заменить?

POSITION_TYPE_BUY
POSITION_TYPE_SELL
 
Paulo74:

Это так, чтобы в public советника управление вывести? Проставлять true/false чтобы сигнал универсальный был?

Так бы было вообще правильно!

Подскажите как сделать? Переменными заменить?

Не всё так просто:

  1. Мастер MQL5: Как научить эксперта открывать отложенные ордера по любым ценам

  1. Мастер MQL5: Расширение стандартной библиотеки для установки ордеров, стопов и целей по вычисляемым ценам
 

Владимир, добрый день

Вопрос по стандартному модулю SignalITF

Там нет long/short conditions, управление идёт через direction. Соответственно он влияет сразу на всю активность советника (открытие/закрытие позиций).

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