指示器被破坏 - 页 2

 
jjc:

例如,如果现在是早上8点,代码中的任何内容都会假定(a)早上7点的条形图是60条之前的,或者甚至(b)07:00的条形图根本不存在。

说得好,当我第一次看这些图表时,我还没有意识到这些图表是M1的......在安静的时候,例如过夜,M1的条形图丢失是很常见的。
 
RaptorUK:
说得好,当我第一次看这些图表时,我没有意识到这些图表是M1的......在安静的时候,例如过夜时,M1柱状图丢失是很常见的。
在这种情况下,我认为更有可能是暂时失去与经纪商的连接,但其原理和影响是相同的。
 
jjc:
在这种情况下,我认为更有可能是暂时失去与经纪商的连接,但其原理和影响是相同的。
......在 "移动错误 "的截图中还值得注意的是,在看起来有一个缺失的M1条的地方,紫线停止了绘制。
 
AnkaSoftware:

嗯,"新的历史数据被添加到图表中",怎么做?该指标被启动,并且不受干扰。我们有一个固定的1000条的回溯期。该指标没有加载任何历史数据。

开发团队的人可以看看这个问题吗?

你说 ...... "我已经开发了一个指标,在最初的16小时左右运行良好" ...... 16小时x60分钟=960条 ......如果你把回看时间减少到500条会怎样,8小时后你会有问题吗?
 

Jic, 谢谢你的意见。

测试是在CNS VPS服务器上进行的,具有可靠的连接,用于测试的模拟账户 是由经纪商IBFX和VantageFX提供的。

我在每个tick上做RefreshRates(),并使用正常的时间序列函数来访问bar数据。用于更新指标的代码在我之前的帖子中给出,见函数DrawMoveEx。我相信TimeSeries没有从0到'Bars -1'的缺失条。如果这个假设不正确,请告诉我。

附上另一张快照,有正确的时间刻度,没有向右滚动(有当前的IBFX数据)。

你是否有机会看一下帖子中所附的excel文件 2011.10.07 15:30

 

AnkaSoftware:
I believe the TimeSeries does not have missing bars from 0 to 'Bars -1'. Let me know if this assumption is incorrect.

这个假设当然是不正确的,因为你的原始 "移动错误 "截图在每个X轴标记之间有16个柱子--你可以自己数一数--但其中一个时期涵盖了21分钟而不是16分钟。而且,正如RaptorUK所说,这不是一个你可以在你的代码中安全做出的假设。一天中不一定每分钟都有交易--尽管在重大节假日之外,如果英镑兑美元没有交易,我会感到惊讶--因此,不一定每分钟都有一个M1柱。

如果你相信没有缺失的柱子--而在你的截图中明显有缺失的柱子--那么你可能是基于这个假设/信念来编码的。我不会把你最新的截图视为反证,因为可能有(a)在截图上显示的时期之前的数据缺失,(b)以某种方式影响了截图中显示的条形图的计算。

最令人怀疑的是,在原始截图中,紫色的线条在有明显缺失条形图的时期内停止。如果没有看到完整的代码,我无法进一步评论,也无法对你的电子表格 进行分析。

 
AnkaSoftware:

Jic, 谢谢你的意见。

测试是在CNS VPS服务器上进行的,具有可靠的连接,用于测试的模拟账户是由经纪商IBFX和VantageFX提供的。

我在每个tick上做RefreshRates(),并使用正常的时间序列函数来访问条形数据。

可能不是你问题的原因,但是......。 如果你使用这些函数,RefreshRates()就没有什么区别:https://docs.mql4.com/series RefreshRates只刷新这些变量:https://docs.mql4.com/predefined/variables
 
jjc:

这个假设当然是不正确的,因为你的原始 "移动错误 "截图在每个X轴标记之间有16个柱子--你可以自己数一数--但其中一个时期涵盖了21分钟而不是16分钟。而且,正如RaptorUK所说,这不是一个你可以在你的代码中安全做出的假设。一天中不一定每分钟都有交易--尽管在重大节假日之外,如果英镑兑美元没有交易,我会感到惊讶--因此,不一定每分钟都有一个M1柱。

如果你相信没有缺失的柱子--而在你的截图中明显有缺失的柱子--那么你可能是基于这个假设/信念来编码的。我不会把你最新的截图视为反证,因为可能有(a)在截图上显示的时期之前的数据缺失,(b)以某种方式影响了截图中显示的条形图的计算。

最令人怀疑的是,在原始截图中,紫色的线条在有明显缺失条形图的时期内停止。如果没有看到完整的代码,我无法进一步评论,也无法对你的电子表格进行分析。

Raptor,我将检查"如果你把回看时间减少到500条会怎样,你在8小时后会有问题吗?"并回复。

JIC,请注意这个问题在32位平台上不会发生。我已经在之前的帖子中提供了一些代码。

 
AnkaSoftware:
我相信TimeSeries没有从0到'Bars -1'的缺失条。如果这个假设不正确,请告诉我。

当然没有,有编号为0到Bars-1的Bars蜡烛。ArraySize(Close) == Bars总是如此。

然而,总是有跳过的柱子。从周五21:59z开始,下一个柱子是周日22:00z。周末和假期以及没有活动的分钟。

你不能假设Time[x]==Time[x+1]+60*Period(),它不会在一个跳过的柱子上。

如果你想得到关于你的指标的帮助,请发布你的代码--这里没有读心术。

 
AnkaSoftware:

一些进一步的信息 -

a) 指标的损坏只发生在Windows 64位平台上。

b) 我已经对损坏前和损坏后的指标阵列进行了转储--在所附的xls文件中提供了相同的注释。

看看你的电子表格 中的Unix时间值,每个相邻值之间的差距应该是60,60秒,有几个240秒的差距和至少一个120秒的差距。你的代码是为了处理缺失的M1条吗?