和abs这类函数不同,基础统计函数默认是允许有nil值的,例如
A:=array(1,2,3,nil,4);
B:=array(1,2,3,"ABCD",4);
C:=Mean(A);
D:=Mean(B);
C的结果为2.5,但Mean(B)会报错。
如果要允许跳过错误的数据,我们可以这么写:D:=Mean(B,false,0,nil,1);
如果我们要让存在NIL的值也报错,则使用:
C:=Mean(A,false,0,nil,2);
这个附加的第四个参数为错误数据处理,其低二位允许为三种值:0,1,2
0表示允许NIL,1表示允许跳过错误值,2表示不允许NIL和错误值
在做移动平均的时候,存在这样的问题:
假如前边存在有错误值/NIL值,到底移动的N是将其计算在内还是不计算在内呢?
其现实意义为:假定非交易日的值为NIL,在移动平均的时候是计算自然日内的平均还是交易日内的平均呢?
我们可以举一个例子:
A:=Array(1,2,3,NIL,4,5);
B:=Mean(A,false,3);
从4,5下标行来看,我们在默认情况是将NIL计算在移动的3日内的
在下标4移动3日的内容为:4,NIL,3,其均值为3.5
下标5移动3日的内容为:5,4,NIL,其均值为4.5
如果我们希望在移动的时候跳过那些错误的值:C:=Mean(A,false,3,nil,4);
这样,下标4移动的值为4,3,2其均值为3
下标5的移动的值为5,4,3其均值为4
也就是说第4个附加参数
为4的时候是跳过NIL值