Смотрите Организация доступа к данным
Rosh, а что мне там смотреть я наизусть там выучил уже почти все! Ясно что в каждый конкретный момент времени может быть и недоступна история, но даже если перед каждым вызовом CopyRates(), прописать CheckLoadHistory(), все равно при ПЕРВОМ запуске будет ERR_HISTORY_NOT_FOUND!
Если я чего-то недопонял, ок, тогда как дополнить код, чтобы индикатор рисовался всегда сразу после запуска терминала?
Yedelkin, попробовал, все также, добавил в OnInit следующее:
datetime first_date=D'2002.01.01 00:00'; int res=CheckLoadHistory(Symbol(),PERIOD_D1,first_date); switch(res) { case -1 : Print("Unknown symbol ",Symbol()); break; case -2 : Print("Requested bars more than max bars in chart "); break; case -3 : Print("Program was stopped "); break; case -4 : Print("Indicator shouldn't load its own data "); break; case -5 : Print("Load failed "); break; case 0 : Print("Loaded OK "); break; case 1 : Print("Loaded previously "); break; case 2 : Print("Loaded previously and built "); break; default : Print("Unknown result "); }
Не помогло! Могли бы вы проверить сами у себя этот исходник, вариант кода с CheckLoadHistory, в приложении!
Yedelkin, попробовал, все также, добавил в OnInit следующее:
Не помогло! Могли бы вы проверить сами у себя этот исходник, вариант кода с CheckLoadHistory, в приложении!
Попробуйте теперь поменять дневной период на одноминутный. У меня график появился
https://charts.mql5.com/1/13/gbpusd-m1-metaquotes-software-corp.png
Но с сообщением, что индикатор не может загрузить свои собственные данные.
=====================================
Почему-то картинка не вставляется. А код <img src="https://charts.mql5.com/1/13/gbpusd-m1-metaquotes-software-corp.png" width="782" height="330" alt="GBPUSD, M1, MetaQuotes Software Corp., Contest" title="GBPUSD, M1, MetaQuotes Software Corp., Contest"> - удаляется из HTML-версии сообщения :/Попробуйте теперь поменять дневной период на одноминутный. У меня график появился
<img src="https://charts.mql5.com/1/13/gbpusd-m1-metaquotes-software-corp.png" width="782" height="330" alt="GBPUSD, M1, MetaQuotes Software Corp., Contest" title="GBPUSD, M1, MetaQuotes Software Corp., Contest">
Но с сообщением, что индикатор не может загрузить свои собственные данные.
Да если поставить период M1, то работает, но это одно и тоже что текущий период графика! А если через CopyRates() иной период запрашивать, то эта ошибка! Тут явно ошибкой терминала пахнет.
Люблю разбираться в чужом коде, но сейчас испытываю нехватку времени. Пишите в Сервис-деск с приложением кода и мыслей.
:) Вы конечно юморист, спасибо конечно вам и за это участие, там кода 2 строки конечно..
Просто суть одна: при запросе данных иного периода, чем тот на котором работает индикатор, не работает с первой инициализации!
На просмотр Вашего кода и поиск проблемного места в "двух строках" я потратил минут 7. В итоге - картинка появилась. Объяснил, почему на дальнейшие вопросы ответить не смогу. У Вас это почему-то вызывает ассоциации с юмором.
Понял, предыдущее своё сообщение удалил.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Что имеем:
Пользовательский индикатор. В отдельном окне. DRAW_HISTOGRAM.
В ходе своей работы запрашивает через стандартную функцию CopyRates(), котировки ДРУГОГО периода, НЕ того на котором он запущен.
Проблема:
При первом запуске на графике или особенно, при закрытие полностью терминала с включенным этим индикатором, и последующим запуске терминала, выдает ERR_HISTORY_NOT_FOUND абсолютно на весь период истории.
Стоит по переключать периоды графика, и он начинает показывать всегда. Все повторяется при закрытии и открытии терминала с этим индикатором снова. Билд терминала: 695
Код: