backtrader内置的策略参数优化方法是暴力全量搜索方法,也就是遍历每个参数组合值。在参数很多,每个参数取值变化范围大的情况下,优化效率是很低的。
可以采用智能优化算法,比如粒子群优化等进行大规模参数优化。下面,我们用python开源算法库optunity来对backtrader策略参数进行优化。
我们的示例策略是一个简单的双均线策略,要优化两个参数,即两个均线移动窗口,目标是使得账户市值最大化。从Yahoo在线api取得微软股票日线数据,进行回测。
采用optunity中的粒子群算法来优化,代码如下:
optunity支持如下几种算法(solver),读者可以分别测试它们。
particle swarm,sobol,random search,cma-es,grid search
案例来自教程,百度网盘下载: