全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
为什么SMA计算无结果
hwy0828 分享到
2020-10-15 09:03

以下是代码

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); 
    }

 

求教:为什么“ADDI”计算后是空值?

GRU29098980

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

2021-01-05 16:44
您未登录,请先 登录注册 后发表评论
顶部