Ошибка в отображении линий в подвальном индикаторе

 

Здравствуйте, меня попросили написать код в MQL5, раньше я с ним мало работал, только на MQL4.

Столкнулся с непонятной мне ошибкой. Есть код, который переводит 6 массивов в буфер подвального индикатора и каждому данному выдает значение (в моем примере это 10,20,30,40,50,60). Суть кода - с каждой новой свечей отрисовывать эти линии, т.е. в момент установки линии только на текущих барах, далее их длина постепенно будет увеличиваться, в теории все просто. Данный код на MT4 работает отлично, тут же происходит непонятная мне вещь - все линии после очередной компиляции, появления новой свечи или изменения настроек, начинают перерисовывать по непонятным значениям, половина из буферов становится вообще пустой, длина их становится разной. Ошибка появляется не сразу и я не могу понять, что может быть причиной.

Приложу код, который я тестирую, а также скриншоты:
Как должно быть1,Как должно быть2 - как должно индикатор отображать эти линии.

Ошибка 1,2,3 - что происходит на графике после описанных выше действий.


Прошу разбирающихся людей в МТ5 помочь. Возможно где то нужно обновлять данные массива, либо я тип линий не так задан, уже нет даже догадок, грешу на баг МТ5. 

з.ы. терминала пробовал 2 разных, качал самые новые.

з.ы. еще 2 раза был момент, когда накинув на график индикатор он начинал бешено что то высчитывать, перестраивать линии и так примерно с минуту, потом успокаивался.

Файлы:
 
Roman Starostin:

Здравствуйте, меня попросили написать код в MQL5, раньше я с ним мало работал, только на MQL4.

Столкнулся с непонятной мне ошибкой. Есть код, который переводит 6 массивов в буфер подвального индикатора и каждому данному выдает значение (в моем примере это 10,20,30,40,50,60). Суть кода - с каждой новой свечей отрисовывать эти линии, т.е. в момент установки линии только на текущих барах, далее их длина постепенно будет увеличиваться, в теории все просто. Данный код на MT4 работает отлично, тут же происходит непонятная мне вещь - все линии после очередной компиляции, появления новой свечи или изменения настроек, начинают перерисовывать по непонятным значениям, половина из буферов становится вообще пустой, длина их становится разной. Ошибка появляется не сразу и я не могу понять, что может быть причиной.

Приложу код, который я тестирую, а также скриншоты:
Как должно быть1,Как должно быть2 - как должно индикатор отображать эти линии.

Ошибка 1,2,3 - что происходит на графике после описанных выше действий.


Прошу разбирающихся людей в МТ5 помочь. Возможно где то нужно обновлять данные массива, либо я тип линий не так задан, уже нет даже догадок, грешу на баг МТ5. 

з.ы. терминала пробовал 2 разных, качал самые новые.

з.ы. еще 2 раза был момент, когда накинув на график индикатор он начинал бешено что то высчитывать, перестраивать линии и так примерно с минуту, потом успокаивался.

Индексация буферов по умолчанию отличается в 4 и 5. 

5 ка не обнуляет данные за программиста. 

Просто чуть поаккуратнее надо быть и наступит счастье
 
Maxim Kuznetsov:
Индексация буферов по умолчанию отличается в 4 и 5. 

5 ка не обнуляет данные за программиста. 

Просто чуть поаккуратнее надо быть и наступит счастье

можете подробнее написать? 
У меня цель, чтобы буфер хранил всю информацию в себе с момента установки индикатора до снятия с графика. 

При инициализации я два раза чищу массив: ArrayFree и ArrayInitialize(Signal,EMPTY_VALUE);

Во время работы кода я не могу его обнулять, иначе сотрутся все данные, что были в памяти с момента установки.

Причина обращения: