全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
指标显示不正常,在其他软件很正常,在TB不正常
baokang 分享到
2023-04-24 18:30

把文化财经的指标转换成TB,显示不正常。在日线显示都正常,在某些品种其他周期有时就不显示了,咋回事,不知道问题出在哪里

Vars

//此处添加变量

   series<numeric> D1;

   series<numeric> D2;

Events

//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组

OnBar(ArrayRef<Integer> indexs)

{          

D1=xaverage(3*SMA((CLOSE-lowest(LOW,27))/(Highest(HIGH,27)-Lowest(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-Lowest(LOW,27))/(Highest(HIGH,27)-Lowest(LOW,27))*100,5,1),3,1),5);

D2=D1[1];

PLOTNUMERIC(\"D\",80,80,RED);

PLOTNUMERIC(\"M\",50,50,WHITE);

PLOTNUMERIC(\"DI\",15,15,RED);

PlotKline(D2,D2,D1,D1);

IF(D2<15 AND CROSSOVER(D1,D2)) PLOTSTRING(\"MAI\",\"买\",5,RED);

IF(D2>80 AND CROSSunder(D1,D2)) PLOTSTRING(\"卖\",\"卖\",90,green);

}


后来改成这样,还是不正常。

Vars

//此处添加变量

   series<numeric> D1;

   series<numeric> D2;

Events

     //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组

OnBar(ArrayRef<Integer> indexs)

{

       IF(CURRENTBAR<26)

       {

        NUMERIC I=CURRENTBAR+1;

           D1=xaverage(3*SMA((CLOSE-lowest(LOW,I))/(Highest(HIGH,I)-Lowest(LOW,I))*100,5,1)-2*SMA(SMA((CLOSE-Lowest(LOW,I))/(Highest(HIGH,I)-Lowest(LOW,I))*100,5,1),3,1),5);

   D2=D1[1];

       }

       Else

       {

D1=xaverage(3*SMA((CLOSE-lowest(LOW,27))/(Highest(HIGH,27)-Lowest(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-Lowest(LOW,27))/(Highest(HIGH,27)-Lowest(LOW,27))*100,5,1),3,1),5);

D2=D1[1];

}

PLOTNUMERIC(\"D\",80,80,RED);

PLOTNUMERIC(\"M\",50,50,WHITE);

PLOTNUMERIC(\"DI\",15,15,RED);

PlotKline(D2,D2,D1,D1);

IF(D2<15 AND CROSSOVER(D1,D2)) PLOTSTRING(\"MAI\",\"买\",5,RED);

IF(D2>80 AND CROSSunder(D1,D2)) PLOTSTRING(\"卖\",\"卖\",90,green);

}

181****0510

你公式里面用到了除法。

当出现涨停跌停的情况,在较小的周期上,你公式里面的分母会是 0 .

数学上,不允许分母为 0 ,TB没有对这种情况做处理,所以你需要对这种情况自己做个处理。

2023-04-24 20:40
baokang
@181****0510

谢谢!怎么处理呢?

2023-04-25 11:45
baokang
@181****0510

把分母当1处理?

2023-04-25 11:46
181****0510
@baokang

怎么处理应该没有标准答案,我个人倾向于当分母为0的时候,把给分母赋值一个很小的数字,比如0.0001之类的。因为在行情逼近涨停或者跌停的过程中,这个分母本身就是在逐渐趋向0的。

2023-04-25 13:45
您未登录,请先 登录注册 后发表评论
顶部