为什么MT5终端中的指标(线、箭头、柱状图)会闪烁? - 页 9

 
Andrey Khatimlianskii: 当处理器的负荷很重时,闪烁很容易再现。在所有本地核心上 运行优化,并尝试删除/创建十几个对象并做ChartRedrow。挥霍的效果是有保证的。

是的,但我希望正好相反,不是再现闪烁,而是停止它,做一些事情,以便不再看到这种闪烁。
而在良好的条件下,当处理器没有加载时,我们可以说是空闲,优化没有运行,即本地核心也没有加载,对象没有被创建,ChartRedraw()也没有被调用。而在电脑的这种宁静状态下,"花环 "不停地闪烁着!"。

开发人员甚至没有回答,这种闪烁是否无法恢复,只有在MT5的未来版本中才会消除,或者可能是指标开发人员手误,在为MT5开发指标时不了解一些情况......

 

不仅自定义指标 会闪烁,而且内置工具也会闪烁,例如 "回归通道"。

 

Aleksey Vyazmikin: Мерцают не только пользовательские индикаторы, но и встроенные инструменты, к примеру "Канал регрессии".

如果是这样,那就没什么可猜测的了,这意味着这个问题原则上还不能解决,将在MT5的某些未来版本中解决。开发人员应该坦诚相待,而不是让程序员绞尽脑汁去想他们做错了什么以及如何处理。

 

我已经在这个事情上纠结了几天了。

尝试了上面建议的所有方法。

没有帮助。

该指标在MT5中闪烁的原因只有一个。

当应用ChartGetInteger(0,CHART_VISIBLE_BARS ...

至少当我设置一个常数而不是这个函数时,它不再闪烁了。

我可能以一种笨拙的方式应用了这个功能,但尽管如此......
Документация по MQL5: Операции с графиками / ChartGetInteger
Документация по MQL5: Операции с графиками / ChartGetInteger
  • www.mql5.com
Возвращает значение соответствующего свойства указанного графика. Свойство графика должно быть типов datetime, int или bool. Существует 2 варианта функции. 2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром...
 

这也没有帮助;))))。

 
Renat Akhtyamov:

这也没有什么帮助;)))

" ...该函数是同步的--这意味着它要等到所有已经放在时间表队列中的命令被调用之前。 ..."

这来自于文件。我可以补充说,同步函数拖慢了整个进程--在它完成执行之前,没有其他进程会开始执行,即使有资源可供其执行。

 
有一种假设认为,闪烁取决于终端引擎对对象的重绘,也就是说,如果绘图点在可见屏幕之外,它们的渲染优先级就会降低,这在图表的计算负荷下表现出来(包括报价到达率--我注意到,正是在强烈和激烈的运动下才会发生闪烁)。
 
Aleksey Vyazmikin:
有一种假设认为,闪烁取决于终端引擎对对象的重绘,也就是说,如果绘图点在可见屏幕之外,它们的渲染优先级较低,这在图表的计算负荷中表现出来(包括报价到达率--我注意到,正是在强烈和激烈的运动下才会发生闪烁)。

我真的希望开发者能关注这个话题。

指示器的闪烁不能自行消除。

 

我想我想明白了。

不是事实,而是

它看起来像是对目前正在进行真实交易的EA的某种外部测试。

我个人的结论如下。

图表的建立正好是提前10个小时,我们看到了现成的

其余的在右边的幕后,并逐渐出现在我们的屏幕上。

我已经录下了视频,以免扑空,但我不会在这里展示,而是在那里展示,那里的人们会对它非常感兴趣

---

现在的图片

首先,条数的变化,固定为1000,但由于计算是从零开始的,所以变成了1001。

在闪烁的那一刻,条形图突然变得少了600条(而在闪烁的时候,数字总是一样的--358)。

而在闪烁指示器的时刻,有时会发生这种情况(我只设法在视频上捕捉到这一帧)。

最有趣的是:有时在闪烁的时刻,图形显示已关闭的交易从现在到未来,即它们只是现在开放,并将在某个地方关闭 - 在幕后。

要想亲眼看到这一切,请重新计算所有的条形图,而不仅仅是最后一个条形图,并且在每一个刻度上,在每次计算之前清理缓冲区。

哦,对了,我忘了。

这事发生在晚上

我的调查员朋友拿走了所有的材料,他说这是非常酷的;)

;))))

----

而现在的辩论......。

 
Aleksey Vyazmikin:
有一种假设是,闪烁取决于终端引擎对对象的重绘,即如果绘图点在可见屏幕之外,它们的渲染优先级较低,这在图表的计算负载期间出现(包括报价率--我注意到在强烈和密集的运动期间出现闪烁)。

正如阿拉-尤里耶夫娜所说,这对马来说很清楚。编制者已经指出了原因,尽管是间接的。终端过载时就会出现闪烁--这是事实。超载发生的原因有很多,并不总是意味着超过终端的计算能力。