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

 
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,

итд.

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

MqlRates rates[];

rates[0].open> rates[0].close

Подскажите пожалуйста, как организовать проверку этого условия на текущем таймфрейме и сразу ещё на нескольких, двух, трёх, пяти. Как сильно это сказывается на производительности тестирования?  Буду рад ссылке на мультифреймовый советник или индикатор MT5.

 
Николай К:

MqlRates rates[];

rates[0].open> rates[0].close

Подскажите пожалуйста, как организовать проверку этого условия на текущем таймфрейме и сразу ещё на нескольких, двух, трёх, пяти. Как сильно это сказывается на производительности тестирования?  Буду рад ссылке на мультифреймовый советник или индикатор MT5.

Массив rates_tf_**[] для каждого тф и CopyRates также для каждого тф в соответствующий массив структур. Как сказывается на скорости тестирования… Вопрос ещё тот. Но ведь ничего другого не дано. Или просто я не знаю…
 


КОД

FileWrite(file_handle, Period());

на ТФ 5 минут показывает 5

НА ТФ 15 мин =15

А на ТФ 1Ч =1536

4ч  = 16388

Почему так?

 
Aleksei Skrypnev:


КОД

на ТФ 5 минут показывает 5

НА ТФ 15 мин =15

А на ТФ 1Ч =1536

Почему так?

Сначала смотрим Period()

... Значение может быть одним из значений перечисления ENUM_TIMEFRAMES:

Идентификатор

Описание

PERIOD_CURRENT

Текущий период

PERIOD_M1

1 минута

PERIOD_M2

2 минуты

PERIOD_M3

3 минуты

PERIOD_M4

4 минуты

PERIOD_M5

5 минут

PERIOD_M6

6 минут

PERIOD_M10

10 минут

PERIOD_M12

12 минут

PERIOD_M15

15 минут

PERIOD_M20

20 минут

PERIOD_M30

30 минут

PERIOD_H1

1 час

PERIOD_H2

2 часа

PERIOD_H3

3 часа

PERIOD_H4

4 часа

PERIOD_H6

6 часов

PERIOD_H8

8 часов

PERIOD_H12

12 часов

PERIOD_D1

1 день

PERIOD_W1

1 неделя

PERIOD_MN1

1 месяц


Обратите внимание: "одно из значений ПЕРЕЧИСЛЕНИЯ ...". То есть это может быть PERIOD_H6 или PERIOD_M1 или любое значение из ПЕРЕЧИСЛЕНИЯ. А вот внутренне представления перечисления - это вообще никого не должно интересовать. Сегодня это '15', а завтра может стать "15478899662'. Но Вам, как программиста это вообще не должно волновать - Вы должны работать со значениями (PERIOD_M4, PERIOD_M15 ...), а не со внутренним представлением.

Документация по MQL5: Проверка состояния / Period
Документация по MQL5: Проверка состояния / Period
  • www.mql5.com
Period - Проверка состояния - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

Сначала смотрим Period()

... Значение может быть одним из значений перечисления ENUM_TIMEFRAMES:



Обратите внимание: "одно из значений ПЕРЕЧИСЛЕНИЯ ...". То есть это может быть PERIOD_H6 или PERIOD_M1 или любое значение из ПЕРЕЧИСЛЕНИЯ. А вот внутренне представления перечисления - это вообще никого не должно интересовать. Сегодня это '15', а завтра может стать "15478899662'. Но Вам, как программиста это вообще не должно волновать - Вы должны работать со значениями (PERIOD_M4, PERIOD_M15 ...), а не со внутренним представлением.

Я думал в файл запишется что-то более понятное)

 Более понятно(как раз вида Perod_H1)   в файл не записать по простому?

 
Aleksei Skrypnev:

Я думал в файл запишется что-то более понятное)

 Более понятно(как раз вида Perod_H1)   в файл не записать по простому?

Если нужно чтобы было очень понятно - пишите в файл в виде текста 'PERIOD_H1' и тому подобное.