Собрал советник из этой темы:
https://www.mql5.com/ru/articles/830
Советник скомпилировался, но на тестах выходит ошибка "array out of range".
На отладке показывает на строчку - BAR[bar]=rate.close-zlevel;
Кто подскажет как этот баг исправить?
у Вас BAR[bar] больше чем количество элементов в массиве
и нужно учесть, что bar начинается не с единицы, а с нуляВы не поняли
Там вообще весь код надо переделывать
Везде, где фигурирует 512
Это и синдромы тоже
Грубо говоря, вам нужно сделать 511 как входов, так и синдромов
Хотя не понятно, в оригинальном файле такая же структура массива!
В оригинале всё правильно.
Но, в оригинале автор не использует весь массив.
Он просто показал, сколько максимально можно использовать входов - 512.
От нуля до 511, включая 0. Это и есть 512 штук. Но объявление массива должно содержать число 512.
Это количество выбрано для того, чтобы напомнить о его словах в статье - максимальное количество столбцов в программе редактирования CSV-файлов - 512.
В оригинале всё правильно.
Но, в оригинале автор не использует весь массив.
Он просто показал, сколько максимально можно использовать входов - 512.
От нуля до 511, включая 0. Это и есть 512 штук. Но объявление массива должно содержать число 512.
Это количество выбрано для того, чтобы напомнить о его словах в статье - максимальное количество столбцов в программе редактирования CSV-файлов - 512.
Все понял, вопрос решился так:
double BAR[513]; // 512 - максимально возможное кол-во полей в DBF-формате
В таком варианте компилятор собрал советника (долго правда).
Все работает.
Благодарю всех за помощь!

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Собрал советник из этой темы:
https://www.mql5.com/ru/articles/830
Советник скомпилировался, но на тестах выходит ошибка "array out of range".
На отладке показывает на строчку - BAR[bar]=rate.close-zlevel;
Кто подскажет как этот баг исправить?