TimeCurrent() обновляеться без RefreshRates(). Это нормально?

 
Недавно обнаружил такую вешь: функция TimeCurrent() возращала обновленные значения в процессе выполнения программы без вызова RefreshRates().
Вот, как я это проверил:

void start()
{
    while (!IsStopped())
    {
        Print(TimeCurrent()); // можно поставить преобразование в обычный формат даты, но это не принципиально здесь
        // Sleep(100);       // можно поставить задержку, а то журнал слишком большой будет
    }
}
И как только время изменялось в окошке "Обзор рынка" сразу в журнале появлялось новое значение! Заметьте никакого RefreshRates() нету!
Программа находиться в процессе выполнения! Писал этот код как в скрипте так и в советнике, одно  и тоже!

Вот справка для TimeCurrent():
Справочник MQL4 - Дата и время - TimeCurrent

datetime TimeCurrent( )
Возвращает последнее известное время сервера (время прихода последней котировки) в виде количества секунд, прошедших после 00:00 1 января 1970 года.

Программа сохраняет время прихода последней котировки наряду с предопределенными переменными в переменных своего окружения перед запуском. В процессе выполнения это значение может быть изменено только в результате вызова функции RefreshRates().
...

Объясните пожалуйста, может я не правильно понял?

Еще проверил для предопределенной переменной Bid
void start()
{
    while (!IsStopped())
    {
        Print(Bid);
        // Sleep(100);       // можно поставить задержку, а то журнал слишком большой будет
    }
}
Здесь все нормально, она не меняет своего значения, когда программа в процессе выполнения!

Кому интересно, MarketInfo(), также как и TimeCurrent(), обновляется в процессе выполнения программы!
 

нашел тоже мне ошибку.

это же прекрасно что TimeCurrent() не требует RefreshRates()

вот еслибы RefreshRates() не обновлял TimeCurrent тогда бы была ошибка

 

TimeCurrent обращается напрямую к MarketWatch за временем. Значение последнего известного серверного времени не кешируется для эксперта - данные из справки устарели. Спасибо, поправим описание.

 
Loky:

нашел тоже мне ошибку.


это же прекрасно что TimeCurrent() не требует RefreshRates()


 


вот еслибы RefreshRates() не обновлял TimeCurrent  тогда бы была ошибка


Вы правы, вопрос не первой важности для людей: зачем забивать себе голову и досконально изучать функции, когда можно просто тупо их дублировать для подстраховки.
Я никого не хочу обидеть, просто каждый сам выберает свой стиль программирования.
Я привык все свои программы оптимизировать. И, вообще, не люблю когда в моей программе делается то, о чем я не знаю!
Я подумал, может есть еще такие люди, вот для них написал, пусть теперь знают.
 
stringo:

... Спасибо, поправим описание.

Пожалуйста. Всегда рад помочь и себе и вам)
Был бы признателен, если разработчики сказали свое мнение и в этих ветках
'Что такое нулевой тик?'
'Импорт фунций из DLL. Строковые перепенные и массивы!'