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

 
Andrey Khatimlianskii: 一个想法出现了。如果prev_calculated = 0,就会发生完全的重新计算(和重新绘制)。试着在这种情况下,在开始时插入一个OnCalculate打印,看看在发生闪烁时是否会出现打印。如果是,你需要找出导致终端将计数器重置为0的原因(你可以写信给服务台说明)。如果不是,那就更是一个故障,可以向服务台发送一个简单的测试指标、播放条件和简短的演示视频。

你在上面建议了一个类似的解决方案--在OnCalculate()函数 中插入打印,我添加了它,日志中没有出现任何意外,有一个正常的传入和处理新条目的过程。计数器不被重置,但会出现闪烁。

 
Andrey Khatimlianskii:

一个想法产生了。

如果prev_calculated = 0,就会发生完全的重新计算(和重新绘制)。试着在这种情况下,在开头插入一个OnCalculate打印,看看打印是否在闪烁时出现。

如果是,你需要找出导致终端将计数器重置为0的原因(你可以写信给服务台说明)。

如果不是,那就更是一个故障,可以向服务台发送一个简单的测试指示器、回放条件和一个简短的演示视频。

简短的背景故事。

前段时间,我试图重写从mql4到mql5分别实时收集ticks up和ticks down的指标,但没有成功,因为指标定期重置已经积累的数据。 我与SD讨论了这个问题,他们向我保证,重置来自于prev_calculated被重置为0,整个历史被重新计算,而重置是由于与服务器失去连接而发生的。

我昨天做的实验。

首先把Print()按条件...我没有等待它,开始人为地制造失去联系。Print()被执行,但指标没有闪烁。

我还通过点击图表和上下文菜单中的 "刷新 "对prev_calculated进行了归零,但指标并没有闪烁。我决定看看ChartRedraw 如何影响指标的重新计算,但结果是零 。它没有任何作用,既不在指标本身,也不在与 ChartRedraw 调用的平行工作指标中

我试图找到替换prev_calculated的方法。如果有任何技术指标 被调用,prev_calculated可以用BarsCalculated(handle)代替,但如果没有...没有找到。在这种替换的情况下,当prev_calculated被清零时,指标不会被重新计算,也不会失去其计算结果。

总之,我没能找到任何有用的东西......。

这是个妄想的假设。

会不会是有几个点丢失了,然后它们被加载了一些延迟,在那一刻发生眨眼?

 

这个基于ticks的柱状图股票指标 是否有人闪烁其词?

我只设法看到一个恒定指标闪烁了一次(在开市时),而且只在CTRL+D面板中,直方图本身没有显示闪烁(可能是由于缺乏GPU)。不可能对录像进行回放。


在一个快速的市场中应该观察到交换效应。有必要等待证券交易所开始,然后,最有可能的是,它将有可能记录闪烁。另外,我建议把终端放在一个连续几个小时的记录上。然后把闪烁特别明显的那一块剪掉。

 
不应误认为重置计数器(或 "追溯 "编辑刻度线)是终端重新绘制图表的唯一情况。那里的逻辑可能考虑到了一堆我们不知道的其他因素。由于再现的随机性和通常发生在服务台的沟通困难,我钉住了这个问题。
 
Stanislav Korotky: 不应误认为重置计数器是终端重新绘制图表的唯一情况。那里的逻辑可能考虑到了一堆我们不知道的其他因素。由于重播的随机性和通常在服务台出现的沟通困难,我已经钉住了这个问题。

我正在得出同样的结论。最有可能的是,这是一个他们不会宣传的内部事务,我们永远不会知道真正的原因。而开发者对这个问题隐晦地表达了自己的态度,但从未在这个话题中出现过一次。虽然他们可以说得很清楚...

 

交付的ZZ指标在离线状态下消失了几秒钟--所以这与滴答声无关。

 
Eugene Myzrov:

你在上面建议了一个类似的解决方案--在OnCalculate()函数 中插入打印,添加了它,日志中没有出现任何意外,有一个正常的传入和处理新条目的过程。计数器不被重置,但会发生闪烁。


我没有读过以前的页面,你的问题是否已经得到回答?如果没有,解决办法是这样的,试着增加缓冲器的数量,你的数量不对,所以才会出现闪动。
 
Roman Vashchilin:

我没有读过前面几页,你的问题是否已经得到回答?如果没有,这里有解决办法,试着增加缓冲器的数量,你的数量不对,这就是为什么它在闪烁。

在标准区,缓冲区的数量也是错误的吗?
 
Roman Vashchilin: 我没有读过以前的页面,你的问题是否已经得到回答?如果没有,这里有一个解决方案,试着增加缓冲区的数量,你的数量不对,这就是为什么它在闪烁。

为什么你认为"缓冲区的数量不对,所以才会闪动"? 如果我使用2个缓冲区和2个数组,那么我将相应地指定它。

#property   indicator_buffers 2
#property   indicator_plots   2

为什么我应该指定比我需要的更多的缓冲区,即超过两个

 
Eugene Myzrov:

为什么你认为"缓冲区的数量不对,所以才会闪动"? 如果我使用2个缓冲区和2个数组,那么我将相应地指定它。

为什么我应该指定比我需要的更多的缓冲区,即超过两个


而且,如果它们匹配,就不需要改变。