Почему происходит мерцание индикаторов (линий, стрелок, гистограмм) в биржевом терминале MT5? - страница 8

 
-Aleks-:

 

Я говорю про стандартный индикатор ZigZag из MT5.

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

 
Sergey Chalyshev:

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

 

Самое печальное, то что они игнорят этот вопрос.
 
Sergey Chalyshev: Конкретно этот индикатор глючит? Поковыряюсь на досуге.

Что касается конкретно этого индикатора, то его глюк выглядит так: названия и значения двух индикаторных буферов на некоторое время (1-2 сек) пропадают в окне данных и потом появляются снова. Индикатор, который кроме того еще и мерцает на графике, пока привести здесь не могу, т.к. он авторский. Единственно что могу сказать про него, что он использует тип графического построения  DRAW_SECTION, т.е. содержит строчку

#property indicator_type1  DRAW_SECTION


Это я к тому, что возможно перерисовкой (мерцанием) страдают только те индикаторы, которые построены с использованием типов DRAW_SECTION или DRAW_ZIGZAG, ну или их цветных аналогов DRAW_COLOR_SECTION или DRAW_COLOR_ZIGZAG. Хотя исчезновение имен и значений индикаторных буферов характерно и для других типов графических построений из перечисления ENUM_DRAW_TYPE.

 
Обнаружил еще, что моргания провоцируются вызовами CopyTicks/CopyTicksRange.
 
Stanislav Korotky:
Обнаружил еще, что моргания провоцируют вызовы CopyTicks/CopyTicksRange.

Добавляются новые бары в истории - индикатор перестраивается (очищает буфер, перерассчитывает всё заново). Вот и моргает.
Как только история будет полностью загружена/построена, моргание пропадёт.

 
Taras Slobodyanik:

Добавляются новые бары в истории - индикатор перестраивается (очищает буфер, перерассчитывает всё заново). Вот и моргает.
Как только история будет полностью загружена/построена, моргание пропадёт.

Не, баровая история загружена давно.

 
Taras Slobodyanik:

Добавляются новые бары в истории - индикатор перестраивается (очищает буфер, перерассчитывает всё заново). Вот и моргает.
Как только история будет полностью загружена/построена, моргание пропадёт.


MT4 не мерцает же...

 
Aleksey Vyazmikin:

MT4 не мерцает же...

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

 

Мерцание очень легко воспроизводится при сильно нагруженном процессоре.

Запустите оптимизацию на всех локальных ядрах и попробуйте удалить/создать десяток объектов и сделать ЧартРедроу. Эффект гирлянды обеспечен.

 
Taras Slobodyanik: Добавляются новые бары в истории - индикатор перестраивается (очищает буфер, перерассчитывает всё заново). Вот и моргает.

Как только история будет полностью загружена/построена, моргание пропадёт.

Не соглашусь, обновление в окне данных и мерцание индикаторных линий идет и внутри текущего бара. К тому же я сторонник индикаторов, которые обновляются только по закрытию бара, т.е. на текущем баре индикатор не прорисовывается. Тем более не понятно, история полностью загружена, текущий бар не обрабатывается, а мерцание индикаторных линий продолжается.

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