求问!多数据源情况下集合竞价,哪里出问题了呢?
程序1: //------------------------------------------------------------------------ // 简称: gp1 // 名称: // 类别: 策略应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params // 参数定义 Numeric numdate(1); Vars // 变量定义 Global Numeric i; Global Numeric k; Global Numeric n; Global array<string> mysymbol; Global Numeric CurrentBarIndex; Global Array<Numeric> prevClose; // 昨日收盘价 Global Array<Numeric> currentfx; Events // 初始化事件函数 OnInit() { mysymbol=["002129.SZSE", "600732.SSE", "300438.SZSE","688256.SSE"]; //mysymbol=["SR605.CZCE","OI605.CZCE", "FG605.CZCE", "MA601.CZCE"]; Numeric date1=PreTradingDay(mysymbol[0], CurrentDate(), numdate); for i =0 to GetArraySize(mysymbol)-1 { SubscribeBar(mysymbol[i],"1m",date1); } for i =0 to GetArraySize(mysymbol)-1 { SubscribeBar(mysymbol[i],"1d",date1); } n=GetArraySize(mysymbol); } OnBaropen(ArrayRef<Integer> indexs) { CurrentBarIndex = data[0].BarsSinceToday(); } OnBar(ArrayRef<Integer> indexs) { if (Date>=CurrentDate) { for k = 0 to GetArraysize(indexs) - 1 { i = indexs[k]; if (i < n) { print(DateTimeToString(date + CurrentTime) + "图层" + text(i) + data[i].SymbolName + "3正常运行" + text(data[i].close)+"bar时间"+TimeToString(data[i].time)); } } } } 程序2: 只对订阅的股票进行了改动,其他位置未变: mysymbol=["399317.SZSE","002129.SZSE", "600732.SSE", "300438.SZSE","688256.SSE"]; 程序1输出:程序2输出:可以发现,指数第一个tick到来时间比较晚,9:25:13左右,股票第一个tick在9:25:07左右。那问题是,为什么程序2只是增加订阅了1个指数,股票数据怎么在集合竞价不输出了呢?是程序语法的问题吗?如果图层0的数据没来,即使图层1的数据来的时候,所有的onbar内容不涉及图层0的部分也都不工作了?