MT4 765版的MetaEditor 1035 出现异常价格,造成无法比较数据大小,无法产生信号

 

MT4 765版的MetaEditor 1035 出现异常价格,造成无法比较数据大小,无法产生信号。具体表现:

收盘价出现4位小数,指标也出现类似情况。有时还会出现超过5位小数的返回值。

 

注意:除了收盘价,其他变量,包括数组,都是经过NormalizeDouble函数处理过的,设定的位数都是_Digits。

 

这是正常情况吗?怎么处理?

 

图1:注意 Close[0] 

调试截图 

 图2:注意 maxTR3

图2

  图3:注意 SHB[0] 、 mabM[0] 、 LHB[1]

图3 

 
NormalizeDouble 只是内部处理时小数点的位数对齐,与显示时的位数无关,在显示的时候你应该用DoubleToString(Close[0], _Digits)。
 
765版本确实漏洞很多,以前工作很正常的EA现在时好时坏,如果一直是不正常也好找原因,现在时好时坏。神经兮兮的。官方也不见有更新。难道是我的电脑有问题?
 
jonssen:
765版本确实漏洞很多,以前工作很正常的EA现在时好时坏,如果一直是不正常也好找原因,现在时好时坏。神经兮兮的。官方也不见有更新。难道是我的电脑有问题?
最新的784已经beta release了。
 
tradelife:
NormalizeDouble 只是内部处理时小数点的位数对齐,与显示时的位数无关,在显示的时候你应该用DoubleToString(Close[0], _Digits)。

首先,感谢回复。

产生问题的原因,并不清楚,这是在调试时发现的。

我想通过 NormalizeDouble 来实现准确的数值比较。数位不一致,比较的结果也许不准。不知道是否如此?

 
tradelife:
最新的784已经beta release了。
消息很灵通啊!怎么才能得到这些消息?
 
gmxgmx:

我想通过 NormalizeDouble 来实现准确的数值比较。数位不一致,比较的结果也许不准。不知道是否如此?

如果只比较数值的 “>" 或 "<",就不需 NormalizeDouble,只有在比较 “==” 时用。
 

@tradelife:
谢谢!