使用手册
功能在哪 · 是什么 · 怎么调出来一、vn.py 是什么(开源事件驱动框架 + CTP)
vn.py(读作 "venopy",现品牌名 VeighNa,马的意思)是国内用户量最大、最活跃的开源量化交易框架,由国人原创。它的定位是事件驱动的本地程序化交易系统框架:不是给你一个写好策略的软件,而是给你一整套"交易接口 + 策略引擎 + 风控 + 图表"的积木,让你拼出自己的自动交易系统。
- 全免费开源(核心 MIT 协议,随便用、可审计源码、无后门顾虑);
- Python 写策略,能直接接 pandas / 机器学习生态;
- 国内期货(CTP)、股票(XTP/TORA/OES)、ETF 期权、外盘(IB)、加密货币(OKX/Binance/BitMEX)等多市场;
- 专业个人、创业型私募、券商资管都在用;中文文档与社区活跃。
它和文华 WH8 的本质区别:
| 维度 | 文华 WH8 | vn.py(VeighNa) |
|---|---|---|
| 形态 | 带界面的收费软件 | 开源框架 + 图形化客户端,可自行拼装 |
| 语言 | 麦语言(类 Basic) | Python |
| 能力上限 | 简单 CTA 策略 | 不封顶(可接机器学习、数据库、RPC 分布式) |
| 学习门槛 | 低 | 中高(要会 Python + 懂柜台) |
| 费用 | 收费 | 核心框架免费开源 |
新手注解:如果你不会 Python,别碰 vn.py。先用文华 WH8 的麦语言入门,等你会写类、看得懂报错了再来。vn.py 是"给程序员的交易系统积木",不是开箱即用的点单软件。
1、社区版与商业版(2026 年现状)
vn.py 生态现在分两条线:
| 产品 | 性质 | 说明 |
|---|---|---|
| VeighNa 社区版(vnpy) | 开源免费 | GitHub 主干(当前 3.9.x),pip 安装,本文主要讲它 |
| VeighNa Station | 官方启动器 | 图形化勾选接口/模块一键启动 VeighNa Trader(命令 veighna) |
| VeighNa Fusion | 商业版 | 官方商业化发行版,带安装包与技术支持 |
| VeighNa Elite | 商业机构版 | 桌面出现 VeighNa Elite Trader 与 VeighNa Elite Lab 两个图标 |
二、安装与启动(VeighNa Station / run.py)
1、环境准备
- Python 3.10 / 3.11(vn.py 官方推荐;别用 3.12+/3.8 以下,网关 dll 适配容易出问题);
- Windows 为主(CTP 等柜台接口是 Windows DLL;部分接口在 Ubuntu 上也支持);
- 建议用 Anaconda 管理虚拟环境。
2、方式一:pip 安装核心 + 网关
conda create -n vnpy python=3.10
conda activate vnpy
pip install vnpy # 安装核心框架
pip install vnpy_ctp # 国内期货 CTP 网关
pip install vnpy_sqlite # SQLite 数据库(默认本地存储)
3、方式二:用 run.py 启动(可自由拼装模块)
克隆源码后进入 examples/veighna_trader/run.py,里面用 add_gateway() / add_app() 决定加载哪些接口和模块(大量项默认注释掉,按需取消注释):
from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
from vnpy_datamanager import DataManagerApp
def main():
qapp = create_qapp()
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(CtpGateway) # 加载 CTP 接口
main_engine.add_app(CtaStrategyApp) # CTA 策略
main_engine.add_app(CtaBacktesterApp) # 图形化回测
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
qapp.exec()
在该目录按住 Shift + 右键 →"在此处打开 PowerShell",运行 python run.py 即可启动图形界面。
4、方式三:VeighNa Station 启动器(官方推荐新手)
装好后命令行输入 veighna(或双击桌面 VeighNa Station 图标)启动 Station → 首次登录确认免责声明 → 点【交易】按钮 → 在配置对话框里勾选要用的交易接口和应用模块 → 点【启动】进入 VeighNa Trader。
白话:run.py 是"自己手写清单点菜",VeighNa Station 是"菜单上打勾点菜"。新手用 Station 勾选即可;进阶玩家改 run.py 精确控制加载哪些模块、用哪个数据库。
三、核心架构(事件驱动 / MainEngine / Gateway / App)
┌─────────────────────────────────────┐
│ MainEngine(主引擎,一切入口) │
│ 内部挂 EventEngine(事件引擎) │
├─────────────────────────────────────┤
│ 应用模块 vnpy.app: │
│ CtaStrategy / CtaBacktester / │
│ DataManager / DataRecorder / │
│ RiskManager / AlgoTrading / ... │
├─────────────────────────────────────┤
│ 交易接口 Gateway: │
│ CtpGateway / XtpGateway / │
│ IbGateway / OkxGateway / ... │
└─────────────────────────────────────┘
| 概念 | 白话 |
|---|---|
| EventEngine | 事件总线:行情来一个 tick、成交一笔,都发一个事件,引擎分发给订阅者 |
| MainEngine | 总调度,所有 Gateway 和 App 都挂在它下面 |
| Gateway(网关) | 连接某个柜台/交易所的通道(CTP/XTP/OKX/IB…),负责收发报文 |
| App(应用) | 在主引擎上跑的功能模块(CTA 策略、回测、风控、图表…) |
| Strategy(策略) | 你自己继承 CtaTemplate 写的 Python 类 |
新手注解:vn.py 是事件驱动架构——不是你写个 while 循环去查行情,而是柜台每推来一笔 tick,EventEngine 就发一个"tick 事件",订阅了的策略被动响应。这种写法延迟低、好扩展,是专业交易系统的标准做法。
四、VeighNa Trader 图形界面与配置
1、界面主结构
VeighNa Trader 是基于 PyQt 的桌面窗口:顶部是菜单栏(系统、帮助等),左侧是各类功能面板(CTA 策略、数据管理、风控等),主区域显示日志、持仓、委托、成交等表格。
2、连接接口入口
菜单栏【系统】→【连接 CTP】(或对应接口名)→ 弹出账号配置窗口 → 填账号密码服务器 → 连接。连接成功后在日志区看到查询账号、持仓、委托、成交的回报。
3、配置文件存在哪
各接口的账号配置保存在用户目录下的 .vntrader 文件夹里(JSON 文件)。好处是:升级 vn.py 不会丢配置。你既可以在图形界面里改,也可以直接去 ~/.vntrader/ 改对应 JSON。
4、查询可交易合约
先登录接口,再点菜单【帮助】→【查询合约】→ 弹出窗口留空点【查询】即列出全部可交易合约(可按合约代码过滤)。新用户对着列表抄 vt_symbol(如 rb2501.SHFE)最稳。
白话:.vntrader 文件夹是 vn.py 的"家目录"——配置、日志、数据库默认都在这。换电脑时把它整个拷走,配置就跟着走了。
五、应用模块(vnpy.app)全览
vn.py 不只有 CTA 策略。官方开箱即用的应用模块:
| 模块 | 干什么用 |
|---|---|
| cta_strategy(CTA 策略) | CTA 策略引擎,支持对委托报撤细粒度控制(降滑点、做高频) |
| cta_backtester(图形化回测) | 不用 Jupyter,直接在图形界面里回测、参数优化 |
| portfolio_strategy(组合策略) | 多合约组合策略回测与实盘(同时跑多个标的) |
| spread_trading(价差交易) | 多腿价差套利:价差盘口计算、算法执行、价差策略模板 |
| algo_trading(算法交易) | TWAP、Sniper、Iceberg、BestLimit 等智能拆单算法 |
| option_master(期权波动率) | 波动率曲线图表、定价参考波动率、电子眼扫描套利机会 |
| script_trader(脚本策略) | 多标的组合,命令行 REPL 交易(不支持回测) |
| chart_wizard(K 线图) | 输入 vt_symbol 直接看实时 K 线 |
| data_manager(数据管理) | 历史数据导入/查看/导出,支持自定义表头格式 |
| data_recorder(行情记录) | 图形化配置,实时录 tick/K 线到数据库,供回测/实盘初始化 |
| risk_manager(风控) | 交易流控、单笔下单数量、活动委托数、撤单总数等前端风控 |
| paper_account(本地模拟) | 客户端内本地模拟撮合,基于实盘行情盘口,不依赖服务端仿真 |
| rpc_service(RPC 服务) | 把一个 Trader 进程变服务端,多客户端分布式连入 |
| excel_rtd(Excel RTD) | 在 Excel 里实时读取 vn.py 内任意数据 |
| web_trader(Web 服务) | 提供 REST 主动调用 + WebSocket 推送的 Web 服务器 |
| portfolio_manager(组合管理) | 面向基本面策略,每策略独立子账户、自动跟踪持仓与盈亏 |
白话:新手别贪多。先把 cta_strategy + cta_backtester + data_manager 三个跑通就够;等做套利再碰 spread_trading,做大单拆单再碰 algo_trading。risk_manager 强烈建议实盘前就开——它是你手动下单手滑时的最后一道闸。
操作教程
一步一步 · 跟着做完一件事六、交易接口(Gateway)全览
vn.py 最大的优势就是接口全。官方文档列出的主要网关(2026 年口径):
1、国内期货与期权
| 网关(代码) | 品种 | 持仓方向 | 账号从哪来 |
|---|---|---|---|
| CTP(ctp) | 期货、期货期权(实盘 6.5.1) | 双向 | 期货公司开户 / SimNow 仿真 |
| CTP测试(ctptest) | 期货、期货期权(穿透式测试) | 双向 | 期货公司申请穿透式测试 |
| CTP Mini(mini) | 期货、期货期权 | 双向 | 期货公司开通 |
| 飞马 FEMAS(femas) | 期货 | 双向 | 期货公司开通 |
| 恒生 UFT(uft) | 期货、ETF 期权 | 双向 | 恒生电子申请 |
| 易盛 esunny | 期货、黄金 TD | 双向 | 易盛官网申请测试 |
| 融航 ROHON | 期货资管(中继模式) | 双向 | 融航申请 |
| TTS | 期货、期货期权 | 双向 | 经 OpenCTP 平台获取 |
2、ETF 期权
| 网关 | 说明 |
|---|---|
| CTP 期权(sopt) | ETF 期权 |
| 顶点飞创(sec) | ETF 期权,行情可 TCP/UDP |
| 顶点 HTS(hts) | ETF 期权 |
3、国内股票(A 股)
| 网关 | 品种 | 账号从哪来 |
|---|---|---|
| 中泰 XTP(xtp) | A 股、两融、ETF 期权(首家两融极速柜台) | 中泰证券申请 |
| 华鑫奇点 TORA(torastock/toraoption) | A 股 / ETF 期权 | 华鑫证券申请 |
| 国泰君安统一网关(hft) | A 股、两融 | 国泰君安申请 |
| 东方证券 OST(ost) | A 股 | 东方证券客户经理开通 |
| 宽睿 OES(oes) | A 股 | 券商统一部署 |
4、海外与加密货币
| 网关 | 品种 | 备注 |
|---|---|---|
| 盈透 IB(ib) | 海外股票/期货/期权/外汇,跨 Windows/Ubuntu/Mac | 用 ConId 而非 Symbol 作合约代码;TWS 地址 127.0.0.1:7497 |
| 易盛 9.0 外盘(tap) | 外盘期货 | 易盛官网申请 |
| 直达期货(da) | 外盘期货 | 直达期货开户入金 |
| 富途(futu)/ 老虎(tiger) | 港美股 | 各自券商账号 |
| OKX / Binance / BitMEX / Deribit 等 | 加密货币现货/合约/永续 | 交易所 API Key 接入 |
| ComStar(comstar) | 银行间市场 | 仅大型机构(券商自营/银行金市部),个人/私募用不了 |
白话:个人最常用的就是 CTP(内盘期货)和 OKX/Binance(加密)。股票个人量化主流反而走 QMT/miniQMT;vn.py 的股票接口(XTP/TORA)多面向机构/极速场景,开通门槛高。
七、连接实盘(CTP / SimNow)
1、CTP 连接要填哪些字段
VeighNa Trader 菜单【系统】→【连接 CTP】,弹出窗口字段:
- 用户名(投资者账号)、密码;
- 经纪商代码(broker_id,期货公司编号);
- 交易服务器地址(td_address)、行情服务器地址(md_address);
- 产品名称(AppID)、授权编码(AuthCode)——穿透式监管必填。
2、SimNow 仿真账号(新手第一步)
SimNow 是上期技术官方仿真环境,免费:在 SimNow 网站用手机号+短信验证注册,用户名(InvestorID)为 6 位纯数字,经纪商编号固定 9999,首次需改一次密码。官方提供两套环境(盘中仿真 / 盘后测试),适用时间段不同,注意区分。
3、加载策略上实盘的步骤
- 先连接 CTP(或对应网关),确认持仓/委托/成交查询正常;
- 打开左侧"CTA 策略"面板 → 添加策略 → 选策略类、填 vt_symbol(如 rb2501.SHFE);
- 设参数 → 点【初始化】(load_bar 拉历史)→ 点【启动】。
第一次连实盘前,务必先用 SimNow 模拟环境跑一周。流程:SimNow 仿真 → 期货公司模拟盘 → 小资金实盘,千万别跳步。
八、vn.py vs 其他量化方案
| 方案 | 特点 | 适合谁 |
|---|---|---|
| 文华 WH8 | 麦语言,简单,收费 | 不想学 Python 的 |
| vn.py | Python,开源免费本地跑,事件驱动,CTP 实盘生态最全 | 会 Python、想本地部署做期货实盘的 |
| QMT/miniQMT | Python,券商提供 | 做股票量化的 |
| 米筐 / 聚宽 | 云端网页回测+因子 | 想浏览器里研究、暂不实盘的 |
| Backtrader | 纯离线回测库 | 学术研究、纯历史验证 |
九、部署方式与数据库
| 方式 | 说明 |
|---|---|
| 本地 Windows | 最常见,CTP 柜台接口主要是 Windows DLL |
| 云服务器 | 7×24 跑策略,推荐阿里云/腾讯云 Windows Server(部分接口如 CTP/IB 也支持 Ubuntu) |
| RPC 分布式 | 用 rpc_service 把一个 Trader 变服务端,多客户端连入(创业私募常见) |
| Docker | 进阶,配置麻烦 |
数据库:vn.py 通过 vnpy.trader.database 抽象层支持 SQLite(默认,vnpy_sqlite)、MySQL、PostgreSQL、MongoDB,按数据量选——个人用 SQLite 零配置,机构海量历史数据上 MySQL/PostgreSQL。
新手注解:要 7×24 自动跑就租台云 Windows 服务器(每月约百元量级),别用家里电脑——停电断网策略就停了。云服务器上记得先开风控 risk_manager,防隔夜跳空。
十、隐藏功能与冷门技巧拾遗
- VeighNa Station 打勾启动:别再记
vnpy_trader,新版官方启动器是veighna,图形勾选接口和模块,新手友好。 - .vntrader 家目录:账号 JSON、日志、SQLite 库默认都在这,升级不丢配置,换机整个拷走。
- CTA 回测不用 Jupyter:CtaBacktesterApp 让你在 GUI 里选策略、调参优化,写代码党之外的好入口。
- risk_manager 是手滑保险丝:下单数量、活动委托、撤单总数上限,实盘前必开——防止死循环里疯狂下单。
- paper_account 本地模拟:没有服务端仿真环境时,客户端内自己撮合,拿真实行情练手。
- data_recorder 先录后测:回测缺历史数据时,用它把实盘 tick/K 线录进库,回测才有米下锅。
- algo_trading 拆单:大单别一把砸,TWAP/Iceberg/Sniper 算法拆着下单,降低冲击成本。
- IB 用 ConId:盈透接口里合约代码是 ConId(唯一标识),不是你熟悉的 Symbol,去官网产品查询页查。
- SimNow 两套环境:盘中仿真和盘后测试时段不同,连不上先看是不是用错环境了。
- rpc_service 分布式:创业私募把一台 Trader 当服务端,交易员各自本地连,统一报盘通道。
- excel_rtd 实时取数到 Excel:把 vn.py 内数据通过 RTD 实时写进 Excel,适合做报表/盯盘看板。
- run.py 按需取消注释:默认很多 App/接口是注释掉的,启动后模块灰着就回 run.py 取消对应注释。
- 商业版 Fusion / Elite:嫌 pip 拼装麻烦的机构可直接用官方商业发行版(带安装包),和开源社区版同源。
十一、2026 增量更新(深挖第2轮)
1、VeighNa 已演进到 4.x(本文 3.9.x 口径已过时)
- VeighNa 4.0(十周年之际发布):重磅新增
vnpy.alpha模块,面向 AI 量化策略,提供一站式多因子机器学习(ML)策略开发/投研/实盘,内置 Lasso 回归、LightGBM 梯度提升树、MLP 多层感知机三类模型。 - PyPI 最新主干已到 v4.4(2026-03-21、2026-05-14 均有发布);4.x 系列升级到 Python 3.13 支持,部分模块用 Polars 替换 pandas 提速,打包工具从 Poetry 迁到 uv。
- VeighNa Station 仍有 3.9.4 安装包:若某网关(如 xtquant 迅投)尚未提供 Python 3.13 适配,官方论坛建议回退到
veighna_studio-3.9.4.exe或降级 Python。
【提示】白话:本文写"主干 3.9.x"是上一轮口径;2026 年新装直接 pip install vnpy 拿到的是 4.x,想跑机器学习因子模型就看 vnpy.alpha;老网关不兼容 3.13 时再用官方 3.9.4 安装包兜底。
2、2026 社区动向(AI 投研插件)
- 2026-09-19 北京举办第 5 次社区活动:DeepSeek Harness 实战——VeighNa 量化投研插件开发;此前 8 月已办"量化 AI 智能体学习系列 2"。社区方向明显转向"大模型 + 量化插件"。
来源:PyPI vnpy、VeighNa 社区动向、vnpyproject PyPI 主页。
十二、2026 增量更新(深挖第3轮)
1、2026-09 网关与模块小版本节奏
- vnpy_ib(盈透网关)2026-09-13 发布新版:社区网关持续维护,IB 接口仍在跟进盈透 TWS API 变化。
- vnpy-componentmgr 1.1.x(2026-09-21):新增的组件管理模块,用于在 VeighNa Station 内统一管理/装配各 App 与网关组件(公开资料较少,随 Station 一起分发)。
- 其余网关 2026 年持续跟版:vnpy_tora 2026.8.2(华鑫奇点,8-02)、vnpy_binance(8-05)、vnpy_esunny(5-21,基于易盛启明星 V9)。
【提示】白话:主干 4.x 大版本稳定后,2026 下半年的节奏是各网关小版本跟柜台 API、Station 加组件管理;新装还是 pip install vnpy,网关单独 pip install vnpy_xxx。
来源:vnpyproject PyPI 主页、vnpy-componentmgr PyPI。
本站固定免责声明:本教程仅讲解 vn.py(VeighNa)框架的安装、架构与界面操作,不构成投资建议、策略推荐或实盘引导。程序化交易可能造成重大损失,历史回测业绩不代表未来表现。请通过持牌期货公司/券商参与交易,谨慎决策。接口清单、模块与版本号随官方更新可能变化,以 vnpy.com 官方文档与 PyPI 最新发布为准。
💬 用户评价 (0)
立即登录