vnpy

🐍 开源量化交易,一键实盘 CTA

vn.py 是国内最流行的开源量化交易框架,支持 CTA、价差、期权等多类策略,对接 20+ 券商柜台,覆盖期货、证券及国际市场。

收藏
4.9k
安装
1k
版本
1.0.2
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

vn.py 采用模块化架构,通过 Python 编写策略逻辑并直接对接实盘。核心组件包括:

  • Gateway(网关层):封装 CTP、Femas、恒生 UFT、EMT、XTP、IB、Alpaca 等 20+ 交易接口,实现行情与订单的统一接入
  • App(应用层):提供 CtaStrategy(CTA 策略)、SpreadTrading(价差交易)、OptionMaster(期权波动率)、PortfolioStrategy(组合策略)、AlgoTrading(算法交易)等成熟模块
  • DataService:支持 RQData、TuShare 等数据源,配合 DataManager 实现历史数据下载与管理
  • BarGenerator / ArrayManager:内置 Tick 合成多周期 K 线(1/3/5/15/30/60 分钟及自定义周期),并提供 SMA、EMA、RSI、MACD、布林带、ATR 等 20+ 技术指标,无需依赖外部库

策略开发遵循模板化设计:继承 CtaTemplate,重写 on_initon_starton_tickon_bar 等回调,通过 buy/sell/short/cover 发送指令,put_event 刷新 GUI 状态。实盘只需配置网关连接参数,即可一键切换模拟/真实账户。

显著优点

1. 国内生态最成熟:社区活跃、中文文档完善、教学资源丰富(B站/公众号/微信群),新手友好
2. 实盘就绪:直接对接 CTP 等主流柜台,无需额外适配层,降低生产环境部署成本

3. 模块化可扩展:网关、策略、数据源均可独立安装(vnpy-ctpvnpy-ctastrategy 等),按需组合

4. 完整技术栈:从数据获取、回测、参数优化到实盘交易形成闭环,减少工具链切换

潜在缺点与局限

  • Python 性能瓶颈:高频或 Tick 级策略可能受 GIL 限制,需结合 C++ 改写或选用底层更快的框架
  • 主要面向中国市场:外盘接口(IB、Alpaca)功能相对基础,国际用户支持有限
  • GUI 依赖 Qt:无头服务器部署需额外处理 Qt 依赖,容器化略显繁琐
  • 回测速度中等:未内置向量化回测加速,大规模历史数据回测效率不及专业商业软件

适合人群

  • 国内期货/证券量化个人开发者、私募技术团队
  • 需要快速验证 CTA、套利、期权策略并直接上实盘的中低频交易者
  • 希望避免商业软件授权费用、偏好开源可控方案的用户

常规风险

1. 实盘连接风险:CTP 等接口配置错误(如行情/交易地址混淆、AuthCode 过期)可能导致无法下单或行情中断
2. 策略逻辑风险:未充分处理的边界条件(开盘跳空、涨跌停、合约到期)可能在极端行情下造成意外持仓或重复下单

3. 数据质量风险:免费数据源(如 TuShare)存在延迟或缺失,实盘前务必用专业数据服务(RQData)校准

4. 技术运维风险:Python 运行时异常、网络抖动可能导致策略进程崩溃,需配套进程守护与异常告警机制

5. 合规风险:接入实盘需具备相应交易编码与权限,模拟账户(SimNow)与实盘行为可能存在差异,切换时需充分测试

vnpy 内容

demo_project文件夹
手动下载zip · 11.3 kB
demo.pytext/plain
请选择文件