Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
никогда не жду скопируются или нет данные, послал команду, скопировало сколько надо идем дальше, не скопировало, сбрасываем флаг последнего доступа и на следующем тике проверяем можно ли скопировать данные.
с уважением.
P.S. а ожидание чего то от копирования, да мало ли какие проблемы могут быть в терминале и почему он не скопировал. других, вменяемых возможностей, я не нашел, только так. копирую только недостающие данные.
Доброй ночи, Андрей! Как вы определите сколько чего скопировалось, если обращение к данным терминала всегда выдаёт ошибку?
Считывайте, дочитывайте, перечитывайте, с задержкой в секунду или пять, раз в минуту или в две, через Bars или CopyRates или CopyClose - но если SERIES_TERMINAL_FIRSTDATE даёт ошибку, что вы с этим делать будете? Так никто и не понял, что это трудно воспроизводимая, но фатальная ошибка. И танцы с бубнами не помогают, 4401 всё равно остаётся. То есть существует некоторое состояние терминала, при котором ошибку 4401 программно сбросить невозможно любыми попытками чтения данных. Начало поста хоть прочитайте...
Доброй ночи, Андрей! Как вы определите сколько чего скопировалось, если обращение к данным терминала всегда выдаёт ошибку?
Считывайте, дочитывайте, перечитывайте, с задержкой в секунду или пять, раз в минуту или в две, через Bars или CopyRates или CopyClose - но если SERIES_TERMINAL_FIRSTDATE даёт ошибку, что вы с этим делать будете? Так никто и не понял, что это трудно воспроизводимая, но фатальная ошибка. И танцы с бубнами не помогают, 4401 всё равно остаётся. То есть существует некоторое состояние терминала, при котором ошибку 4401 программно сбросить невозможно любыми попытками чтения данных. Начало поста хоть прочитайте...
Юрий, а Вы попробовали Ваш код запустить в OnTick()/OnCalculate()/OnTimer() - ошибка не исчезает?
Доброй ночи, Андрей! Как вы определите сколько чего скопировалось, если обращение к данным терминала всегда выдаёт ошибку?
Считывайте, дочитывайте, перечитывайте, с задержкой в секунду или пять, раз в минуту или в две, через Bars или CopyRates или CopyClose - но если SERIES_TERMINAL_FIRSTDATE даёт ошибку, что вы с этим делать будете? Так никто и не понял, что это трудно воспроизводимая, но фатальная ошибка. И танцы с бубнами не помогают, 4401 всё равно остаётся. То есть существует некоторое состояние терминала, при котором ошибку 4401 программно сбросить невозможно любыми попытками чтения данных. Начало поста хоть прочитайте...
я не знаю как вы организовываете доступ к историческим данным по нужному вам ТФ, но я копирую все данные командами CopyOpen() и другими из той же серии. почитайте возвращаемое значение данной команды.
P.S. а если у вас нет скопированных данных, то смысла в работе советника дальше нет, на выход.с уважением.
P.S.P.S. да и еще, никогда не копирую данные в OnInit() легче и надежнее проверять данные когда советник уже начал работать.
как мне сказали в СД цитата:
" Индикатор работает в потоке символа. Поэтому, пока индикатор не инициализирован, его не помещают в пул индикаторов соответствующего символа"
конец цитаты.
вполне возможно что и у советника нет доступа к данным, пока он не инициализирован. делайте выводы.
проблем с историей в мт5 нет, я их не нашел, есть не желание прочитать и посмотреть "а как это реализовано в мт5" у программистов.
с уважением.
а еще надо почитать про то, как терминал подгружает историю с сервера в справке. там четко сказано что при отсутствии нужной истории терминал ее подгружает и через какое то время необходимо повторить запрос, что я и реализую в своих советниках.
проблем с историей в мт5 нет, я их не нашел, есть не желание прочитать и посмотреть "а как это реализовано в мт5" у программистов.
с уважением.
Сделал так:
Перебираю все нужные тф на всех нужных символах. В onInit. Цель: инициировать подгрузку истории.С запасом использую и Bars и CopyClose. В надежде, что хоть одна инициирует подгрузку.
УПД. Добавил iClose. По совету отсюда: https://www.mql5.com/ru/forum/279476#comment_8694891
Инициализация замедлилась, но результат тот же.
В onCalculate снова пытаюсь скопировать таймсерии:
Бесконечная ошибка 4401. Втч на символе и тф, на котором работает индикатор