Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления - страница 14
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сломались все double числа!!!
покажет 1.0
выдает всегда целые.
пробовал и с (double) и без всегда одно число.
билд 3571.
Сломались все double числа!!!
Запустил. Какую то фигню вы нагородили.
На каждом тике срабатывает цикл в 41 итерацию.
Да, настройку макс баров вернул на 1000000.
По rates_total получается всё что меньше ляма, то доступно для чтения,
то что больше ляма 1000001, выход за пределы макс баров.
Ну наверно такая разная внутренняя реализация iTime и буфера индикатора. Фиг его знает. ))
Используйте код который показал, проблем нет с ним.
Да, настройку макс баров вернул на 1000000.
По rates_total получается всё что меньше ляма, то доступно для чтения,
то что больше ляма 1000001, выход за пределы макс баров.
Ну наверно такая разная внутренняя реализация iTime и буфера индикатора. Фиг его знает. ))
Используйте код который показал, проблем нет с ним.
Ну вот, я про это пишу. И при этом, то что больше ляма даже нет на графике.
Кажется понял в чём может быть проблема.
Где-то видел говорилось, что индикатор аллоцирует буфер немного больше, чем запрашиваемые данные.
Возможно тот же принцип и для построения исторических данных в индикаторе.
А твой пример кода, не контролирует просчитанные бары, и начинает запрашивать данные с начала буфера, а не сначала данных.
Поэтому Ошибка 4401 - Запрашиваемая история не найдена, пока не встретит первые валидные данные на 1000000.
То есть без контроля просчитанных баров, ты начинаешь бежать по пустому ещё массиву.
Сломались все double числа!!!
покажет 1.0
выдает всегда целые.
пробовал и с (double) и без всегда одно число.
билд 3571.
Кажется понял в чём может быть проблема.
Где-то видел говорилось, что индикатор аллоцирует буфер немного больше, чем запрашиваемые данные.
Возможно тот же принцип и для построения исторических данных в индикаторе.
А твой пример кода, не контролирует просчитанные бары, и начинает запрашивать данные с начала буфера, а не сначала данных.
Поэтому Ошибка 4401 - Запрашиваемая история не найдена, пока не встретит первые валидные данные на 1000000.
То есть без контроля просчитанных баров, ты начинаешь бежать по пустому ещё массиву.
Кажется понял в чём может быть проблема.
Где-то видел говорилось, что индикатор аллоцирует буфер немного больше, чем запрашиваемые данные.
Возможно тот же принцип и для построения исторических данных в индикаторе.
А твой пример кода, не контролирует просчитанные бары, и начинает запрашивать данные с начала буфера, а не сначала данных.
Поэтому Ошибка 4401 - Запрашиваемая история не найдена, пока не встретит первые валидные данные на 1000000.
То есть без контроля просчитанных баров, ты начинаешь бежать по пустому ещё массиву.
Согласно документации, никаких ограничений по максимуму баров на графике в работе функции iTime и др. нет (в отличие от CopyTime(...)). Следовательно из индикатора данные из таймсерии бара можно взять как из массива time, так и из функции iTime. Причём и iBars возвращает количество баров, равное rates_total.
Здесь точно какая то ошибка или недоработка.
Требуется мне конвертировать индикатор из MQL4. И обращаясь к данным из функций iTime и др., получаю нулевые данные. А это неприемлемо. Бар вроде как есть, согласно функции iBars(...), а данные нулевые.
Не важно, что и где аллоцирует индикатор.
Да есть rates_total, но именно в условии цикла Андрея оно не как не контролируется !
Вместо этого подаётся значение datetime, что вообще для меня нонсенс.
которое больше макс баров 1000000