Получение тайм-фрейма для отрисовки графики

 

коллеги, привет, в mql4 трендовую линию в будущее можно было нарисовать, добавив, к примеру, несколько свечей вперед.

типо вот так рассчитать первую и вторую точку. _Period выдавал кол-во минут в одной свече.

      int barNextTime = 5;
      datetime time_1 = iTime(_Symbol,PERIOD_CURRENT,0);
      datetime time_2 = time_1+(_Period*barNextTime*60);

В МТ5 _Period - это битовое поле. Я пытался изучить, что такое битовые поля и применить это к _Period. Но не догнал. Мне предложили распечатать в HEX, чтобы понять, как это поле кодируется. Нифига не понял :)) 

Подскажите, пожалуйста, 3 вопроса:

1. Как теперь можно лаконично рисовать объекты в будущее?

2. Может, какое-то пояснение по этим битовым полям, хексам в рамках _Period

3. Почему разработчики языка пошли таким путем? Чем это оптимальнее? 

 
Nikita Chernyshov:

коллеги, привет, в mql4 трендовую линию в будущее можно было нарисовать, добавив, к примеру, несколько свечей вперед.

типо вот так рассчитать первую и вторую точку. _Period выдавал кол-во минут в одной свече.

В МТ5 _Period - это битовое поле. Я пытался изучить, что такое битовые поля и применить это к _Period. Но не догнал. Мне предложили распечатать в HEX, чтобы понять, как это поле кодируется. Нифига не понял :)) 

Подскажите, пожалуйста, 3 вопроса:

1. Как теперь можно лаконично рисовать объекты в будущее?

2. Может, какое-то пояснение по этим битовым полям, хексам в рамках _Period

3. Почему разработчики языка пошли таким путем? Чем это оптимальнее? 


Если не принципиально использовать _Period,  воспользуйтесь PeriodSeconds().


int barNextTime = 5;
datetime time_1 = iTime(_Symbol,PERIOD_CURRENT,0);
datetime time_2 = time_1+(PeriodSeconds(PERIOD_CURRENT)*barNextTime);
 
Mikhail Makhovskii #:


Если не принципиально использовать _Period,  воспользуйтесь PeriodSeconds().


да, спасибо, это позволяет работает в привычном формате.