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

 
rosomah:
Если я поставлю после      indHandle = iMA(_Symbol,0,ma_ind_p,0,0,indStochasticHandle);

то компилятор найдёт - 0, т.к. у iMA только нулевой буфер. Вышестоящий хэндл не учитывается.

Перефразирую вопрос, - что нужно сделать что бы хэндл стохастика с буфером-1 попал в iMA? Какие действия нужно провести между этими двумя строчками.

{  int indStochasticHandle = iStochastic(_Symbol,0,5,3,3,MODE_SMA,STO_LOWHIGH); // хэндл индикатора iStochastic

???????????????????????????????????????????????????????

 indHandle = iMA(_Symbol,0,ma_ind_p,0,0,indStochasticHandle);}  // 

Пожалуйста, вставьте код с помощью кнопочки "SRC" - иначе трудно видеть, что Вы хотите
 
rosomah:
Если я поставлю после      indHandle = iMA(_Symbol,0,ma_ind_p,0,0,indStochasticHandle);

то компилятор найдёт - 0, т.к. у iMA только нулевой буфер. Вышестоящий хэндл не учитывается.

Перефразирую вопрос, - что нужно сделать что бы хэндл стохастика с буфером-1 попал в iMA? Какие действия нужно провести между этими двумя строчками.

{  int indStochasticHandle = iStochastic(_Symbol,0,5,3,3,MODE_SMA,STO_LOWHIGH); // хэндл индикатора iStochastic

???????????????????????????????????????????????????????

 indHandle = iMA(_Symbol,0,ma_ind_p,0,0,indStochasticHandle);}  // 

Посмотрите в сторону iCustom():

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

Как Moving Average взять не от графика, а от индикатора?

sergey1294, 2011.03.22 00:21

...

Для получения значений пользовательского индикатора из других mql5-программ используется функция iCustom(), возвращающая хэндл индикатора для последующих операций. При этом также можно указать необходимый массив  price[] или хэндл другого индикатора. Этот параметр должен передаваться последним в списке  входных переменных пользовательского индикатора.
 
Пример:

void OnStart()
  {
//---
   string terminal_path=StatusInfoString(STATUS_TERMINAL_PATH);
   int handle_customMA=iCustom(Symbol(),PERIOD_CURRENT"Custom Moving Average",13,0, MODE_EMA,PRICE_TYPICAL);
   if(handle_customMA>0)
      Print("handle_customMA = ",handle_customMA);
   else
      Print("Cannot open or not EX5 file '"+terminal_path+"\\MQL5\\Indicators\\"+"Custom Moving Average.ex5'");
  }

В данном примере последним параметром передано значение PRICE_TYPICAL (из перечисления ENUM_APPLIED_PRICE ), которое указывает, что пользовательский индикатор будет построен по типическим ценам, полученным как (High+Low+Close)/3. Если параметр не указывается, то индикатор строится по значениям PRICE_CLOSE, то есть по ценам закрытия каждого бара.

...



 
{  int indStochasticHandle = iStochastic(_Symbol,0,5,3,3,MODE_SMA,STO_LOWHIGH); 

//что нужно сделать что бы хэндл стохастика с буфером-1 попал в iMA? Какие действия нужно провести 
//между этими двумя строчками.

 indHandle = iMA(_Symbol,0,ma_ind_p,0,0,indStochasticHandle);}  // 
 
barabashkakvn:

Посмотрите в сторону iCustom():

Спасибо за желание помочь, я тут штук пять разных статей прочёл. Подставлять 0-й буфер любого индикатора,- в машку или в любой другой просто. Но ни в одной не сказано как подставлять очередные буфера. Предполагаю, что нужно копировать массив одного индикатора в другой, но как?
 
rosomah:
indHandle = iMA(Symbol(),PERIOD_CURRENT,"iMa_on_Stochastic",13,0,MODE_EMA,indStochasticHandle)
 
подскажите пожалуйста где в терминале на мт4 настраивается сигнал (чтобы настроить объем от поставщика к подписчику)
 

Подскажите пожалуйста как избавиться от предупреждения о потере данных при преобразовании.Функция SymbolInfoInteger возвращает значение типа long,хотя там где моя переменная используется требуется тип int.Просто раздражает это предупреждение в компиляторе )))

Либо же как по-другому  узнать число знаков после запятой в произвольно взятом символе ?

double tp=0.0;  
string   i_symbol;        // символ для всех операций
int digits=SymbolInfoInteger(i_symbol,SYMBOL_DIGITS); // число знаков в символе после запятой
tp=NormalizeDouble(tp,digits);
 
lewvik:

Подскажите пожалуйста как избавиться от предупреждения о потере данных при преобразовании.Функция SymbolInfoInteger возвращает значение типа long,хотя там где моя переменная используется требуется тип int.Просто раздражает это предупреждение в компиляторе )))

Либо же как по-другому  узнать число знаков после запятой в произвольно взятом символе ?

   double tp=0.0;
   string   i_symbol;        // символ для всех операций
   int digits=int(SymbolInfoInteger(i_symbol,SYMBOL_DIGITS)); // число знаков в символе после запятой
   tp=NormalizeDouble(tp,digits);

 
barabashkakvn:

Спасибо!А то у меня с приведением типов как то туговато )))
 

Здраствуйте.

Пытаюсь перейти на пятерку, но пока не врублюсь в логику синтаксиса.

Как из индикатора четверки   double i= iHigh(Symbol(),0,1); перевести в mql5, 

статьям пока ума дать не могу.

Спасибо 

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