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

 
Всем откликнувшимся Огромное спасибо!!!   Буду пробовать ваши варианты!
 
Alexey Viktorov:

Если сделаете такое перечисление

то можно будет попробовать написать так

Вы как всегда предложили лучший способ решения моей задачи!

 
Alexey Viktorov:

Зачем в int переводить? Ведь в mql5, начиная с Н1 значение перечисления не равно количеству минут. И на мой взгляд наоборот внесёт сплошные непонятки.

Ваш способ кажется тоже работоспособен!  Спасибо!!!

 
Alexey Viktorov:

И что? А в перечислении ENUM_TIMEFRAMES они имеют что-то другое? Или есть опасение нехватки памяти? Я не умею так заморачиваться…


ps; Ах как медленно я набираю текст…)))) Пока я набирал одну строку Kira27 набрал вон сколько……… И что-то я подозреваю, это будет использоваться в mql4.

В MQL5  )))

 
Вот скрипт для пробы, пашет)))
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   enum frame1 // перечисление именованных констант
     {
      m1  = (int)PERIOD_M1,
      m5  = (int)PERIOD_M5,
      m15 = (int)PERIOD_M15,
      m30 = (int)PERIOD_M30,
      h1  = (int)PERIOD_H1,
      h4  = (int)PERIOD_H4,
      d1  = (int)PERIOD_D1,
      W1  = (int)PERIOD_W1,
      MN1 = (int)PERIOD_MN1
     };
   double T = iHigh(NULL,(ENUM_TIMEFRAMES) d1,0);

   Alert("Frame= ", (ENUM_TIMEFRAMES)  d1," iHigh= ",T);

  }

результат такой      Хотя интовое значения дня в минутах 1440.  Но работает, хай верно указывает.

 
Alexey Viktorov:

И что? А в перечислении ENUM_TIMEFRAMES они имеют что-то другое? Или есть опасение нехватки памяти? Я не умею так заморачиваться…


ps; Ах как медленно я набираю текст…)))) Пока я набирал одну строку Kira27 набрал вон сколько……… И что-то я подозреваю, это будет использоваться в mql4.

Ваш способ даёт тот же результат)))  

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   enum frame1 // перечисление именованных констант
     {
      m1  = PERIOD_M1,
      m5  = PERIOD_M5,
      m15 = PERIOD_M15,
      m30 = PERIOD_M30,
      h1  = PERIOD_H1,
      h4  = PERIOD_H4,
      d1  = PERIOD_D1,
      W1  = PERIOD_W1,
      MN1 = PERIOD_MN1
     };
 
   double T = iHigh(NULL,(ENUM_TIMEFRAMES) d1,0);
   
   Alert("Frame= ", (ENUM_TIMEFRAMES)  d1," iHigh= ",T);
  }

 
Kira27:

Ваш способ даёт тот же результат)))  

Я в этом не сомневался :-)))

 
Всем привет!

Прошу Вас помочь заменить функцию написанную на MQL4, на MQL5

double iHig(datetime ds, datetime de)
  {
   //Alert(iBarShift(Symbol(),PERIOD_CURRENT,ds),"  ",ds);
   return
      High[
         iHighest(Symbol(),PERIOD_CURRENT,MODE_HIGH,
                  iBarShift(Symbol(),PERIOD_CURRENT,ds)-iBarShift(Symbol(),PERIOD_CURRENT,de)+1,
                  iBarShift(Symbol(),PERIOD_CURRENT,de)
                 )
          ];
  }

Вся проблема заключается в том, что в MQL5 - нет предопределенных переменных High и чем и как мне заменить эту переменную я не понимаю.

 
Sprut 185:
Всем привет!

Прошу Вас помочь заменить функцию написанную на MQL4, на MQL5

Вся проблема заключается в том, что в MQL5 - нет предопределенных переменных High и чем и как мне заменить эту переменную я не понимаю.

Есть же таймсерии в MQL5  

iHigh, 

iLow,

итд.

Раздел справки:  Доступ к таймсериям и данным индикаторов/
 
Kira27:

Есть же таймсерии в MQL5  

iHigh, 

iLow,

итд.

Раздел справки:  Доступ к таймсериям и данным индикаторов/
Спасибо за подсказку, сразу не нашёл........ Оказывается эта переменная - просто под другим именем.
Причина обращения: