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

 
Vitaly Muzichenko:

Спасибо за уделённое внимание.

Общий вид индикатора такой, и как это сделать без iEnvelopesOnArray и iBandsOnArray абсолютно не понял


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

 
Artyom Trishkin:

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

Никто не отказался-бы от них, но они принимают только хендлы, а не произвольные массивы как в mql4

 
Alexey Viktorov:

Никто не отказался-бы от них, но они принимают только хендлы, а не произвольные массивы как в mql4

Ясно. Я тему попутал. Думал по четвёрке вопрос.
 
Artyom Trishkin:
Ясно. Я тему попутал. Думал по четвёрке вопрос.

Вопрос о переводе на пятёрку, и цель - получить аналогичное отображение, как сейчас на четвёрке

Вот более полный код, символы подставляются в индикатор нажатием кнопок на графике, то есть Инитом не обойтись

  for(int i=0; i<limit; i++) {
    Last[i] = Symbol1_Vol*Vol1*iClose(Symbol1_Name,0,iBarShift(Symbol1_Name,0,Time[i])) - 
              Symbol2_Vol*Vol2*iClose(Symbol2_Name,0,iBarShift(Symbol2_Name,0,Time[i]));
  }

 for(int i=0; i<limit; i++) {
    if(ButtonSt) { // кнопка выбора, отображать Bands, или Envelopes
     MA[i]=iMAOnArray(Last,0,Env_Period,0,MODE_SMA,i);
     LineUp[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_UPPER,i);
     LineDn[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_LOWER,i);
    } else {
     MA[i]=iMAOnArray(Last,0,BB_Period,0,MODE_SMA,i);
     LineUp[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
     LineDn[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
    }
  }

Как это перевести на пятёрку? Или это невозможно, в связи с отсутствующим в ней функционалом?

 
Vitaly Muzichenko:

Вопрос о переводе на пятёрку, и цель - получить аналогичное отображение, как сейчас на четвёрке

Вот более полный код, символы подставляются в индикатор нажатием кнопок на графике, то есть Инитом не обойтись

Как это перевести на пятёрку? Или это невозможно, в связи с отсутствующим в ней функционалом?

Так никто не навязывает получать хендл в ините...

 
Alexey Viktorov:

Так никто не навязывает получать хендл в ините...

Я же не против)

Не могу понять, чем вообще заменить iEnvelopesOnArray и iBandsOnArray,так как этого нет в пятёрке, и с чего начать - не представляю. Нужно получить полностью идентичное отображение в МТ5

 
Vitaly Muzichenko:

Я же не против)

Не могу понять, чем вообще заменить iEnvelopesOnArray и iBandsOnArray,так как этого нет в пятёрке, и с чего начать - не представляю. Нужно получить полностью идентичное отображение в МТ5

Потому, что уже не первый раз игнорируешь написанное

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

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

Alexey Viktorov, 2017.09.21 20:06

В корне include есть MovingAverages.mqh а вот ВВ не искал, может и нету. Но лучший вариант в функцию iMA в качестве цены сунуть хендл индикатора источника данных.

У меня пример только со сглаженной iMA

int haMa8, haFastMa, haMa21, haSlowMa;

int OnInit()
 {
   haMa8  = iMA(_Symbol, PERIOD_CURRENT, perFastMa, 0, metodFastMa, priceFastMa);
   haFastMa = iMA(_Symbol, PERIOD_CURRENT, perFastMa, 0, metodFastMa, haMa8);
   
   haMa21 = iMA(_Symbol, PERIOD_CURRENT, perSlowMa, 0, metodSlowMa, priceSlowMa);
   haSlowMa = iMA(_Symbol, PERIOD_CURRENT, perSlowMa, 0, metodSlowMa, haMa21);

//Продолжение догадаешься

Аналогично и ВВ.

Если-же источник, пользовательский индикатор, то придётся

  • Сделать его отдельно.
  • Создать новый индикатор.
  • В него прицепить первый в качестве ресурса.
  • И тогда получив его хендл сунуть в iMA и другие функции.

Вот такие заморочки...


 
Alexey Viktorov:

Потому, что уже не первый раз игнорируешь написанное

В корне include есть MovingAverages.mqh а вот ВВ не искал, может и нету.
Есть: \MQL5\Include\Indicators\Trend.mqh
 
Artyom Trishkin:
Есть: \MQL5\Include\Indicators\Trend.mqh

Спасибо, теперь нашёл.

Мне надо было применить iTEMA к пользовательскому индикатору, так я и не догадался там поискать... Сделал как описано выше, всё работает без нареканий.

 

Прошу помочь с составлением функции.

У меня есть текущий ТФ и расчетный ТФ, функция должна возвращать разность между двумя ТФ в любых комбинациях, если бы измерение было в барах

Расчетный ТФ 15 15 15 60 60 60 240 240 240
Текущий ТФ 15 5 1 15 5 1 60 15 5
Разность в Nбар 1 3 15 4 12 60 4 16 48

Как это реализовать правильно?