多图层计算问题
有两个问题在代码中,求大佬解决一下:Vars Series<Numeric> myjs; //序列变量 Global Numeric myjs2; Global Integer dyid1; //增加的数据源idEvents //初始化事件函数 OnInit() { //订阅辅助图层 这里应该不需要Range,如果周期为1分钟 就订阅2分钟周期 If(Frequency()==\"1m\") { dyid1 = SubscribeBar(Symbol, \"2m\", 20240101, 0, Enum_Data_RolloverBackWard); Print(\"已订阅2m周期,dyid1=\" + Text(dyid1)); } } //当Bar更新变化时驱动,相当于收到Tick数据就更新 OnBar(ArrayRef <Integer> indexs) { } //当下一个Bar开始前,最后一次当前bar驱动,参数indexs表示更新的图层编号数组 OnBarClose(ArrayRef <Integer> indexs) { Integer i = 0; Range[i=0:DataCount-1] { //序列变量 这里可以修改 两个图层也能获取到 myjs = 1; //判断相应图层执行 If(indexs[i]==0) { //问题1:当1分钟K线出现新bar的时候,但2分钟没有产生新bar,这里会执行2次(如果1分钟和2分钟同时产生新bar的时候没问题) //原因:循环第1遍的时候 indexs[i]=0,i=0,循环第2遍的时候 indexs[i]=0,i=1 //请教如何解决这个问题? //问题2:这里为什么不能修改序列变量myjs的值?所以我用了myjs2 = myjs2+1;但是执行2次后就不准确了,所以产生了问题1 myjs = myjs+1; //用于打印K线时间 String dyintime = DateTimeToString(Date+Time); Print(dyintime + \":图层(\" + Text(indexs[i]) + \")myjs = \" + Text(myjs) + \",变量i = \" + Text(i)); } //在订阅图层dyid1执行 Else If(indexs[i]==dyid1 And dyid1!=0) { //用于打印K线时间 String dyintime = DateTimeToString(Date+Time); Print(dyintime + \":订阅图层(\" + Text(indexs[i]) + \")myjs = \" + Text(myjs) + \",变量i = \" + Text(i)); } } Print(\">>>>>>>>>>>>>> 跳出了循环。 \"); }