老师好!
在RANGE下,判断条件中加与不加 BarStatus==2 的执行顺序完全不同,如何在加了 BarStatus==2 的情况下,按图层顺序执行?
另外 当前策略应用商品的单笔交易限量 MaxSingleTradeSize 函数,怎么用?测试时返回值都是 0 .
Vars
//此处添加变量
Global Array<String> SubSymbols;
array<Integer> indexsid;
Global Integer i;
Global Integer id(0);
Global Integer a;
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
OnInit()
{
SubscribeBar("ag2302.SHFE","1d",20220101,0);
SubscribeBar("ag2302.SHFE","5m",20221101,0);
SubscribeBar("AP301.CZCE","1d",20220101,0);
SubscribeBar("AP301.CZCE","5m",20221101,0);
SubscribeBar("al2301.SHFE","1d",20220101,0);
SubscribeBar("al2301.SHFE","5m",20221101,0);
SubscribeBar("rb2301.SHFE","1d",20220101,0);
SubscribeBar("rb2301.SHFE","5m",20221101,0);
}
OnReady()
{
//For i = 0 To data[id].GetSessionCount() - 1
//{
//Numeric ret = data[id].GetSessionEndTime(0);
// print("EndTime:"+text(ret));
// Print("GetSessionEndTime:" + Text(ret));
//print("GetSessionCount="+text(GetSessionCount()));
// print("合约代码:"+symbol());
//print("周期范围:"+Frequency());
//print("单笔交易限量:"+text(MaxSingleTradeSize()));
// }
}
OnBar(ArrayRef<Integer> indexs)
{
range[i=0:DataSourceSize-1]
{
if (Frequency() =="1d" /*and BarStatus==2*/)
{
print("日线-图层="+text(i)+"//"+"+OPEN="+text(open));
}
if (Frequency() == "5m" /* and BarStatus==2*/)
{
print("分钟线-图层="+text(i)+"//"+"OPEN="+text(open));
}
}
}
加了 BarStatus==2 的执行结果:
未加 BarStatus==2
我运行出来并没有任何问题