为什么SMA计算无结果

以下是代码 Params Numeric N_DDI(13); //DDI 参数 Numeric N1_DDI(30); //DDI 参数 Numeric M_DDI(10); //DDI 参数 Numeric M1_DDI(5); //DDI 参数 Vars Series<Numeric> TR; Series<Numeric> DMZ; Series<Numeric> DMF; Series<Numeric> DIZ; Series<Numeric> DIF; Series<Numeric> DDDI; Series<Numeric> ADDI; Series<Numeric> AD; Events OnBar(ArrayRef<Integer> indexs) { TR = Max(Abs(High-High[1]),Abs(Low-Low[1])); If((High+Low)<=(High[1]+Low[1])) { DMZ=0; }Else DMZ=TR; If((High+Low)>=(High[1]+Low[1])) { DMF=0; }Else DMF=TR; DIZ=Summation(DMZ,N_DDI)/(Summation(DMZ,N_DDI)+Summation(DMF,N_DDI)); DIF=Summation(DMF,N_DDI)/(Summation(DMF,N_DDI)+Summation(DMZ,N_DDI)); DDDI=DIZ-DIF; ADDI=SMA(DDDI,N1_DDI,M_DDI); AD=Average(ADDI,M1_DDI); PlotNumeric("ADDI",ADDI,0,Red); PlotNumeric("DIF",DIF,Yellow); If (DDDI >= 0) PlotNumeric("DDI",DDDI,0,Red); Else PlotNumeric("DDI",DDDI,0,Green); } 求教:为什么&ldquo;ADDI&rdquo;计算后是空值?

因为你的计算有一部分放在Else下运行,当有Bar不执行Else下内容,就会出现函数内某个数据缺失。