Исходный код
Массив MQL5 вне диапазона: найдите первый недопустимый индекс
Индекс массива должен ссылаться на реально существующий элемент. Успешная компиляция не доказывает, что каждый цикл выполнения использует действительный индекс. Начните с первой заявленной строки, а не исправляйте все петли одновременно.
Запишите границы
Для одномерного массива с пятью элементами действительными индексами, отсчитывающимися от нуля, являются индексы от нуля до четырех. Цикл, включающий индекс пять, заходит слишком далеко. При чтении i+1 оставьте место для этого дополнительного элемента.
Проверьте полученные данные
Если вы запросили много ценовых свечей, но получили меньше, запрошенное количество не является безопасным циклом. Зарегистрируйте количество копий, длину массива и ошибочный индекс. Решите, что должен делать советник, когда история не готова.
Воспроизвести небольшой случай
Попробуйте первые несколько ценовых свечей, пустой результат и минимальный ретроспективный анализ. В этих случаях ошибка границ часто выявляется быстрее, чем при другом годовом прогоне. Сохраните ошибочный ввод, чтобы можно было еще раз проверить исправление.
Держите исправление узким
Не подавляйте сообщение и продолжайте использовать придуманные цены. Полезное исправление устанавливает допустимые границы или ожидает достоверных данных. Редактируемый исходный код делает возможными эти небольшие целенаправленные улучшения без изменения всей стратегии.
Начните с бесплатного редактируемого проекта EA.·Изучите исходный код MQLume
Вернуться к началу