研究backtrader这么长时间,我感觉相对vnpy,backtrader最大的优势在于对多标的,多周期的处理上非常优雅,比vnpy强。多标的,多周期在实盘时处理时,由于存在不确定的网络延时,更加复杂。考虑一个单周期多标的简单的场景,从远端接收tick,然后合成1分钟k线。
vnpy合成分钟线的时机不是物理时间整分钟触发,而是下一个tick触发。收到下一个tick时,检查其时间是否相对上一个tick时间越过了整分钟,若是,就合成1分钟k线,若下一个tick距离上一个tick的时间很远,那就问题很大。在多标的下,这种k线合成机制无法同步各个标的。
而backtrader中分钟线合成时机是物理时间整分钟触发的(可以设置合成时机推迟比如一秒,以考虑网络延时),每到整分钟,比如10点整,你的客户端开始聚合收集到的tick,为每个标的合成1分钟k线。这种机制能够很好地同步各个标的分钟线。如果再考虑多周期,情况更加复杂,bt能够处理得很好,vnpy就很难处理。
当然啦,