最终目的:
在portfolio_strategy模块上,运行单一策略,同时回测多个股票品种。
说明:
在portfolio_strategy模块示例策略里,直接在策略on_bars里进行指标计算和买卖,在回测多标的股票时,会出现bar找不到的错误。这是由于在交易日股票停牌,当天没有此股票K线数据。如果在前一天发送了交易信号,cross_limit_order时会造成停牌当天找不到bar数据,即在active_limit_orders里有某只股票数据,而在当天的self.bars[order.vt_symbol]找不到相应的k线数据。
解决办法:在backtesting的cross_limit_order加一个判断,进行过滤:
不知道大家有没有遇到过类似情况,怎么回测股票策略的?
参考公众号的文章(https://mp.weixin.qq.com/s/5NmGO5enaUrCHbaTBuY3Ww)
把csv数据导入数据库,为了省事直接用了sqlite
代码如下:
策略回测时候报错:
应该是由于数据在入库的时候,用strftime转成了str类型,策略回测的时候str类型没有day属性导致。
是我入库代码写的有问题,还是需要取数据的时候再转换一下?
如果在加载数据的时候再把类型转换为datetime,是不是需要改源码了?本来用sqlite就是想偷个懒。。。。
请问陈总和各位朋友用sqlite有没有遇到过这种情况,如何解决?多谢~
第一次使用,连接了CTP模拟盘,试着跑了自带的一个策略,出现如下问题,烦请大佬帮忙解答一下,多谢。
1、CTP模拟连接,策略初始化、启动都正常,点击停止“停止”后(策略为自带的的dualthrust,未更改),报错如下图:
2、有一个已经成交的单子,为什么手动没撤掉呢?用市价,平今、平昨都试过,看委托记录,为什么都是“已撤销”状态呢,另外,为什么多了一手空单,数量0,均价0?如下图:
3、策略界面,信息显示不全,如下图,鼠标无法调整字符所在窗口大小,请问应该如何调整能正常显示?