各位老师,
下面序列数组排序这几行(红色部分)不能通过编译是何原因?
Params
Integer TOP(4);//排序前几名
Numeric LOTS(1);//下单数量
Numeric MP(1);//滑点设置
Vars
Series<Numeric> ZD(0);//涨幅
Numeric i;
Numeric j;
Numeric K;
Series<Array<Numeric>> ArrayZD;//数据源涨幅数组
Series<Array<Numeric>> ArrayZDind;//数据源索引
Series<Array<Numeric>> ArrayH;//开盘第一根K线最高价
Series<Array<Numeric>> ArrayL;//开盘第一根K线最低价
bool BuyCon;//开多条件
bool SellCon;//开空条件
Events
OnInit()
{
Range[0:DataCount-1]
{
AddDataFlag(Enum_Data_RolloverBackWard());//设置后复权
AddDataFlag(Enum_Data_RolloverRealPrice());//是否映射真实价格
AddDataFlag(Enum_Data_AutoSwapPosition());//设置自动换仓
AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); // 设置忽略换仓信号计算
SetSlippage(Enum_Rate_PointPerHand,MP); //设置滑点-跳/手
SetOrderPriceOffset(1); //设置委托价为叫买/卖价偏移1跳
SetOrderMap2MainSymbol(); //设置委托映射到主力
SetInitCapital(1000000); //设置初始资金为100万
}
}
OnBar(ArrayRef<Integer> indexs)
{
If(Time>=0.0905 AND Time<0.0910)//开盘5分钟后计算前5分钟涨幅
{
Range[0:DataCount-1]
{
ZD=100*((C[1]-C[2])/C[2]);
//Commentary(\"涨幅=\"+Text(ZD));
}
for i=0 to datasourcesize-1//把需要排序的指标值写入数组
{
ArrayZDind[0][i]=i;
ArrayZD[0][i]=data[i].ZD;
ArrayH[0][i]=Data[i].H;
ArrayL[0][i]=Data[i].L;
}
}
Na1Sort2(ArrayZD,ArrayZDind,0,(datasourcesize-1),False);//按照指标值对品种进行从大到小排序
Na1Sort2(ArrayZD,ArrayH,0,(datasourcesize-1),False);
Na1Sort2(ArrayZD,ArrayL,0,(datasourcesize-1),False);
/*for i=0 to TOP-1
{
Commentary(\"ArrayZD[i]=\"+Text(ArrayZD[0][i]));
Commentary(\"ArrayZDind[[i]=\"+Text(ArrayZDind[0][i]));
}*/
for i=0 to GetArraySize(ArrayZD)-1//把排序筛选后的品种图层按照开仓信号筛选开仓操作
{
//==========================================================开仓条件
j=ArrayZDind[0][i];
BuyCon = i<=TOP-1 AND data[J].C[1]>data[J].OPEN[1] AND data[J].OPEN[1]==data[J].L[1];
SellCon = i>=DataSourceSize()-TOP-1 AND data[J].C[1]<data[J].OPEN[1] AND data[J].OPEN[1]==data[J].H[1];
If(data[J].MarketPosition<1 && BuyCon and Time>=0.090500 and Time<0.091000)
{
data[J].Buy(Lots,Open);
}
If(data[J].MarketPosition>-1 && SellCon and Time>=0.090500 and Time<0.091000)
{
data[J].SellShort(Lots,Open);
}
}
IF(Time>=0.145000 AND Time<=0.150000)
{
For K=0 to DataSourceSize-1
{
If(Data[K].MarketPosition==1)
{
data[K].Sell(lots,Open);
}
}
}
IF(Time>=0.145000 AND Time<=0.150000)
{
For K=0 to DataSourceSize()-1
{
If(Data[K].MarketPosition==-1)
{
data[K].BuyToCover(lots,Open);
}
}
}
}
Na1Sort2 第二个参数是integer的数组
第二个参数改成整型数组,还是通过不了编译呀。
王老师,能否帮我改一下?