任何一个策略,在初步回测之后,都会有一个参数寻优的过程。这个过程vnpy给大家实现了。其实这个是最简单了,说白了就是换参数多跑几次回测嘛。但是,说的直白点,vnpy的参数寻优在代码上来讲是不够高效的,原因很简单,我们其实可以进行一次数据回放就可以完成很多组参数的回测,而不是一组参数回放一次。
我们简单过一下代码吧,这部分比较简单。
之前我们是配置好之后就调用bactest了,但是如果是优化的话,就换了一个调用的东西了。参数的设置是一样的,不过在进行参数寻优之前,我们要做的就是设置好参数寻优的配置。
# 跑优化
setting = OptimizationSetting() # 新建一个优化任务设置对象
setting.setOptimizeTarget('capital') # 设置优化排序的目标是策略净盈利
setting.addParameter('atrLength', 12, 54, 2) # 增加第一个优化参数atrLength,起始12,结束20,步进2
setting.addParameter('atrMa', 20, 55, 5) # 增加第二个优化参数atrMa,起始20,结束30,步进5
这里,只是构建了我们优化时候的参数。
engine.runOptimization(TRStrategy, setting)
这就是把优化参数考察的策略和对应的设置放入到回测