Ошибки, баги, вопросы - страница 3661
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Докажите примером, пожалуйста
override позволяет понять, что это виртуальный метод. Но два нюанса.
Это два личных предпочтения, и надеяться, что язык их удовлетворит, не стоит. Вы свободны использовать то, что считаете нужным.
Тема C++ для справки .
Всех приветствую. Такая проблема.
Есть индикатор, который в функции int OnInit() запрашивает число баров по текущему символу:
Потом запрашиваются бары, и по ним строится индикатор.
Проблема:
При запуске индикатора - всё проходит нормально. Однако, если закрыть терминал, и перезапустить его (индикатор остался на графике), то функция запроса баров SeriesInfoInteger() в функции OnInit() возвращает false, а запрос GetLastError() возвращает код 4401 (ERR_HISTORY_NOT_FOUND).
То есть, получается, что при перезапуске терминала - история баров в момент инициализации индикатора ещё не готова?
Кто-нибудь с таким сталкивался? Что я делаю не так? Вроде раньше у меня подобного никогда не было...
Интересно, что в МТ4 тот же код работает нормально, и при перезапуске терминала - функция возвращает верный ответ, и дальше индикатор работает корректно. Как в МТ5 убедиться внутри функции OnInit, что бары таймсерии есть, и узнать, сколько их? (Так, чтобы при перезапуске терминала - всё возвращалось правильно)
То есть, получается, что при перезапуске терминала - история баров в момент инициализации индикатора ещё не готова?
Проверить через Sleep гипотезу пробовали?
Вполне вероятно, что так и есть, и это, конечно, плохо.
Sleep
Sleep в индикаторах не работает.
Вот же диво, а я и не знал, редко ими занимаюсь. Спасибо.
Проверить через Sleep гипотезу пробовали?
Вполне вероятно, что так и есть, и это, конечно, плохо.
У меня подобная проблема была в советнике и Sleep() не помогала.
Значит, остаётся надеется, что на проблему обратят внимание разработчики.
Значит, остаётся надеется, что на проблему обратят внимание разработчики.
Да. Будем надеяться.
Раз в МТ4 абсолютно тот же код нормально работает - следовательно, это системная проблема.
Пока что попытаюсь вынести инициализацию индикатора - в отдельную процедуру, и потом запускать её на первом пришедшем тике. Если получится - отпишусь.
Да, всё верно.
Обращаю внимание разработчиков, ошибка.
При запуске индикатора при работающем MT5 - все проходит штатно, и без ошибок.
Если оставить индикатор на графике, и перезапустить МТ5, то в момент вызова функции Init() индикатора - таймсерии ещё не готовы:
Лично я пока обошёл проблему повторной инициализацией при первом вызове OnCalculate(). Если во время OnInit() не получилось инициализироваться, то я ещё раз проделываю все нужные действия в первом вызове OnCalculate - в этом случае и символ синхронизирован, и количество баров выдаётся верно.