请教!!!RANGE下的执行顺序与 BarStatus==2

老师好!

    在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

请教!!!多图层的执行顺序
OnBar与OnBarOpen两个事件的执行顺序是什么?
在OnBar里执行策略前判断BarStatus==2 再执行有什么用
请教!关于RANGE 和 IF()条件语句
使用通用事件PublishEvent时能保证接受事件的顺序与发送的顺序一致么?
请教老师多图层排序后执行的顺序
range 与for 作用一样的吧?
关于BarStatus 函数的功能
请教 Range[0:DataSourceSize() - 1]
多图层的触发和运行顺序

我运行出来并没有任何问题