Коллеги, нужна помощь, пишу код советника:
выдает ошибку на первом тике:
USDJPY,M15: array out of range in 'smartmoney.mq4' (155,24)
не понимаю почему
Скорее всего не хватает исторических данных
тоже так подумал. но во-первых они есть. пробовал и разные символы.
во-вторых даже если изменить цикл и начинать его с 0, то та же ошибка.
не понимаю
тоже так подумал. но во-первых они есть. пробовал и разные символы.
во-вторых даже если изменить цикл и начинать его с 0, то та же ошибка.
не понимаю
У меня недавно похожее было. Добавьте глобальную bool переменную и пропустите первый тик:
bool b=false if (b){ //вычисления } b=true;
Я это случайно решил. В чем проблема точно не знаю, но это помогло. Попробуйте
заменил на iHigh(Symbol(), PERIOD_CURRENT, i) и ошибка ушла
БРЕД какой-то
Главное что работает... )
Перед обращением к таймсериям нужно проверить количество доступных баров. Индикатор при загрузке терминала запускается раньше, чем на графике появляются данные. В итоге длины всех таймсерий нулевые.
Чтобы такого не было, используйте те подходы к разработке индикаторов, которые показаны в документации.
int counted_bars = prev_calculated; //---- последний посчитанный бар будет пересчитан if (counted_bars > 0) counted_bars--; int limit = rates_total - counted_bars; for (int i = limit; i >= 0; --i) { }
Это надежно. А обращаться к данным только на том основании, что "я их вижу" совершенно несерьезно.
А теперь проверьте, что возвращает на первом тике iHigh )))
А теперь проверьте, что возвращает на первом тике iHigh )))
я пишу советника, а не индикатор
я пишу советника, а не индикатор
В данном случае нет никакой разницы. Только причина отсутствия исторических данных другая. А вот причина ошибки (выход за пределы массива) одна и та же.
В цикле тогда нужно изменить:
for (int i = fmin(1440, iBars(NULL, PERIOD_CURRENT) - 1); i > 0; i--)

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Коллеги, нужна помощь, пишу код советника:
выдает ошибку на первом тике:
USDJPY,M15: array out of range in 'smartmoney.mq4' (155,24)
не понимаю почему