Что за чудеса с терминалом или с чем? - страница 2

 
Alexey Viktorov:
Судя по рисунку, это индикатор краткосрочных, среднесрочных и долгосрочных импульсов. Считать там только последний бар не представляется возможным. Но всё-же, если индикатор не пересчитывается ВЕСЬ, то мерцания не происходит. Только при появлении нового значения импульса линия прорисовывается до этого значения. Я замечал и на других индикаторах такую проблему. Мне кажется, я почти уверен, что от тяжести расчётов это не зависит.

Моё мнение в предыдущем посте основано на переписке с СД по другому вопросу, но сказано было что при потере связи с сервером переменная prev_calculated обнуляется и расчёт индикатора производится заново по всей глубине истории. Видимо отсюда и мерцание.
Не спорю, если расчет на всей истории - может моргнуть. Но если мигание не прекращается и без полного перерасчета - тут нужно смотреть код или знать, какая его часть пересчитывается. По не желанию показывать исходник, можно судить о том, что возможна "какая-то нестандартная логика работы" или ошибки при написании. А значит расчет может быть какой угодно тяжелый.
 

Принтуйте каждый раз, когда prev_calculate равна нулю.

Уверены, что при индикатор каждый раз (каждый тик, каждый новый бар) не пересчитывается НА ВСЮ ГЛУБИНУ? 

 
Принтовалось до безумия. В результате я отказался переписывать один индикатор с mql4 в mql5. Только толку от принтовок ровно ноль, как и от проверок размера лота на равность нулю.
 
Alexey Kozitsyn:

Тогда, скорее всего, тяжелый код. Индикатор, говорите, по свечам строится, а не по тикам? Но между формированием новой свечи индикатор мигает?

На новой свече индикатор пересчитывается полностью или только последний луч? 

 

Тогда, скорее всего, тяжелый код. Индикатор, говорите, по свечам строится, а не по тикам? Но между формированием новой свечи индикатор мигает?

Да, индикатор рассчитывается по свечам, а не по тикам. И именно между формированием новой свечи индикатор мигает.

 

На новой свече индикатор пересчитывается полностью или только последний луч?  

Индикатор не пересчитывает всю историю. Но иногда, если нужно, индикатор может пересчитать заново, НО старые линии (луч, экстремум), те которые уже есть не пересчитываются!

Там ничего вообще не считается пока свеча тикает, ведь мигание и происходит в этот период, а не в момент появления новой свечи.

 
Serhios:

 

Тогда, скорее всего, тяжелый код. Индикатор, говорите, по свечам строится, а не по тикам? Но между формированием новой свечи индикатор мигает?

Да, индикатор рассчитывается по свечам, а не по тикам. И именно между формированием новой свечи индикатор мигает.

 

На новой свече индикатор пересчитывается полностью или только последний луч?  

Индикатор не пересчитывает всю историю. Но иногда, если нужно, индикатор может пересчитать заново, НО старые линии (луч, экстремум), те которые уже есть не пересчитываются!

Мы ничего вообще не считаем пока свеча тикает, ведь мигание и происходит в этот период, а не в момент появления новой свечи.

OnTimer() или OnChartEvent() используются?
 
Vladimir Karputov:

Принтуйте каждый раз, когда prev_calculate равна нулю.

Уверены, что при индикатор каждый раз (каждый тик, каждый новый бар) не пересчитывается НА ВСЮ ГЛУБИНУ? 

Индикатор не пересчитывает всю историю. Но иногда, если нужно, индикатор может пересчитать заново, НО старые линии (луч, экстремум), те которые уже есть не пересчитываются!
 
Alexey Kozitsyn:
OnTimer() или OnChartEvent() используются?
OnChartEvent()  -- только это, таймера нету
 
Serhios:
OnChartEvent()  -- только это, таймера нету
Код функции OnInit() и OnChartEvent() можете показать?
 
Кстати, я пробовал в  настройках индикатора поставить, чтоб он считал только 100 баров на истории - все равно мигает сволочь)
 
Кто-то вроде где-то писал что стандартный зигзаг мерцает. Так что похоже на глюк терминала в определенном виде рисования. В СД.