除0错误

 

我有一个自定义指标A,这个指标里 有这样一段代码 di[ j ] / Close[j] + di[j+1]/ Close[j+1] 。 加载到图表上运行正常,不报错。

我另外有一个EA,引用了自定义指标A, 只要一加载EA,就报除0错误 zero divied in 'A' ( 5,18)  

我看了下位置,指标A里 5行18列就是   di[j+1]/  Close[j+1] ,奇怪了,为什么Close [j+1] =0 了? 

 
获取行情时,报价为0的情况很普遍。这时就跳过
 

song_song:
获取行情时,报价为0的情况很普遍。这时就跳过

如果存在这样的情况,那么 Close[j] 在Close[j+1]前面 ,为什么报错位置不是Close[j]呢, 反而是后面的Close[j+1] . 

 
1648401654c:

我有一个自定义指标A,这个指标里 有这样一段代码 di[ j ] / Close[j] + di[j+1]/ Close[j+1] 。 加载到图表上运行正常,不报错。

我另外有一个EA,引用了自定义指标A, 只要一加载EA,就报除0错误 zero divied in 'A' ( 5,18)  

我看了下位置,指标A里 5行18列就是   di[j+1]/  Close[j+1] ,奇怪了,为什么Close [j+1] =0 了? 

可能由于数据加载问题引起,很简单的避免zero divide方法,

if(Close[j+1]> 0.0) {  ...di[ j ] / Close[j] + di[j+1]/ Close[j+1]... }
 
这里的除0错误红色信息影响EA运行吗
 
1648401654c:
这里的除0错误红色信息影响EA运行吗

当然,EA是无法运行的。

原因: