多周期在OnBarClose内的执行问题
根据2023年2月2日腾讯课堂“模型编写实战演练”第一个问题的回答,下述小程序在大周期的onbarclose内执行错误,具体表现为:交易时间内偶尔执行一次大周期的onbarclose,不能控制。在历史Bar上,例如刷新后,执行正确请问这是个什么情况呢?Params String symb(SA305.CZCE); Integer Length(7);Vars Global Integer Data_0; Global Integer Data_N; Natural Series<Numeric> MA; Natural Series<Numeric> C_MA;Events OnInit() { Data_0 = SubscribeBar(symb, 3m,DateTimeAdd(CurrentDate(),-1*60*60)); // 大周期图层编号 Data_N = SubscribeBar(symb,20s,Data[Data_0].BeginDateTime); // 小周期图层编号 } OnBar(ArrayRef<Integer> indexs) { Range[Data_0:Data_0] { MA = Average(Close,Length); // 用来校验 Commentary(--- OnBar ---); Commentary( MA= +Text(MA)); PlotString(BarNr,Text(CurrentBar),Low,Yellow); PlotAuto(MA,MA,0,Green,Enum_Cross); } } OnBarClose(ArrayRef<Integer> indexs) { If(ArrayFind(indexs,Data_0)) { Range[Data_0:Data_0] { C_MA = Average(Close,Length); Commentary(--- OnBarClose ---); Commentary(C_MA= +Text(C_MA)); PlotAuto(C_MA,C_MA,0,Yellow,Enum_Dot,Enum_3Pix); If(BarStatus==2) { Print(----- CurrentBar= +Text(CurrentBar)); Print( C_MA= +Text(C_MA)+ / MA= +Text(MA)); } } } }