Полная загрузка истории графика перед выполнением функций индикатора - страница 2

 
Ihor Herasko #:

пока количество баров прирастает на 2 бара и больше

Почему на 2? 

Можно для этой же цели использовать условие "rates_total - prev_calculated = 1"?

 
Botan626 #:

Почему на 2? 

Можно для этой же цели использовать условие "rates_total - prev_calculated = 1"?

Это может быть просто новый бар, который появился не в результате закачки истории, а в результате естественного течения времени. И заметьте, что не "равно", а именно "больше или равно" двум... Ну или больше 1 ))

 
Ihor Herasko #:

Это может быть просто новый бар, который появился не в результате закачки истории, а в результате естественного течения времени. И заметьте, что не "равно", а именно "больше или равно" двум... Ну или больше 1 ))

Понятно. Прокомментируйте, пожалуйста, посты 7 и 8, очень интересно прочитать ответ.

 
Botan626 #:

А если такой способ: сравнивать время открытия последнего бара с текущим временем сервера TimeCurrent, и пока, например, на H1 не будут равны часы открытия, не производить расчёты в индикаторе. Плохой способ?

По-моему, при первом открытии графика (т. е. когда по нему нет истории) текущая свеча загружается одной из первых. А потом только начинается загрузка более глубокой истории. Даже если я ошибаюсь, на наличие одной какой-то свечи ориентироваться нельзя.

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

 
Botan626 #:

Скорее всего нет, я добавил вывод последней ошибки

терминал выводит только 0 ошибку "2022.05.30 20:58:31.507 Vertical Lines 02 USDNOK,H1: iTime(USDNOK,60) LastError: 0", даже когда график загружал историю.

Значит для текущего ТФ нельзя использовать эту функцию. 

Причина обращения: