Ошибки, баги, вопросы - страница 1984

 
Aleksey Vyazmikin:

Разве не должен исчезать буфер после исчезновения индикатора?

Впрочем, может надо как то деинициализировать вычисления, но как?

А из кода он удалён?

 
Alexey Viktorov:

А из кода он удалён?


В коде он был только объявлен, но вычислений не делалось.

 

Убрал упоминания вообще из кода - пропали буфера.

 
Alexey Viktorov:

Так задумано. Чистота массива и\или буфера индикатора забота программиста.

Кстати, косяк там все-таки есть. Если идет динамическая установка количества граф. серий (по выбору пользователя), даже если в OnDeinit() инициализировать буферы пустыми значениями - они все равно видны при перезапуске индикатора.

Т.е. если indicator_plots больше количества используемых plots (граф. серий) - мусор на экране может остаться (в случае, когда сначала были задействованы все граф. серии, а потом некоторые перестают быть задействованными).

 
Alexey Kozitsyn:

Кстати, косяк там все-таки есть. Если идет динамическая установка количества граф. серий (по выбору пользователя), даже если в OnDeinit() инициализировать буферы пустыми значениями - они все равно видны при перезапуске индикатора.

Т.е. если indicator_plots больше количества используемых plots (граф. серий) - мусор на экране может остаться (в случае, когда сначала были задействованы все граф. серии, а потом некоторые перестают быть задействованными).

Что и происходит у нашего тёзки. Но ведь это решается на "раз", не так? Если plots больше не нужен, его надо либо удалить, либо на каждом баре заполнять не отображающимся значением.

Я не сильно силён в железе, но подозреваю что это связано с очисткой адреса памяти компа. И наверное за счёт этого, в том числе, увеличивается скорость работы МТ.

 
Alexey Viktorov:

Что и происходит у нашего тёзки. Но ведь это решается на "раз", не так? Если plots больше не нужен, его надо либо удалить, либо на каждом баре заполнять не отображающимся значением.

Я не сильно силён в железе, но подозреваю что это связано с очисткой адреса памяти компа. И наверное за счёт этого, в том числе, увеличивается скорость работы МТ.

Не знаю как у него, но я не смог эту проблему решить. По идее, чего проще. Наступил момент деинициализации, взял и обнулил все буферы. Просто все используемые буферы. По идее - должно помочь. Однако, получается следующая картина.

Случай использования всех граф. серий:

А вот, что происходит, когда отключаешь отображение стрелок (через входные параметры):


И какая бы очистка не стояла в OnDeinit() - мусор остается.

 
Alexey Kozitsyn:

Не знаю как у него, но я не смог эту проблему решить.

Позже соберу тестовый индикатор и отправлю в СД.
 
Alexey Kozitsyn:
Позже соберу тестовый индикатор и отправлю в СД.

Мудрое решение!

А мне сказали, что так и надо, и я всё уже переписал и потер...

 
Alexey Kozitsyn:

Не знаю как у него, но я не смог эту проблему решить. По идее, чего проще. Наступил момент деинициализации, взял и обнулил все буферы. Просто все используемые буферы. По идее - должно помочь. Однако, получается следующая картина.

Случай использования всех граф. серий:

А вот, что происходит, когда отключаешь отображение стрелок (через входные параметры):


И какая бы очистка не стояла в OnDeinit() - мусор остается.

Алексей, а нескромный вопрос, PLOT_EMPTY_VALUE прописан?

 
Alexey Viktorov:

Алексей, а нескромный вопрос, PLOT_EMPTY_VALUE прописан?

Да, конечно.
Причина обращения: