currenttime和time差异巨大,不知道问题出在哪

做了一个多图层的交易策略,图层0为指数的日K线,图层1为指数的30分钟K线,图层2以上均为当月期权买购合约,周期与1号图层相同,均为30分钟,如下图核心代码如下: OnInit() { //与数据源有关 Range[0:DataCount-1] { //=========数据源相关设置============== AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权 AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格 AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓 AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算 } } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { //计算出Buyline 和 Sellline,Buyline 和SellLine为全局变量 //根据Buyline计算出需要的option_c_code } Range[1:1] { PlotNumeric(上轨,BuyLine,0,Red); PlotNumeric(下轨,SellLine,0,Blue); Commentary(虚一档看涨期权是: + option_c_code); } //如果在10:00分没有向上突破,且昨日有持仓,则平仓 If (data1.time == 0.1 and Data1.High[1] <= BuyLine) { Range[2:datacount-1]//轮询各个期权合约 { If(currentcontracts > 0) //如果任一合约持有仓位,则平仓 { FileAppend(c:\\\\DT_Option_Debug,data1.time= + Text(data1.Time) + CurrentDate= + DateToString(CurrentDate) + CurrentTime= + TimeToString(CurrentTime) + Data1.High[1]= + Text(Data1.High[1]) + Buyline= + Text(BuyLine) + SellLine= + Text(SellLine) + 此时价格为 + Text(data1.close) + ,未向上突破buyline,平仓所有看涨期权 ); SellForIndexOption(CurrentContracts,open);//自编函数 data1.PlotString(Cover,平仓,low,red); } } }实盘跑出的结果非常奇怪,出现了不少问题,先提第一个问题,CurrentTime和time相距甚远 如第一个红框,currentTime是14:26分,data1图层是中证1000指数的30分钟K线,time应该是0.140000才对,但却为0.1,即上午10:00的K 线,不合常理。下面第二个框也是如此,time变成了0.13,是我没有正确理解多图层的机制吗?

异常数据出现的原因,应该是因为在实盘加载策略时,加载了一部分历史K线的原因,导致currenttime和time时间不同。打扰老师了@wangkaiming

currenttime是系统时间,你晚上去加载就是晚上的时间time是K线时间,不会改变你在下午2:30去加载,curtime就是2:30的,K线时间该是几点就是几点

回复:我早上就开始启动策略,程序在14:26分触发了阀值,即指数的最新价>buyline。由于指数用的是30分钟K线,此时data1.time应该是0.1400才对,为什么会是0.1?而且从最后一张截图可以看到,每个tick到来后,data1.time都是不统一的,有0.1,0.13,0.133,0.11,这是为何?

回复:老师能再帮忙分析一下吗