用 Python 搭一套能接实盘的量化交易框架(VeighNa)

VeighNa(vnpy/vnpy)是基于 Python 的开源量化交易平台开发框架,用 Python 写策略、接各家券商期货接口、跑回测与实盘。这篇文章讲清它装什么、怎么跑通、结果落在哪,以及它明确覆盖不到的边界,方便判断自己的场景适不适合用它。

VeighNa 面向的是一类具体需求:把交易想法写成 Python 代码,接上券商或期货公司的接口,在同一个框架里完成回测、参数优化和实盘自动下单。输入是行情数据与策略代码,输出是回测绩效统计与真实发往交易所的委托。它不是只给一个回测脚本,也不是只给一个下单 API,而是把交易接口、数据记录、风控、策略引擎拼成一个可以装扩展模块的平台。

VeighNa 是基于 Python 的开源量化交易平台开发框架,主要语言为 Python(占 99.6%),允许用户用同一套代码完成策略回测与实盘自动交易。需要自己写策略、自己接交易接口的量化从业者,可以用它替代零散拼装的下单脚本。

VeighNa 是基于 Python 的开源量化交易平台开发框架,主要语言为 Python(

框架本身提供交易品种接口的封装、策略引擎、行情记录、历史数据管理和前端风控,国内外期货、期权、股票、贵金属等交易接口以独立模块的形式接入。策略层分几条路线:cta_strategy 处理单标的 CTA 策略,portfolio_strategy 面向多合约组合策略,spread_trading 做价差交易,algo_trading 提供 TWAP、Sniper、Iceberg、BestLimit 等算法。4.0 版本新增了 vnpy.alpha 模块,把多因子机器学习策略的开发、投研和实盘串在一起,包含数据集、模型、策略和投研流程管理几个部分。

项目由私募基金、证券公司、期货公司等机构的用户长期使用,仓库地址是 https://github.com/vnpy/vnpy,采用 MIT License,Star 数 45689,Fork 数 12497,当前开放 Issue 4 个。

装它需要什么

  • 操作系统:Windows、Linux 或 macOS 都可以,仓库里提供了 install.bat、install.sh 和 install_osx.sh 三个对应脚本。
  • Python 版本:官方标注支持 3.10、3.11、3.12、3.13,4.0 版本的核心支持版本已升级到 Python 3.13。
  • 数据库:行情与历史数据需要落库,仓库的 Issue 历史里出现过 mongodb 安装失败、数据记录时间不正确等问题,说明数据库是绕不开的一环。
  • 交易接口模块:核心框架不含 CTP 等具体接口,需另外安装对应的扩展包,涉及 C++ API 封装的接口必须升级后才能用。
  • 实盘账号与权限:接期货接口需要满足穿透式监管要求,包括期货公司侧的版本配合,这一点仓库里只以 Issue 讨论的形式出现,没有统一的准入说明。

跑起来

  1. 克隆仓库:git clone https://github.com/vnpy/vnpy
  2. 按系统执行安装脚本,例如 Windows 下运行 install.bat,Linux 下运行 install.sh
  3. 安装所需的交易接口扩展模块,例如期货用 vnpy_ctp,回测用 vnpy_ctastrategy 与 vnpy_ctabacktester
  4. 从 examples/ 目录下选择对应的示例入口启动图形界面
  5. 在界面里配置数据库连接、加载策略、启动回测或连接交易接口

仓库里没有说明每一步的详细参数,具体配置需要查阅项目文档。

输出是什么

回测路径的结果落在 cta_backtester 的图形界面里,直接看绩效统计与参数优化结果,不需要开 Jupyter Notebook。实盘路径的委托、成交、持仓和账户信息在交易界面上实时刷新。行情记录模块可以把 Tick 或 K 线写入数据库,历史数据管理模块支持通过树形目录查看已有数据并做 CSV 导入导出。

判断一次运行是否成功,看策略是否正常加载、回测是否产出绩效统计、实盘下委托是否出现在活动委托列表里。日志方面,4.0 版本起用 loguru 替代了 logging。

先说它做不到什么

  • 核心框架不内置任何交易接口。接哪家期货公司或券商,就要装对应的扩展包,接口层由独立仓库维护,升级不同步时接口可能用不了。
  • script_trader 模块不支持回测,只能用于实盘和命令行交易;选错模块会直接卡在验证环节。
  • 面向机器学习多因子的 vnpy.alpha 需要自备数据源。仓库里的示例 notebook 依赖 RQData 或迅投研数据服务,没有配置数据服务就拿不到训练数据。
  • 图形界面的部分功能有平台限制,例如风控拦截的提示音目前仅支持 Windows。

涉及扫描、探测、抓取这类用途时要注意合规边界:接口只能对接自有账号或已明确授权的目标,未获授权接入他人账户或交易系统会带来法律与平台层面的风险。

适合已经在做量化交易、需要自己写策略并接实盘接口的开发者,也适合想在一个框架里同时拿到回测与实盘能力的机构团队。只用现成策略、不打算写代码的人不适合用它,因为策略本身需要自己实现。如果是刚接触量化、只想要一个托管好的成品方案,这个仓库提供的是开发框架而不是可以直接下单的产品。

焚评:这个项目的量化评分

本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.7 分(满分 10)。下表是各维度的得分:

评分维度得分
热度动量(权重 25%)10.0 / 10
开发活跃(权重 25%)10.0 / 10
社区响应(权重 15%)10.0 / 10
文档质量(权重 15%)10.0 / 10
发布节奏(权重 10%)6.8 / 10
风险控制(权重 10%)10.0 / 10

评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。

内容核验说明

VeighNa 的价值在于把策略、回测、实盘接口和风控收进同一套 Python 框架。文章交代了安装依赖、跑通步骤、输出落在哪里,也点明不内置交易接口、script_trader 不支持回测、vnpy.alpha 需自备数据源这些边界。适合已有量化基础、要自己写策略并接实盘的开发者;想要开箱即用下单工具的人不适合。

文中的 Star 数、Fork 数、开放 Issue 数、语言占比、4.0 版本特性等,来自原作者与仓库公开披露,诀.com 未独立验证。文中没有系统性实测证据,安装与跑通结果不保证在读者环境下复现;评分来自焚.com 按公开公式计算,口径以其方法页为准。

项目来源与说明

开源项目:vnpy(vnpy)

本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。

查看项目仓库