![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Разумно. Первый вариант не мой случай, т.к. графиков много, а скрипт может обратиться к любому. Держать все графики открытыми с запущенным индикатором нмв не совсем красивое решение.
А второй вариант обязательно попробую и напишу что из этого вышло.
Спасибо.
Полноценного решения проблемы не знаю. У меня открыты все графики. Кстати, индикаторы вешать не обязательно. Если график открыт, то шансов, что нужный бар уже загружен, намного больше. Соответственно, висеть в ожидании подгрузки приходится в разы, если не на порядки, меньше.
Надо проверять существование бара, для того, чтобы быть уверенным, что котировка загрузилась. Я это делаю по времени бара. Сравниваю на равенство времена баров запрашиваемой пары и пары EURUSD, которую я тщательно контролирую, с того же таймфрейма. Если времена совпали, то котировка подгрузилась. Это приходится делать, несмотря на то, что открыты все графики. (На мелких таймфреймах котировки может вообще не существовать, поэтому в таких вариантах я использую последнюю известную цену).
Конечно, есть решение, когда можно не открывать все графики. Повесить на график нужного таймфрейма индикатор расчета индексов валют. Только нужно убедиться, что тот берет в расчет все пары. Дождаться, когда он будет нормально отрисовываться (подкачает историю, для этого, возможно, его придется неоднократно перезапустить). Потом пусть он у вас висит на графике и незаметно подкачивает историю, а вы работайте со своим скриптом. Но, все равно очень желательно проверять существование нужного бара.
Полноценного решения проблемы не знаю. У меня открыты все графики. Кстати, индикаторы вешать не обязательно. Если график открыт, то шансов, что нужный бар уже загружен, намного больше. Соответственно, висеть в ожидании подгрузки приходится в разы, если не на порядки, меньше.
Надо проверять существование бара, для того, чтобы быть уверенным, что котировка загрузилась. Я это делаю по времени бара. Сравниваю на равенство времена баров запрашиваемой пары и пары EURUSD, которую я тщательно контролирую, с того же таймфрейма. Если времена совпали, то котировка подгрузилась. Это приходится делать, несмотря на то, что открыты все графики. (На мелких таймфреймах котировки может вообще не существовать, поэтому в таких вариантах я использую последнюю известную цену).
Конечно, есть решение, когда можно не открывать все графики. Повесить на график нужного таймфрейма индикатор расчета индексов валют. Только нужно убедиться, что тот берет в расчет все пары. Дождаться, когда он будет нормально отрисовываться (подкачает историю, для этого, возможно, его придется неоднократно перезапустить). Потом пусть он у вас висит на графике и незаметно подкачивает историю, а вы работайте со своим скриптом. Но, все равно очень желательно проверять существование нужного бара.
Ага, значит это все ж таки приличная проблема. :-)
Все графики я открыть могу, но не думаю, что это будет решением. Пока интернет безлимит - не проблема. Но часто бывают выездные сессии. А там роуминг и т.д - дорого будет.
С индикатором расчета индексов - тоже не вариант. Это по трафику практически тот же самый вариант.
Мне понравилось решение с
Нужно ждать до тех пор пока приходит ошибка (это означает, что запрошенные исторические данные в состоянии обновления):