根据https://github.com/vnpy/vnpy/blob/master/examples/cta_backtesting/portfolio_backtesting.ipynb 里面的方法进行了多品种的回测,遇到了以下问题:
回测的多品种时,内存占用一直在增长。
portfolio_backtesting.ipynb里面的方法是每测试一个品种都重新建立回测引擎 engine = BacktestingEngine(),添加策略add_strategy(),载入数据load_data(),最终得出df累加到dfp进行统计。每次加载行情数据的时候都会存储在self.history_data上,不知道为何,每次重新新建engine对象的时候,旧的对象里面变量的的存储空间不应该是自动释放的吗?既然没有自动释放,我的想法是,每次执行完engine.run_backtesting()测试一个品种完毕的时候,把self.history_data所占用的内存显式释放掉,我用的是del history_data,gc.collect().,但是并不能释放,内存占用并不减少。 不知道是否我释放内存的方式有错,还是说有别的原因,请各位不吝指教。
vnpy tick级别回测的订单撮合机制是如何的?我在11:00:00.000的时候下了多单,价格为当时tick的卖一价,查看成交记录的时候,成交时间会显示是11:00:48.000?,如果对价有量的话,不应该是对价即时成交么?
tick回测模式下,在on_tick()函数上用self.buy(tick.last_price,1)开多单,但下单没成功,self.pos没有变化,请问会是什么问题?
用米筐下载数据时出现了以上错误。我已经按照文档申请了米筐的试用账号,得到账号和密码,然后再在VN Trader全局配置的界面上配置好账号和密码。打开CTA回测模块时,显示了RQData数据接口初始化成功,然后点击下载时cmd上面会出现rqdatac.share.errors.PermissionDenied: Not permit to get minbar price 的错误,开始以为是试用账号没权限,但是我直接在命令行上调用get_price()函数的时候,能够正确地返回数据。请问这是什么原因呢?我用的是vnpy 2.06