vnpy(VeighNa)快速上手指南:从零到第一次CTP模拟报单的完整实战
【免费下载链接】vnpy基于Python的开源量化交易平台开发框架项目地址: https://gitcode.com/vnpy/vnpy
vnpy(VeighNa)是一套基于Python的开源量化交易平台开发框架,本指南将带你完成从环境安装、CTP仿真账号配置,到发出第一笔CTP模拟报单的全流程,帮助新手在30分钟内上手量化交易实战。
无论你是量化交易的新手,还是想为策略找一个可靠底座的老手,vnpy都能让你快速跑通"安装 → 连接 → 报单"这条最关键的路径。下文所有步骤都基于 SimNow 免费仿真环境,零资金风险,可以放心操作。
一、vnpy 量化框架核心功能一览 📌
在动手之前,先了解 vnpy 能为你提供什么:
| 能力 | 说明 |
|---|---|
| 交易接口(Gateway) | 内置对接 CTP、CTP Mini、飞马、易盛、中泰XTP、华鑫奇点、IB 等国内外主流接口,覆盖期货、期权、股票等品种 |
| 事件驱动引擎 | 高性能事件驱动架构,是整个交易系统的核心,源码见 vnpy/event/engine.py |
| 图形化交易端 | VeighNa Trader 提供行情、委托、成交、持仓、资金、日志六大监控组件 |
| 应用模块(App) | CTA策略、组合策略、价差交易、算法交易、本地仿真等开箱即用 |
| 数据库适配 | 默认 SQLite,零配置即可存储行情与委托数据 |
框架整体架构与模块清单详见项目说明:README.md。
二、一键安装 vnpy:3个脚本搞定环境搭建 🚀
vnpy 要求Python 3.10+(64位),推荐 Python 3.13,支持 Windows / Ubuntu / macOS。
1. 获取源码
推荐直接从 Release 页面下载发布版压缩包解压;也可以通过 git 克隆仓库:
git clone https://gitcode.com/vnpy/vnpy2. 运行一键安装脚本
仓库根目录为三大平台各准备了一个安装脚本,解压后在对应目录下执行即可:
- Windows:运行 install.bat
- Ubuntu:运行
bash install.sh(见 install.sh) - macOS:运行
bash install_osx.sh(见 install_osx.sh)
安装脚本会自动完成三件事:下载并编译 TA-Lib 技术指标库、安装 vnpy 本体及依赖、生成中文语言环境。依赖清单可参考 pyproject.toml。
💡 新手提示:如果已有 Anaconda 等 Python 发行版,也可以直接使用
pip install vnpy安装核心框架,再按需安装 CTP 接口扩展包(如vnpy_ctp)。
三、注册 SimNow CTP 仿真账号 🔑
CTP 是国内期货、期权最主流的交易接口。vnpy 官方教程使用的 SimNow(上期技术仿真平台)完全免费,是练习报单的最佳选择:
- 访问 SimNow 官网,完成仿真账号注册;
- 登录后进入"用户管理",记下InvestorID(6位纯数字账号),注意:不是注册时的手机号;
- 首次使用必须修改一次密码,否则无法登录;
- 在 SimNow 产品页面获取交易行情服务器地址(盘中/盘后各一组)。
四、启动 VeighNa Trader 图形化交易端 🖥️
启动方式有两种,新手推荐第二种(开箱即用):
方式一:VeighNa Station 图形化启动
登录 VeighNa Station 后,点击【交易】按钮,勾选 CTP 接口,点击【启动】即可。
方式二:脚本启动(灵活,适合开发者)
仓库自带了一份现成的启动脚本:examples/veighna_trader/run.py。
它的核心逻辑非常直观(见下方代码片段):创建事件引擎EventEngine→ 创建主引擎MainEngine→add_gateway(CtpGateway)注册 CTP 接口 →add_app(CtaStrategyApp)注册 CTA 策略模块 → 显示主窗口。
main_engine.add_gateway(CtpGateway) main_engine.add_app(CtaStrategyApp) main_engine.add_app(CtaBacktesterApp)在脚本所在目录执行:
python run.py启动成功后,VeighNa Trader 主界面即弹出,包含【日志】【行情】【委托】【成交】【持仓】【资金】等核心组件,详细界面说明见 docs/community/info/veighna_trader.md。
五、连接 CTP 接口:6个字段快速填写法 🔌
菜单栏点击【系统】→【连接CTP】,弹出账号配置窗口,按以下模板填写(以 SimNow 盘中测试为例):
| 字段 | 填写内容 |
|---|---|
| 用户名 | InvestorID(6位纯数字) |
| 密码 | 修改后的仿真密码 |
| 经纪商代码 | 9999(SimNow 默认编号) |
| 交易服务器 | 180.168.146.187:10202(盘中) |
| 行情服务器 | 180.168.146.187:10212(盘中) |
| 授权编码 | 0000000000000000(16个0) |
点击确定后,观察界面底部的日志组件:若出现登录成功、"合约信息查询成功"等信息,说明 CTP 接口已连通,同时能看到账号资金信息。
⚠️ 常见问题:连不上?先确认是否改过密码、InvestorID 是否填错、当前是否为交易时段(盘后请使用盘后服务器地址)。
六、查询合约并订阅行情 📋
- 菜单【帮助】→【合约查询】,点击【查询】,可检索所有合约代码、交易所、价格精度等信息;
- 回到主界面交易区,输入交易所 + 合约代码(例如交易所
SHFE、合约代码rb2610)按回车,即可订阅行情。
订阅成功后,交易组件会显示合约名称与买一/卖一深度报价,行情组件开始滚动推送最新行情——此时你的交易端已完全就绪。
七、发出第一笔 CTP 模拟报单 📈 🎉
在交易组件中填写五个关键字段即可下单:
- 方向:买 / 卖;
- 开平:开仓 / 平仓(首次下单选"开仓");
- 类型:限价单(可填价格)或市价单(价格留空);
- 价格:限价单参考卖一价填写,避免瞬间成交;
- 数量:新手建议先下 1 手。
发出委托后的状态流转:
- 委托立即出现在【委托】和【活动】组件,状态为"提交中";
- 未成交 → 状态变为"未成交",在【活动】组件中双击该委托即可撤单;
- 成交 → 从【活动】移入【成交】组件,状态变为"全部成交",同时【持仓】组件新增对应持仓记录。
完成开仓后,建议按相同步骤反向下单平仓,让持仓清零,完成一次完整的开平仓闭环演练。
八、数据监控:读懂6大组件 📊
| 组件 | 用途 |
|---|---|
| 行情 | 最新价、买一/卖一价量、成交量的实时监控 |
| 委托 | 所有委托及状态(提交中/未成交/全部成交/拒单) |
| 活动 | 未成交委托,双击可撤单 |
| 成交 | 交易所推送的真实成交价格、数量、时间 |
| 持仓 | 持仓方向、数量、昨仓、均价、浮动盈亏 |
| 资金 | 可用资金、冻结、余额 |
任一组件支持右键 → 保存数据(CSV格式),方便后续复盘分析。
九、下一步:从模拟报单走向策略交易 📚
跑通第一笔报单后,推荐按以下路线继续深入:
- CTA 策略引擎:编写策略类、实例化参数、一键启动自动交易,入门文档见 docs/community/app/cta_strategy.md;
- 本地仿真模块(PaperAccount):不连交易所,纯本地基于实时行情撮合,适合调试策略,说明见 docs/community/app/paper_account.md;
- 策略回测:使用 CTA 回测模块或 Jupyter 示例(examples/cta_backtesting/backtesting_demo.ipynb)验证策略历史表现;
- 核心引擎源码:想深入理解主引擎与事件循环机制,可阅读 vnpy/trader/engine.py 与 vnpy/event/engine.py。
十、新手常见 FAQ ❓
Q1:为什么 SimNow 登录总是失败?90% 的情况是账号未改密码,或用户名填了手机号而非 6 位 InvestorID。
Q2:安装时报错怎么处理?优先保存命令行底部的报错内容,对照 docs/community/install/windows_install.md 排查;也可直接使用 VeighNa Studio 一站式发行版,免去手动配置。
Q3:报单被"拒单"了怎么办?检查合约代码是否与合约查询结果一致、价格精度是否符合合约规格、账户可用资金/保证金是否充足。
至此,你已经完成了 vnpy 量化交易框架的安装、CTP 接口连接和第一笔模拟报单。接下来不妨尝试订阅一个活跃合约,练习限价单挂单、撤单与平仓,为后续的策略开发打好基础!
【免费下载链接】vnpy基于Python的开源量化交易平台开发框架项目地址: https://gitcode.com/vnpy/vnpy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考