指标显示不正常,在其他软件很正常,在TB不正常

把文化财经的指标转换成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); }

你公式里面用到了除法。当出现涨停跌停的情况,在较小的周期上,你公式里面的分母会是 0 .数学上,不允许分母为 0 ,TB没有对这种情况做处理,所以你需要对这种情况自己做个处理。

回复:谢谢!怎么处理呢?

回复:把分母当1处理?

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