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

 
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 прописан?

Да, конечно.
 
Alexey Kozitsyn:
Да, конечно.
Ну если да и значение поставлено 0, то конечно что-то не так... По рисунку видно что на каждом баре стрелка со значением 0.
[Удален]  
Alexey Viktorov:
Ну если да и значение поставлено 0, то конечно что-то не так... По рисунку видно что на каждом баре стрелка со значением 0.
Фишка в том, что пустое = EMPTY_VALUE.
 
Alexey Kozitsyn:
Фишка в том, что пустое = EMPTY_VALUE.
Пустое-то оно пустое, но для PLOT_EMPTY_VALUE назначается значение которое не будет отображаться на графике и в окне данных. Попробуй заменить EMPTY_VALUE на 0
PlotIndexSetDouble(plot_index, PLOT_EMPTY_VALUE, 0);
 
(string)NormalizeDouble(0.99872, 5) - очень длинный результат.