Что не так с функцией iTime() ???

 
iTime(NULL, PERIOD_M15, 0)


 Эту функцию я использую для того, чтобы установить время. Затем это время я вставляю как часть строки и вывожу ошибку. Мне нужно это время, чтобы проверить в следующий раз и убедиться, что ошибка уже выведена, и ее не нужно выводить еще раз в течение этих 15 минут.

Однако, первое вычисление этой функции дает не начало текущей 15-мин свечи..... а последней, которая вычислялась. То есть это может быть свеча 2 часа назад или вообще вчера.

Еще интересно, что если я вхолостую пропускаю эту функцию первый раз, чтобы использовать значение второго раза, это никак не влияет.

Может, что-то нужно обновлять чтобы значение было текущее, а не старое? 

 
Evgeniy Scherbina:
iTime(NULL, PERIOD_M15, 0)


 Эту функцию я использую для того, чтобы установить время. Затем это время я вставляю как часть строки и вывожу ошибку. Мне нужно это время, чтобы проверить в следующий раз и убедиться, что ошибка уже выведена, и ее не нужно выводить еще раз в течение этих 15 минут.

Однако, первое вычисление этой функции дает не начало текущей 15-мин свечи..... а последней, которая вычислялась. То есть это может быть свеча 2 часа назад или вообще вчера.

Еще интересно, что если я вхолостую пропускаю эту функцию первый раз, чтобы использовать значение второго раза, это никак не влияет.

Может, что-то нужно обновлять чтобы значение было текущее, а не старое? 

Код покажите.
 
график M15, используйте CopyTime() с проверкой количества прочитанных значений
 

Надо регулярно вызывать iTime(), что бы данные свежие были. 

Можно по TimeCurrent() вычислить время - (15*60)*(TimeCurrent()/(15*60)) 

 
Dmitry Fedoseev:

Надо регулярно вызывать iTime(), что бы данные свежие были. 

Можно по TimeCurrent() вычислить время - (15*60)*(TimeCurrent()/(15*60)) 

Круто, буду пробовать

Думаю так:

MathFloor(TimeCurrent() / (15*60)) * 15*60


 

 
Dmitry Fedoseev:

Надо регулярно вызывать iTime(), что бы данные свежие были. 

Можно по TimeCurrent() вычислить время - (15*60)*(TimeCurrent()/(15*60)) 

вызывать надо iTime() конкретного таймфрейма -- TimeCurrent() проблему не решит

в примере топикстартера -- надо регулярно делать так:

datetime tt = iTime(NULL, PERIOD_M15, 0);

где-то с пол-года назад на форуме эта тема поднималась и сервисдеск делал пояснения на этот счёт

там проблема с обновлением данных 

 
Andrey F. Zelinsky:

вызывать надо iTime() конкретного таймфрейма -- TimeCurrent() проблему не решит

в примере топикстартера -- надо регулярно делать так:

datetime tt = iTime(NULL, PERIOD_M15, 0);

где-то с пол-года назад на форуме эта тема поднималась и сервисдеск делал пояснения на этот счёт

там проблема с обновлением данных 

Почему TimeCurrent() не решит? Задача - делать уведомление не чаще раза в 15 минут. Точнее - раз на 15-минутку.  В TimeCurrent() всегда свежее время. 
 
Dmitry Fedoseev:
Почему TimeCurrent() не решит? Задача - делать уведомление не чаще раза в 15 минут. Точнее - раз на 15-минутку.  В TimeCurrent() всегда свежее время. 
да, я просто сразу подумал, что у него проблема с обновлением данных таймсерий
Причина обращения: