全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
求教老师
2022-09-22 11:45

VAR1:4*SMA((CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100,5,1)-3*SMA(SMA((CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100,5,1),3.2,1);

同花顺的这段我转译到TB 怎么不行啊,老师能帮我看看哪里错了吗?

AA=CLOSE-L[N];
      BB=H[N]-L[N];
      CC=AA/BB*100;
      VAR1=4*SMA(CC,5,1)-3*SMA(SMA(CC,5,1),3.2,1);

zhangnj

把这个公式源码都贴出来,编译的时候的报错也贴出来

2022-09-22 11:57
xuling8574

Params
Numeric lots1(1);
Numeric N(5);
//Numeric LengthL(100);
//Numeric LengthOS(30);
vars
Series<Numeric> AA;
Series<Numeric> BB;
Series<Numeric> CC;
Series<Numeric> VAR1;
Events
OnInit()
    {
        AddDataFlag(Enum_Data_RolloverBackWard());    //设置后复权

        AddDataFlag(Enum_Data_RolloverRealPrice());    //设置映射真实价格

        AddDataFlag(Enum_Data_AutoSwapPosition());    //设置自动换仓

        AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());    //设置忽略换仓信号计算

        
    }
    onBar(ArrayRef<Integer> indexs)
    {    
      AA=CLOSE-L[N];
      BB=H[N]-L[N];
      CC=AA/BB*100;
      VAR1=4*SMA(CC,5,1)-3*SMA(SMA(CC,5,1),3.2,1);
      PlotNumeric("VAR1",VAR1);
    
    }
 

2022-09-22 12:02
xuling8574

没有报错,编译成功了。就是副图不显示指标

2022-09-22 12:02
Bryan2020
@xuling8574

在TB里面,凡是用到除法,就需要加倍小心。

BB=H[N]-L[N];

上面这句,在某些特别的情况下,BB会等于0。

然后你再把BB拿去做除数,TB就不知道该怎么办了,然后就撂挑子不画了。

所以你要考虑BB等于零的时候怎么办。比如

if(BB==0)

  BB = 0.01;

2022-09-22 14:05
Bryan2020
@Bryan2020

顺便说一下,你这个改写有个小错误

LLV(LOW,N),在TB里面对应的不是L[N],应该是 Lowest(L,N);

HHV同理。

2022-09-22 15:00
xuling8574
@Bryan2020

谢谢大佬解答,我去改改

2022-09-22 15:50
您未登录,请先 登录注册 后发表评论
顶部