发现程序bug-可能是平台出了问题
以下程序的最新6根k线上的输出出现错误,完全不符合逻辑,在其他k线上的输出是没有问题的;仔细检察过代码,是不存在问题的,可能是平台出了问题请工作人员查看一下/------------------------------------------------------------------------ParamsVars Natural Integer num1(0); Numeric Length1(10); Numeric avg1;Events OnBar(ArrayRef<Integer> indexs) { avg1=AverageFC(Close,Length1); //Length1趋势判断 If(CurrentBar==Length1-1) { If(C<avg1) num1=-1; Else num1=1; } If(CurrentBar>Length1-1) { if(C<avg1 and num1<0) { num1=num1-1; } If(C<avg1 and num1>0) { num1=-1; } If(C>avg1 and num1>0) { num1=num1+1; } If(C>avg1 and num1<0) { num1=1; } PlotNumeric(\"qs1\",num1); } }
https://www.tbquant.net/TrainDetail?id=197 https://www.tbquant.net/TrainDetail?id=198
Natural Integer num1(0);换成Series<Integer> num1(0);你的这个问题,如果是收盘的时候,创建一个k线图,加载你的代码,计算不会有任何问题。盘中的时候,创建一个k线图,加载你的代码,当前图表上也不会有任何问题,但是新跑出来的k线,数量就不对了,误差大概是分钟数*120。这个问题本质上不是什么平台bug,是你完全没理解数据结构和驱动运行机制,用错了natural这个数据类型而已。建议下次出问题之前先想想自己有没有完全掌握这些基本的语法知识,再考虑是不是平台bug。初学的时候这不叫自信,这叫自负。另外再给你提供点关于tbl语言数据结构的讲解视频专题课
回复:盘中多次触发onbar这个我知道,问题是收盘的时候会也会多次触发onbar,是因为另外一个公式导致的。这个不是基本语法问题,没跟k线触发一次onbar,正常人都是这个思维,请你们站在正常人的角度看问题,别一副居高临下的姿态
回复:每根