交易系统进阶

VeighNa / vn.py

面向多市场交易的事件驱动框架,当前核心也包含 Alpha 因子与机器学习投研模块。

★ 45,954vnpy/vnpy核验 2026-10-20
PythonQt事件驱动

为什么值得学

适合中国市场学习者理解交易网关、订单管理和研究模块如何分层。

需要的基础

  • Python 面向对象
  • 队列与回调
  • 行情、委托和成交概念

涉及哪些内容

事件总线交易网关OMSAlpha 研究

数据与控制流程

  1. 1网关接收行情
  2. 2事件引擎分发
  3. 3应用或策略处理
  4. 4主引擎发送委托
  5. 5回报更新 OMS

此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。

架构拆解 · 4 个核心模块

每个入口均已核对,点击可阅读源码
MODULE 01

事件引擎

EventEngine 通过队列分发事件,将产生行情的代码和处理行情的代码解耦。

输入
行情 / 订单 / 定时事件
输出
注册处理器的回调
源码入口 ↗vnpy/event/engine.py
MODULE 02

主引擎与 OMS

MainEngine 装配网关和应用;OmsEngine 维护订单、成交、持仓等状态。

输入
事件与用户操作
输出
统一查询和交易操作入口
源码入口 ↗vnpy/trader/engine.py
MODULE 03

网关契约

BaseGateway 定义连接、订阅、下单等抽象接口并发布标准事件。

输入
交易请求与外部回报
输出
标准化市场与订单事件
源码入口 ↗vnpy/trader/gateway.py
MODULE 04

Alpha 研究

AlphaLab 组织数据、模型和研究流程,衔接因子研究及策略评估。

输入
数据集、模型和研究配置
输出
研究结果与策略评估
源码入口 ↗vnpy/alpha/lab.py

建议阅读顺序

  1. 先读 Event / EventEngine 的生产和消费关系
  2. 再跟踪 BaseGateway 的 on_tick / on_order
  3. 查看 MainEngine 与 OmsEngine 的职责
  4. 独立阅读 AlphaLab,区分投研流程与实时交易流程
本站设计的学习练习

动手做一次

构造一个离线模拟网关,回放三条行情和一组订单状态变化。

完成后,检查这些证据

  • 画出事件调用链
  • 订单从提交到成交的状态变化可查询
  • 说明 CTA 等外部应用包与 vnpy 核心的关系

适用边界与版本说明

CTA 策略、很多交易接口是独立生态包,并非全部位于此仓库;研究模块可用的数据源和交易权限需要分别配置。

Star 快照:45,954 · 核验日期:2026-10-20 · GitHub 归档标记:未归档

核验默认分支:master · 源码固定提交:c6e231caf32b ↗

来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。

同方向继续比较