Некорректная котировка из терминала - страница 2

 
zayatsikot:


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

А второй вариант обязательно попробую и напишу что из этого вышло.

Спасибо.

Полноценного решения проблемы не знаю. У меня открыты все графики. Кстати, индикаторы вешать не обязательно. Если график открыт, то шансов, что нужный бар уже загружен, намного больше. Соответственно, висеть в ожидании подгрузки приходится в разы, если не на порядки, меньше.

Надо проверять существование бара, для того, чтобы быть уверенным, что котировка загрузилась. Я это делаю по времени бара. Сравниваю на равенство времена баров запрашиваемой пары и пары EURUSD, которую я тщательно контролирую, с того же таймфрейма. Если времена совпали, то котировка подгрузилась. Это приходится делать, несмотря на то, что открыты все графики. (На мелких таймфреймах котировки может вообще не существовать, поэтому в таких вариантах я использую последнюю известную цену).

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

 
Mislaid:

Полноценного решения проблемы не знаю. У меня открыты все графики. Кстати, индикаторы вешать не обязательно. Если график открыт, то шансов, что нужный бар уже загружен, намного больше. Соответственно, висеть в ожидании подгрузки приходится в разы, если не на порядки, меньше.

Надо проверять существование бара, для того, чтобы быть уверенным, что котировка загрузилась. Я это делаю по времени бара. Сравниваю на равенство времена баров запрашиваемой пары и пары EURUSD, которую я тщательно контролирую, с того же таймфрейма. Если времена совпали, то котировка подгрузилась. Это приходится делать, несмотря на то, что открыты все графики. (На мелких таймфреймах котировки может вообще не существовать, поэтому в таких вариантах я использую последнюю известную цену).

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


Ага, значит это все ж таки приличная проблема. :-)

Все графики я открыть могу, но не думаю, что это будет решением. Пока интернет безлимит - не проблема. Но часто бывают выездные сессии. А там роуминг и т.д - дорого будет.

С индикатором расчета индексов - тоже не вариант. Это по трафику практически тот же самый вариант.

Мне понравилось решение с

ErrorDescription(GetLastError())

Нужно ждать до тех пор пока приходит ошибка (это означает, что запрошенные исторические данные в состоянии обновления):

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