vn.py 量化交易框架实践指南:从安装配置到 CTA 策略回测

📅 2026/8/2 6:32:39 👁️ 阅读次数 📝 编程学习
vn.py 量化交易框架实践指南:从安装配置到 CTA 策略回测

vnpy实践

github主页:https://github.com/vnpy/vnpy

官方文档:https://www.vnpy.com/docs/cn/index.html

  • 可参考文档配置数据库、数据接口、交易接口。

官方论坛:https://www.vnpy.com/forum/ 常见问题可以在这里搜

安装

  • 安装Python发行版VeighNa Studio-4.4.0集成内置了VeighNa框架以及VeighNa Station量化管理平台,无需手动安装

最好别手动安装,可能有版本问题,费时费力。注:若提示未找到alphalens包,不要直接安装alphalens,而是装alphalens-reloaded>=0.4.5。

提示缺失的包应参考pyproject.toml文件的版本。

  • 使用环境:Window 10,Python 3.13

使用指南

  1. SimNow注册CTP仿真账号,并在该页面获取经纪商代码以及交易行情服务器地址。下述红线画出的,是在获取交易行情,进行模拟交易,配置交易接口需要填的内容。

    1. 配置交易行情等服务器流程:

    2. 选择系统里的连接CTP

    3. 输入后点击连接

    4. 注意如果连不通交易或行情服务器,可用telnet测试该端口是否是通的,非交易时间可能是关闭状态

VeighNa社区论坛注册获得VeighNa Station账号密码(论坛账号密码即是)

  1. 启动VeighNa Station(安装VeighNa Studio后会在桌面自动创建快捷方式),输入上一步的账号密码登录
  2. 点击底部的VeighNa Trader按钮,开始你的交易!!!

也可以脚本运行软件,方式参考官方github

配置数据库

参考官方文档配置,用sqlite,无需配置密码等。示例如下:

  • 直接修改vnpy\trader\setting.py脚本里的
    "database.name": "sqlite", "database.database": "database.db",
  • 或在界面配置上修改:点击配置后,在弹框里对应字段修改。

配置数据接口

参考https://www.vnpy.com/docs/cn/community/info/datafeed.html,使用tqsdk,可试用1个月,试用流程简洁,试用期过后也可以获得数据。

天勤TQSDK是由信易科技推出的Python程序化交易解决方案,提供当前可交易合约上市以来的历史数据获取:

  • 项目地址:vnpy_tqsdk
  • 数据分类:期货
  • 数据周期:分钟线(实时更新)
  • 注册申请:天勤量化-信易科技(shinnytech.com)

也可使用tushare,但tushare在免费积分内只够获取股票类数据,无法获取期货类。

配置流程:

  • 直接修改vnpy\trader\setting.py脚本里的
    "datafeed.name": "tqsdk", "datafeed.username": "账户名", "datafeed.password": "密码",
  • 在界面配置上修改

CTA回测

可直接参考官方文档https://www.vnpy.com/docs/cn/community/app/cta_backtester.html,以下是简洁示意。

选择交易栏里的CTA回测研究模块。

在功能栏里选择CTA回测

在弹窗里,先下载需要的数据,指定本地代码(股票、期权代码),指定日期等,点击下载数据。

再选择交易策略,弹出策略配置超参后,可修改再开始回测即可。

回测不同策略、超参和时间段

结论:对不同的时间段,应及时选择合适的策略,配合合适的超参。应有选择的选取合理的目标来优化超参。

不同策略:

分析:同时间段,不同策略表现不同,应针对市场表现选择合适策略。如下双均线法就是亏损,而boll法则是盈利。

双均线法,总收益率=-1.94%,

boll法,总收益率为7.54%。

不同超参:

分析:同策略同时间段,不同超参会极大影响策略表现。

(1)当boll_window为20,boll_dev=3.4

亏损-3.2w

不同指标优化超参数

分析:同一个策略,根据不同的指标,优化超参数,可以看到最好的指标对应超参数是不同的。优化目标的选择也很重要。

根据总收益率,优化超参数,主要是boll_window【15~21】和boll_dev【2.4~4.4】

根据夏普比率,优化超参数。

根据收益回撤比,优化超参数:

(2)当boll_window改为17,而boll_dev改为2.4时,如下:

盈利12w。收益率为12.08%,百分比最大回撤为-3.42%。调整超参前,是亏损的,略调整后是盈利的,以及回撤天数、回撤百分比也不同。说明策略的表现对超参的选择极为敏感。

不同时间段

分析:在不同时间段,同策略同参数的表现也不同。应针对当前时间的表现,及时更换策略。

4月25日到5月25日;boll策略总收益-4.62%,该策略震荡未有明显反转的行情中表现不佳。

3月25日到4月25日,boll策略盈利,总收益率为6.14%,只成交2笔。该策略在突破横盘,市场呈现上升趋势,表现良好。

不使用vnpy也可在线回测,以tqsdk为例

用于敏捷学习

天勤参考策略实现:https://doc.shinnytech.com/tqsdk/latest/demo/strategy.html

天勤因子计算分析:https://doc.shinnytech.com/tqsdk/latest/demo/notebooks/factor.html

tqsdk和vnpy有区别https://doc.shinnytech.com/tqsdk/latest/advanced/for_vnpy_user.html#for-vnpy-user/