Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления - страница 17
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Наверное, надо в эту ветку поместить Ваше описание. Иначе есть риск, что разработчики не заметят.
Рашид (@Rashid Umarov) уже не реагирует на Ваши сообщения, хотя ошибка, как говорится, на лицо.
Я молча читаю и поражаюсь. Все это многократно уже обсуждалось - что в процессе работы терминала количество баров может выходить за пределы MaxBars. Бары не обрезаются.
В этом и есть ошибка.
Ошибка-то и есть ошибка. А как всё написано, я вчера не стал даже пытаться разобраться. Так-же и Рашид поступил.
Ведь в коде берётся time[0] и iTime(,, rates_total-1] и попробуй всё это сложить в одно целое. Разве что с похмелюги…
Я молча читаю и поражаюсь. Все это многократно уже обсуждалось - что в процессе работы терминала количество баров может выходить за пределы MaxBars. Бары не обрезаются.
Рашид, проблема описана как-то непонятно. Потому и реакция Ваша такая. Проблема в том, что время текущего бара не определяется.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления
Alexey Viktorov, 2023.02.07 09:07
Конечно код у вас написан, простите через……… Зачем было так выворачиваться, ведь достаточно написать простой цикл
и получить значения самого свежего бара.
На снимке видно невооружённым взглядом, что на отладке, i = rates_total-1. При этом время time[i] равно текущему часу. А время iTime(_Symbol,PERIOD_CURRENT,i) того-же бара не найдено.
И на следующем баре тоже не найдено…
Конечно код у вас написан, простите через……… Зачем было так выворачиваться, ведь достаточно написать простой цикл
Простите конечно, Алексей, за мои 5 копеек. Но ваш код (при i=rates_total-1) проверяет для time[i] - значение самого свежего бара, а iTime(_Symbol,PERIOD_CURRENT,i) - значение самого старого бара. Какой смысл их сравнивать?
Но факт остаётся фактом. Старые бары iTime(...) не видит. И в этом проблема.Я молча читаю и поражаюсь. Все это многократно уже обсуждалось - что в процессе работы терминала количество баров может выходить за пределы MaxBars. Бары не обрезаются.
То что количество баров выходит за пределы MAXBARS по подсчёту индикатора, это уже очевидно. Но почему индикатор их видит, а функции нет. Вот где косяк. Как можно работать с функциями, если iBars(...) считает те бары, которые не видит iTime(...)
Вот, изменил код. Так вообще интересно. Вместо rates_total поставил iBars(...)
Вот что получается
То что при MAXBARS равным Unlimited все функции всё показывают, это не вызывает вопросов. Но стоит поставить какое то значение MAXBARS, не перегружая терминал, и все старые бары для iTime(...) и других становятся недоступными. В то время как индикатор и iBars(...) их считают.
Вероятно, то что такое происходит, может инициировать ошибки в индикаторах или программах, которые используют iBars(...) и iTime(...), iOpen(...), iHigh(...) и другие одновременно.
Простите конечно, Алексей, за мои 5 копеек. Но ваш код (при i=rates_total-1) проверяет для time[i] - значение самого свежего бара, а iTime(_Symbol,PERIOD_CURRENT,i) - значение самого старого бара. Какой смысл их сравнивать?
Но факт остаётся фактом. Старые бары iTime(...) не видит. И в этом проблема.Да, тормознул…
зы: Вывод один… Как мне сразу не понравилось, что внесли в mql5 эти функции из mql4 так они и показывают себя. Видимо надёжней пользоваться функциями Copy****
Да, тормознул…
зы: Вывод один… Как мне сразу не понравилось, что внесли в mql5 эти функции из mql4 так они и показывают себя. Видимо надёжней пользоваться функциями Copy****
А на них уже в документации наложено это ограничение, не более MAXBARS.
А на них уже в документации наложено это ограничение, не более MAXBARS.
А зачем больше MAXBARS?
Получает количество баров равное rates_total