截面策略日线级别闪烁,是哪里的问题
修改多次依然未成功,在onbar里面会闪烁Params //此处添加参数 Vars //此处添加变量 Series<Numeric> quote_chg; Series<array<Numeric>> array_chg; array<Integer> id1; Events OnInit() { } OnBar(ArrayRef<Integer> indexs) { Numeric i; Range[i=0:datacount-1] //range[0:datacount-1] { quote_chg = (c - c[1])/c[1]*100; Commentary("data["+text(i)+"].quote_chg = "+text(quote_chg)); data0.array_chg[0][i] = quote_chg;// [0]表示的是回溯,[i]数组的下标 } //涨跌幅计算完,赋值 数组是在一个图层里 array<Integer> id1; for i = 0 to GetArraySize(array_chg[1])-1 { print("array_chg[0]["+text(i)+"]="+text(array_chg[1][i])); id1[i]=i;//排序数组的一个初始化,0,1,2,3,4,5 } array<Numeric> q1 = array_chg[1];// array_chg[1] 上一个周期的数组 Na1Sort2(q1,id1,1,GetArraySize(q1)-1,false); //执行完之后,id1就变了,当前下标新排序号,下标数组值为数组原序号(找到下单的品种) for i=1 to GetArraySize(q1)-1 { print("i降序序号="+text(i));//降序序号 print("id1降序原序号(图层)["+text(i)+"]="+text(id1[i]));//降序原序号(图层) } print("-----------------------"); /////////////////////////////////////// for i=1 to GetArraySize(id1)-1 { if(i==1) { if(data[id1[i]].MarketPosition <=0) { data[id1[i]].buy(1,open); //print("buy date+time:"+text(date+time)); } } else if(i == GetArraySize(id1)-1) { if(data[id1[i]].MarketPosition >=0) { data[id1[i]].sellshort(1,open); //print("sell date+time:"+text(date+time)); } } else { data[id1[i]].sell(0,open); data[id1[i]].BuyToCover(0,open); print("else date+time:"+text(date+time)); } } }