核心用法
vn.py 是面向中国市场的开源量化交易框架,采用模块化架构:Gateway(券商接口层)、App(策略应用层)、DataService(数据服务层)。用户通过 Python 代码配置事件引擎、加载网关(如 CTP 期货、Hundsun 证券)、添加策略模块(CTA、价差交易、期权等),即可启动 GUI 或纯代码环境进行回测与实盘交易。
显著优点
- 本土市场深度适配:CTP、Femas、恒生 UFT、EMT、XTP 等 20+ 家国内券商柜台原生支持,覆盖期货、证券、期权全品种;国际市场的 IB、Alpaca、币安等也有网关支持。
- 策略开发友好:提供
CtaTemplate策略模板,BarGenerator合成多周期 K 线,ArrayManager内置 20+ 种技术指标(SMA/EMA/BOLL/RSI/MACD/ATR 等),无需额外依赖。 - 事件驱动架构:基于 EventEngine 的异步消息机制,适合高频 tick 级策略与复杂组合策略的低延迟执行。
- 活跃的社区生态:GitHub Star 数万级,文档、视频教程、第三方数据源(RQData、Tushare)支持完善,Bug 修复与功能迭代迅速。
- 实盘与回测一体化:同一套策略代码可直接切换回测引擎(
BacktestingEngine)与实盘引擎,减少上线风险。
潜在缺点与局限性
- 学习曲线陡峭:需掌握 Python 异步编程、事件驱动模型,初学者调试策略时容易因事件时序问题产生隐蔽 Bug。
- GUI 依赖 Qt:
PyQt5/6界面在部分 Linux 发行版或远程服务器上配置复杂,无界面部署需额外封装。 - 数据管理薄弱:历史数据下载、清洗、存储需依赖 RQData、MongoDB/SQLite 等外部组件,框架本身无内置数据平台。
- 性能瓶颈:纯 Python 的事件循环在极高频(微秒级)场景下弱于 C++ 或 Rust 框架;GIL 限制多核 CPU 利用率。
- 合规与接入门槛:CTP 等实盘接口需期货公司开户、申请 AppID/授权码,SimNow 模拟环境规则时有变动。
适合人群
- 中国期货/证券/期权市场的个人量化交易者与私募初创团队
- 有 Python 基础、熟悉技术分析指标、需要快速验证 CTA/套利/波动率策略的开发者
- 希望从回测平滑过渡到实盘的策略研究员
常规风险
- 实盘资金风险:策略逻辑错误、网关异常断开、行情延迟可能导致非预期成交与亏损,务必先在 SimNow 等模拟环境充分测试。
- API 密钥安全:CTP 等实盘配置含密码、授权码,若硬编码或泄露至版本控制,存在账户被盗用风险。
- 数据质量风险:免费数据源存在复权错误、缺失行情等问题,需人工校验后再用于生产决策。
- 技术依赖风险:开源项目维护依赖社区,重大版本升级(如 PyQt5→6、Python 3.8→3.11)可能引入兼容性断裂。