鉴于以上两点,我们在验证策略时,需要对多只甚至全部的股票同时进行回测。本文基于backtrader,编写了多股票同时回测程序。
同样,本文旨在验证回测功能,策略依然选择简单的长短期均线金叉买入死叉卖出策略。核心代码位于策略类的init及next方法,先来看init方法:
next方法中,循环遍历所有待测的股票,对每只股票,获取时间及股票名称,这样便于后续打印输出、日志留存或者调试。然后通过判断当前股票position的size,判断是否已经买入该股票,如果没有买入,判断短期均线金叉长期均线后,即可买入。如果已经持有了该股票,那么判断长期均线死叉短期均线后即可卖出。
最后要注意的是,向cerebro添加不同股票数据时,补充添加股票名称,以便后续调试及分析使用: