vn.py源码解读(十、参数优化)

任何一个策略,在初步回测之后,都会有一个参数寻优的过程。这个过程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)

这就是把优化参数考察的策略和对应的设置放入到回测引擎中了。

相对来说,其实优化之后,更总要的是对参数对应的回测结果进行分析,但是在vnpy中似乎这个是缺失的,需要好好改进。笔者粗略的加了一个热力图的功能。后续会不断增加这一部分的功能。

发布了205 篇原创文章 · 获赞 236 · 访问量 98万+

猜你喜欢

转载自blog.csdn.net/qtlyx/article/details/89388356