修改多次依然未成功,在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));
}
}
}多品种截面?那就是会闪烁的。这个原因是不同品种的实时行情出现不同步导致的