Советники: 5_8 MACross - страница 3

 
Shara1:

Здравствуйте Владимир. А можно в Вашем советнике сделать покупку, продажу отдельно, и доливки по тренду ?

Спасибо.

Я пока не платинировал правки этого кода.

 
Vladimir Karputov:

Я пока не платинировал правки этого кода.

Владимир подскажите плиз. После прогона в тестере, в отчете почему то парамтры получаются наоборот: mafastperiod-42, а maslowperiod-12. Ведь поидее быстрая должна быть меньше, чем медленная. Прогонял два раза, и оба раза такие результаты.

Спасибо.

 
Shara1:

Владимир подскажите плиз. После прогона в тестере, в отчете почему то парамтры получаются наоборот: mafastperiod-42, а maslowperiod-12. Ведь поидее быстрая должна быть меньше, чем медленная. Прогонял два раза, и оба раза такие результаты.

Спасибо.

"быстрая", "медленная" - это все лишь ярлыки, словесное обозначение параметра. Но в итоге все параметры - это цифры. А так как Вы включаете генетическую оптимизацию и проводите поиск среди тысяч результатов, но не исключены такие перевороты сознания :). Цифра она ведь может быть любой в независимости как Вы там её обзовёте - "медленной" или "быстрой".

Иногда я специально ставлю запрет вроде "медленная" не может быть больше или равна "быстрой", а иногда не ставлю и в итоге получаю интересные результаты.

 
Vladimir Karputov:

"быстрая", "медленная" - это все лишь ярлыки, словесное обозначение параметра. Но в итоге все параметры - это цифры. А так как Вы включаете генетическую оптимизацию и проводите поиск среди тысяч результатов, но не исключены такие перевороты сознания :). Цифра она ведь может быть любой в независимости как Вы там её обзовёте - "медленной" или "быстрой".

Иногда я специально ставлю запрет вроде "медленная" не может быть больше или равна "быстрой", а иногда не ставлю и в итоге получаю интересные результаты.

А как в этом советнике поставить такой запрет?

Спасибо.

 
Shara1:

А как в этом советнике поставить такой запрет?

Спасибо.

В OnInit() пропишите сравнение двух параметров. Если условие не выполнено - тогда выгрузить советник с ошибкой. 

 
Vladimir Karputov:

В OnInit() пропишите сравнение двух параметров. Если условие не выполнено - тогда выгрузить советник с ошибкой. 

Спасибо.

Для меня пока это невыполнимо. А Вы совсем не планируете правки этого кода ?

 
Владимир подскажите плиз в этом Вашем советнике :https://www.mql5.com/ru/code/19578  есть запрет вроде "медленная" не может быть больше или равна "быстрой" , если нет, то дайте пожалуйста ссылку где можно посмотреть.
ma-shift Puria method
ma-shift Puria method
  • голосов: 14
  • 2017.12.13
  • Vladimir Karputov
  • www.mql5.com
В основу советника положен метод Пуриа с небольшими вольностями. Используется сигнал не пересечения быстрой MA медленной, а их движение в одну сторону, подтверждение при пересечении MACD своей нулевой линии и крутизной движения быстрой MA, выраженной в количестве пипсов на тик (параметр Shift (vertically) between MA Fast and MA Slow). Обычный...
 
Shara1:
Владимир подскажите плиз в этом Вашем советнике :https://www.mql5.com/ru/code/19578  есть запрет вроде "медленная" не может быть больше или равна "быстрой" , если нет, то дайте пожалуйста ссылку где можно посмотреть.

В данном советнике есть такая защита:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if(InpTrailingStop>0 && InpFractalTrailing)
     {
      Print("If we use \"Fractal trailing\" - we do not use \"Trailing stop\"!");
      Print("If we use \"Trailing stop\" - we do not use fractal \"Fractal trailing\"!");
      return(INIT_PARAMETERS_INCORRECT);
     }

здесь проверяется параметр на то, что он больше нуля и при этом стоит флаг.

 

А вот в коде EMA Cross Contest Hedged уже есть защита двух периодов усреднения двух индикаторов Moving Average:

   if(InpShort_ma_period>=InpLong_ma_period)
     {
      Print("\"MA short: averaging period\" can not be greater and equal to \"MA long: averaging period\"");
      return(INIT_PARAMETERS_INCORRECT);
     }
 
Vladimir Karputov:

А вот в коде EMA Cross Contest Hedged уже есть защита двух периодов усреднения двух индикаторов Moving Average:

То есть мне нужно после вот этой строчки - int OnInit()

Вставить вот это - 

 if(InpShort_ma_period>=InpLong_ma_period)
     {
      Print("\"MA short: averaging period\" can not be greater and equal to \"MA long: averaging period\"");
      return(INIT_PARAMETERS_INCORRECT);
     }

Получится вот так-

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
 if(InpShort_ma_period>=InpLong_ma_period)
     {
      Print("\"MA short: averaging period\" can not be greater and equal to \"MA long: averaging period\"");
      return(INIT_PARAMETERS_INCORRECT);
     }

Спасибо.

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