Ошибки, баги, вопросы - страница 1088
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
После перекомпиляции индикатора при работе с динамическими массивами стала возникать ошибка "array out of range".
Раньше не было. Что делать?
Если у вас в начале файла прописаны похожие строки
#include <File.mqh> , то скорее всего эти включаемые файлы были изменены с момента вашей предыдущей компиляции, вами или кем то другим
Если у вас в начале файла прописаны похожие строки
#include <File.mqh> , то скорее всего эти включаемые файлы были изменены с момента вашей предыдущей компиляции, вами или кем то другим
Включаемых файлов нет.
Включаемых файлов нет.
Почему вообще при попытке внести что-либо в динамический массив может возникать ошибка "array out of range"? Он же динамический.
Массив B1[] Задан как соответствующий индикаторному буферу
SetIndexBuffer(0,B1,INDICATOR_DATA); ArraySetAsSeries(B1,true);
Размером массива тут явно управляет не пользователь.
Почему вообще при попытке внести что-либо в динамический массив может возникать ошибка "array out of range"? Он же динамический.
Почему вообще при попытке внести что-либо в динамический массив может возникать ошибка "array out of range"? Он же динамический.
(fcplm)
Кто ж его посадит?! Он же памятник!
Ошибка платформы.
Если при заполнении массива B1 индикаторного буфера происходит повторный вызов процедуры SetIndexBuffer(0,B1,INDICATOR_DATA),
например, при инициализации индикатора, то последующая попытка что-либо записать в массив B1 вызывает ошибку "array out of range".
При однократном, единственном вызове процедуры SetIndexBuffer(0,B1,INDICATOR_DATA) все работает нормально.
Раньше такого не было.
Ошибка платформы.
Если при заполнении массива B1 индикаторного буфера происходит повторный вызов процедуры SetIndexBuffer(0,B1,INDICATOR_DATA),
например, при инициализации индикатора, то последующая попытка что-либо записать в массив B1 вызывает ошибку "array out of range".
При однократном, единственном вызове процедуры SetIndexBuffer(0,B1,INDICATOR_DATA) все работает нормально.
Раньше такого не было.
А зачем вы многократно это делаете?
Привязка буфера означает его зачистку и подготовку к динамической привязке к последующим расчетам. Если второй раз вызвать, то предыдущий буфер будет очищен и заполнится только на очередном вызове перерасчета индикатора.
А зачем вы многократно это делаете?
Привязка буфера означает его зачистку и подготовку к динамической привязке к последующим расчетам. Если второй раз вызвать, то предыдущий буфер будет очищен и заполнится только на очередном вызове перерасчета индикатора.
Это была стандартная полная инициализация индикатора, которая происходит при его первом запуске и осуществляется через Oninit().
Иногда при обновлении истории и т.д. ее также необходимо проводить.
Никто и не думал, что от повторной инициализации индикатора через Oninit() часть массивов просто перестанет отзываться.