MT5 Build 1861 проблемные вопросы - страница 2

 
Nikolai Semko:

Вдумайтесь в смысл фразы "диапазон дат". В Вашем случае диапазон дат=0. Бар - это не мгновение.

Ну, я вроде по-русски достаточно подробно в предыдущем посте написал. Не знаю, как еще пояснить. Задам тогда вопрос: как по вашему задать "диапазон дат" состоящий из одной даты?

Про бар я специально отметил, что с точки зрения этой функции API - бар, это точка на оси времени. Привел отрывок документации.

 
Stanislav Korotky:

Ну, я вроде по-русски достаточно подробно в предыдущем посте написал. Не знаю, как еще пояснить. Задам тогда вопрос: как по вашему задать "диапазон дат" состоящий из одной даты?

Это уже не диапазон, а просто дата.

 
Stanislav Korotky:

Можно без (ulong), но так нагляднее, имхо. Без (datetime) получим предупреждение компилятора.

так корректней и быстрей:

datetime dt = TimeCurrent(); dt=dt-dt%PeriodSeconds();
 
Nikolai Semko:

Это уже не диапазон, а просто дата.

Ну, это просто ответ не программиста. Ответ человека, для которого ноль - не число ;-).

 

PeriodSeconds() имеет тип INT

Cледовательно корректно записать так

datetime dt = datetime((ulong)TimeCurrent() / ulong(PeriodSeconds()) * PeriodSeconds()));

Ведь INT может быть отрицательным числом

 
Nikolai Semko:

так корректней и быстрей:

Какой-нибудь первоисточник есть? Почему корректней? Насчет быстрее - я померил: одинаково.

 
prostotrader:

PeriodSeconds() имеет тип INT

Cледовательно корректно записать так

Ведь INT может быть отрицательным числом

Да, тут я "наивно" считаю, что данная функция не может вернуть отрицательное число по смыслу. Впрочем, это к теме не имеет отношения ;-)

 
Stanislav Korotky:

Да, тут я "наивно" считаю, что данная функция не может вернуть отрицательное число по смыслу. Впрочем, это к теме не имеет отношения ;-)

Не нужно ничего "наивно" считать.

Просто нужно ГРАМОНТНО приводить типы (смысл тут не причем).

Есть правила, которые нужно просто соблюдать.

 
Stanislav Korotky:

Какой-нибудь первоисточник есть? Почему корректней? Насчет быстрее - я померил: одинаково.

Проверил. Да - был не прав.  В реальности по скорости выполнения одинаковы два варианты. По корректности тоже оба корректные. 

Возможно мой вариант более читабельный, т.к. нет многочисленных приведений типа  и просто короче. :))

 
Stanislav Korotky 2018.06.22 10:19      EN
Nikolai Semko:

Это уже не диапазон, а просто дата.

Ну, это просто ответ не программиста. Ответ человека, для которого ноль - не число ;-).

Ну тогда по Вашей же логике программиста справедливо такое изречение: " Он был программистом с широким диапазоном навыков: от умения приводить типы до умения приводить типы." ;-)