tb的历史数据有一个比较明显的bug,当大周期为日线时,历史数据当中每天开盘的时间即可获得当天的整根bar的高开低收价格数据,不符合数据行情运行的逻辑。
在历史回测当中,当在小周期k线如1分钟线上,跨周期调用日线的收盘或者最高价信息时,理论上应该取最新价作为收盘价,截止那一刻的盘中最高价作为最高价,但事实上历史数据直接调用未来数据读取了日线那根bar的最终信息,这非常不合理。
一个次优办法时不使用最新一根大周期的数据,但是如果有些策略要用到日线甚至周线数据的话,就要放弃最新一根k线当天的价格信息,岂不是很低效,不知道各位对这个问题怎么看待?
建议你用tbquant3
这个问题就是跨周期调用数据的时候容易发生未来数据的问题。
现在tbquant3已经优化了,小周期调用大周期数据已经不会获得超出小周期时间范围的数据了
感谢回复告知,我去看看
tbquant3确实有所改进,大周期数据已经不会获得超出小周期时间范围的数据,但仍不尽完善,仍然会读取小周期的未来数据,如果能模拟实盘的运行情况,按照最新价作为收盘价,按照当前小周期k线之前的数据记录最值,那才符合逻辑,那就更好了。
那如果按tick去setbaseperiod还会有未来数据么?