vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 2
声望: 0

问题:
为什么策略在单核Tick回测能获得目标结果,参数优化结果都为0?

本地背景:

  1. vn station2.2.0版本, CTA回测
  2. 导入币安以太坊历史Tick数据,选的k线周期也是tick
    如下图所示:

description

操作:
正常点击开始回测,能正确获取策略的目标结果,比如总收益率、夏普比率等;
但是点击参数优化,无论是多进程优化还是遗传算法优化后,获取的目标结果都为0,如总收益率为0,夏普比率为0等。

未解决问题,
我的原因分析如下:
已经看过CTA回测backtesting.py代码,
分析了单核回测和参数优化的代码,发现以下情况:
通过本地自定义日志发现:单核Tick回测运行了我的策略,而参数优化多进程跑的时候没有运行 回测中的函数:
engine.load_data()
engine.run_backtesting()
engine.calculate_result()
出现这种情况是什么原因导致的?

Member
avatar
加入于:
帖子: 2
声望: 0

太坑了呀,VN Station2.2.0版本出现这种问题是有一个BUG,记录一下:
路径:vnpy/app/cta_backtester/engine.py文件中run_optimization函数中代码块:

        if interval == Interval.TICK:
            mode = BacktestingMode.TICK

应该改为:

        if interval == Interval.TICK.value:
            mode = BacktestingMode.TICK

而开始回测中没有这个BUG,这才导致参数优化时载入bar模式而没有载入tick模式,才会出现这种问题

Member
avatar
加入于:
帖子: 2621
声望: 157

感谢反馈,下个版本会进行修改的

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号