Why are the indicators (lines, arrows, histograms) flickering in the MT5 terminal? - page 6

 
Andrey Khatimlianskii: A thought occurred. Full recalculation (and redrawing) occurs if prev_calculated = 0. Try inserting an OnCalculate print at the beginning for this case and see if the prints appear when blinking happens. If yes, you need to find out what's causing the terminal to reset the counter to 0 (and you can write to service-desk about it). If not, it is even more of a glitch and a simple test indicator, playback conditions and a short demonstration video can be sent to service-desk.

You suggested a similar solution above - insert print into OnCalculate() function, I added it, nothing unexpected appeared in the log, there is a normal process of new bars coming in and processing. Counters are not reset, but blinks do occur.

 
Andrey Khatimlianskii:

A thought has arisen.

Full recalculation (and redrawing) happens if prev_calculated = 0. Try inserting an OnCalculate print at the beginning for this case and see if the prints appear when blinking.

If yes, you need to find out what's causing the terminal to reset the counter to 0 (and you can write to service-desk about it).

If not, then it is even more of a glitch and a simple test indicator, playback conditions and a short demonstration video can be sent to service-desk.

Short backstory:

Some time ago I tried to rewrite the indicator that collects ticks up and ticks down separately in real time from mql4 to mql5 but it didn't work because indicator periodically reset already accumulated data. I discussed this issue with SD and they assured me that the reset comes from prev_calculated being reset to 0 and the entire history is recalculated, and the reset occurs due to loss of connection with the server.

The experiments I made yesterday:

First of all put Print() by condition... I didn't wait for it and started to artificially create loss of connection. Print() is executed, but the indicator doesn't blink.

I also zeroed prev_calculated by clicking on chart and "Refresh" from context menu, but the indicator does not blink. I decided to see how ChartRedraw affects indicator recalculation, but the result is zero . It has no effect , neither in the indicator itself, nor in parallel working indicator with ChartRedraw call .

I tried to find the replacement for prev_calculated. If any technical indicator is called, prev_calculated can be replaced with BarsCalculated(handle), but if not... not found. In case of such replacement, when prev_calculated is zeroed, the indicator is not recalculated and does not lose its calculations.

Anyway, I didn't manage to find anything useful...

This is a delusional supposition:

Can't it be that a few ticks are lost, then they are loaded with some delay and at that moment winking occurs?

 

Doesthis histogram stock indicator based on ticks flicker for anyone?

I managed to see a constant indicator flicker only once (at market opening) and only in CTRL+D panel, histograms themselves showed no flicker (probably due to lack of GPU). It was not possible to replay for video recording.


Exchange effect should be observed in a fast market. It is necessary to wait for the stock exchange to start, then, most likely, it will be possible to record flickering. Alternatively, I suggest putting the terminal on a continuous recording of several hours. And then cut out the piece where the flicker is particularly noticeable.

 
It should not be mistaken that resetting the counter (or editing the tick "retroactively") is the only case where the terminal redraws the chart. The logic there probably takes into account a bunch of other factors that we are not aware of. I nailed this problem due to the randomness of the reproduction and the difficulty of communication that usually occurs in the service-desk.
 
Stanislav Korotky: It should not be mistaken that resetting the counter is the only case when the terminal redraws the chart. The logic there probably takes into account a bunch of other factors that we're not aware of. I've nailed this problem due to the randomness of the replay and the difficulties of communication that usually arise in a service-desk.

I am coming to the same conclusion. Most likely, this is an internal matter which they will not advertise and we will never know the real reason why. And developers expressed their attitude to the question implicitly, but never once appeared in this thread. Although they could have made it clear...

 

The ZZ indicator from the delivery disappeared offline for a couple of seconds - so it's not about the ticks.

 
Eugene Myzrov:

You suggested a similar solution above - insert print in OnCalculate() function, I added it, nothing unexpected appeared in the log, there is a normal process of incoming and processing new bars. Counters are not reset, but blinks happen.


I haven't read previous pages, has your question been answered? If not, here's the solution, try increasing the number of buffers, you have the wrong number, that's why the blinks.
 
Roman Vashchilin:

I haven't read the previous pages, has your question been answered? If not, here is the solution, try to increase the number of buffers, you have the wrong number, that's why it's blinking.

Is the number of buffers also wrong in the standard zone?
 
Roman Vashchilin: I haven't read previous pages, has your question been answered? If not, here is a solution, try to increase the number of buffers, you have the wrong number, that's why it's blinking.

Why do you think "the wrong number of buffers is standing, that's why it's flashing"? If I use 2 buffers and 2 arrays, then I will specify it accordingly.

#property   indicator_buffers 2
#property   indicator_plots   2

Why should I specify more buffers than I need, i.e. more than two?

 
Eugene Myzrov:

Why do you think "the wrong number of buffers is standing, that's why it's flashing"? If I use 2 buffers and 2 arrays, then I will specify it accordingly.

Why should I specify more buffers than I need, i.e. more than two?


And, if they match, no need to change.
Reason: