请教代码问题

帮我分析下问题处在哪?原指标是cirlcecross,我修改后价格下跌没到转折点时也换列排序,这是不对的,cir1是对的,cir2,不对,错误代码如下:Params Numeric turnpointN(5);//转折点:minMove 的整数倍,可手工调整(1、2…) Numeric minpointN(2); //最小区间:minMove 的整数倍,可手工调整(1、2…)Vars plot plt; Array<Numeric> xdata; Array<Numeric> ydata; Global Array<Array<Numeric>> qx(0); Global Numeric k; Tick tickdata; Series<Numeric> flag; global Numeric baseprice; Global Numeric lastdatetime; Numeric i; Numeric j; Numeric n; Numeric tempprice; Numeric tempdatetime; Numeric turnpoint;//【新增】实际转折价差 = turnpointN*MinMove*PriceScale Numeric minpoint; //【新增】实际波动价差 = minpointN *MinMove*PriceScaleEvents OnInit() { plt.figure();//独立画板 plt.setOption("stretch-height",1); //相对主图比例为1 data[0].HideChart; } OnBar(ArrayRef<Integer> indexs) { //【新增】把"倍数设置"换算成实际价格幅度(minMove 的整数倍) turnpoint = turnpointN*MinMove*PriceScale; minpoint = minpointN *MinMove*PriceScale; GetTick(tickdata,0); tempprice=IIF(Frequency=="tick",tickdata.last,Close); tempdatetime=IIF(Frequency=="tick",tickdata.datetime,date+time); if(BarStatus==0) { baseprice=tempprice; k=-1; flag=0; qx[0][0]=baseprice; } Else { if(lastdatetime<>tempdatetime) { if(flag<>-1 and tempprice<=baseprice-turnpoint) { flag=-1; k=k+1; qx[0][k]=baseprice; qx[1][k]=0; } if(flag<>1 and tempprice>=baseprice+turnpoint) { flag=1; k=k+1; qx[0][k]=baseprice; qx[1][k]=0; } if(flag==1) { while(tempprice>=baseprice+minpoint) { qx[1][k]=qx[1][k]+1; baseprice=baseprice+minpoint; Commentary("baseprice="+text(baseprice)); } } Else if(flag==-1) { while(tempprice<=baseprice-minpoint) { qx[1][k]=qx[1][k]-1; baseprice=baseprice-minpoint; } } lastdatetime=tempdatetime; } } PlotNumeric("baseprice",baseprice); if(BarStatus==2) { Commentary(TextArray(qx)); for i=0 to GetArraySize(qx[0])-1 { n=qx[1][i]; for j=1 to abs(n) { xdata[0]=(i+1)*10; ydata[0]=qx[0][i]+j*n/abs(n)*minpoint; if(n>0) plt.icon(Text(j),xData[0],yData[0],"ICO14"); Else plt.icon(Text(j),xData[0],yData[0],"lvyuan"); } } } }

代码只能,自己一点一点注释掉,然后看图上输出来排查,无法肉眼直接看出来, 具体排查方式,可以参见视频 https://video.tbquant.net/video?id=video464