Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 343

 
barabashkakvn:

Измените в коде расчёта

 на

 То есть 13 или 12 или ещё какое-либо число - это должен быть параметр "Период". Период усреднения

Урааа !

Спасибо получилось. Только почему этого параметра нет в оригинальном индикаторе ? Он там по умолчанию что ли прописывается не знаете ?

Ну то есть я задаю только количество баров для усреднения и всё. Собственно в исходнике этот единственный параметр и подставляется в формулу.

А в последнем варианте получилось аж два параметра. Кол-во баров для усреднения и еще один для расчета SmoothFactor.

 
Alvin1976:

Урааа !

Спасибо получилось. Только почему этого параметра нет в оригинальном индикаторе ? Он там по умолчанию что ли прописывается не знаете ?

Ну то есть я задаю только количество баров для усреднения и всё. Собственно в исходнике этот единственный параметр и подставляется в формулу.

А в последнем варианте получилось аж два параметра. Кол-во баров для усреднения и еще один для расчета SmoothFactor.

Всё есть в поставке. Смотрите код индикатора "***\MQL5\Indicators\Examples\Custom Moving Average.mq5"
 
barabashkakvn:
Всё есть в поставке. Смотрите код индикатора "***\MQL5\Indicators\Examples\Custom Moving Average.mq5"

Дык я оттуда всё и брал :-).  Наверное что то не понимаю просто.....

Всё равно почему то расчетные значения EMA не сходятся с оригинальными.

Может быть где-нибудь есть этот индикатор переделанный в функцию ?

 
Alvin1976:

Дык я оттуда всё и брал :-).  Наверное что то не понимаю просто.....

Всё равно почему то расчетные значения EMA не сходятся с оригинальными.

Может быть где-нибудь есть этот индикатор переделанный в функцию ?

А может лучше создать в OnInit() советника два хендла индикатора iMA с разными типами сглаживания и потом просто получать значения этих индикаторов? 

 
barabashkakvn:

А может лучше создать в OnInit() советника два хендла индикатора iMA с разными типами сглаживания и потом просто получать значения этих индикаторов? 

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

Так на выходе на первом баре получаются переменные значения хотя бар уже сформирован ! В MQL4 все работает хорошо а тут ужас.

     MAvarage1[ns] = INVALID_HANDLE;                        //-----------------------------------
   for (int i=0;i<10;i++) //10 попыток создать индикатор
      {
       MAvarage1[ns]=iMA(Symbols[ns],DopTF2,MAper1[ns],0,MAmet2,PRICE_CLOSE);
       if (MAvarage1[ns] == INVALID_HANDLE) Sleep(1000);
      }
              //Проверим handle 
   if (MAvarage1[ns] == INVALID_HANDLE) 
   {
    Print("Ошибка при создании MAvarage1! (№", GetLastError(), ")");
    return;
   } 

  Recount=false;
  if (CopyBuffer(MAvarage1[ns],0,0,2,MA1)<1) Recount=true;
  if (Recount){
  Print("Ошибка при копировании из индикатора ! (№", GetLastError(), ")");
  return;   
  }
  Print("MA1[1]=",MA1[1]);
 
Alvin1976:

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

Так на выходе на первом баре получаются переменные значения хотя бар уже сформирован ! В MQL4 все работает хорошо а тут ужас.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопросы от начинающих

barabashkakvn, 2015.02.08 07:25

А может лучше создать в OnInit() советника два хендла индикатора iMA с разными типами сглаживания и потом просто получать значения этих индикаторов? 


 

Я уже замучался с переносом кода на MQL5. В основном проблема с индикаторами. Стохастик вообще какой-то "левый" получается.

Решил полностью рассчитывать значения сам.

Мне MQL5 нужен только для скорости оптимизации и для проверки работы в мультивалютном режиме. Всё !

Больше он ни для чего не годится. И я очень надеюсь что ни один дилинговый центр на это "чудо" никогда не перейдет.

Ааа с переменными значениями разобрался ! CopyBuffer оказывается меняет порядок следования индюков на обратный !

Вот зачем такое делать а ???

 

Alvin1976:

...Ааа с переменными значениями разобрался ! CopyBuffer оказывается меняет порядок следования индюков на обратный !

Вот зачем такое делать а ???

Чтобы не запрашивать у индикатора то, что не нужно... представьте, пришли Вы в газетный киоск. И Вам нужна какая-то газета за последние 3 дня. А Вам говорят, мы продадим Вашу газету, но только за последние 20 дней... оно Вам нужно? :-)
 
denkir:
Чтобы не запрашивать у индикатора то, что не нужно... представьте, пришли Вы в газетный киоск. И Вам нужна какая-то газета за последние 3 дня. А Вам говорят, мы продадим Вашу газету, но только за последние 20 дней... оно Вам нужно? :-)

Ну так и в MQL4 тоже лишнего не надо было запрашивать. Дело то не в количестве а в порядке следования.

Логика то где ? Уже все привыкли что нулевой элемент массива это текущий бар. Зачем что то менять ????

З.Ы. Вылечил через ArraySetAsSeries.

Танцы с бубном.....

 
Alvin1976:

Ну так и в MQL4 тоже лишнего не надо было запрашивать. Дело то не в количестве а в порядке следования.

Логика то где ? Уже все привыкли что нулевой элемент массива это текущий бар. Зачем что то менять ????

З.Ы. Вылечил через ArraySetAsSeries.

Танцы с бубном.....

Это не танцы с бубном, а новшества к которым придётся привыкать. И эти новшества в некоторых случаях очень облегчают решение задачи. О примерах не спрашивай, дискутировать не буду.
Причина обращения: