加入我有一个日级别的策略,我的持仓计划是:
我希望的策略操作是,收盘前20分钟计算出这些手数,并在收盘前20分钟,以市价单进行快速的买入并且执行。核心是:在收盘时完成这些操作,要让这些订单过夜。
但实际在回测中,由于我使用的是日级别的数据,我发现在portfolio_backtesting模块,我的实际持仓是:
在vnpy回测中,在计算出因子之后,不会在当天换仓,而是会将需要换仓的订单保存在一个self.active_limit_orders的变量中,并且在下一个bar到来之后,用corss_limit_order计算是否能成交,如果能成交,则形成trade。
也就是说,我希望的,上一天应该交易的trade——在回测中实际上是下一天交易的!由于交易的时间点不一样,有的订单会从能成交变成不能成交。不过有一点欣慰的地方在于,如果能成交的话,实际上产生的收益还是我想象中一样的。
我应该如何修改vnpy的回测方式,才能让它想我想象中那样回测呢?我是不是不该用日数据回测呢?谢谢各位了!