返回目录
开源项目量化交易类新手

GitHub - vnpy/vnpy: 基于Python的开源量化交易平台开发框架

VeighNa - By Traders, For Traders, AI-Powered. 💬 Want to read this in english ? Go here VeighNa是一套基于Python的开源量化交易系统开发框架,在开源社区持续不断的贡献下一步步成长为多功能量化交易平台,自发布以来已经积累了众多来自金融机构或相关领域的用户,包括私募基金、证券公司、期货公司等。 在使用VeighNa进行二次开发(策略、模块等)的过程中有任何疑问,请查看 VeighNa项目文档 ,如果无法解决请前往

0 次阅读2026/08/11 发布
GitHub - vnpy/vnpy: 基于Python的开源量化交易平台开发框架 来源图片

社区作者 · zZz

它解决什么问题

VeighNa - By Traders, For Traders, AI-Powered.

💬 Want to read this in english ? Go here

VeighNa是一套基于Python的开源量化交易系统开发框架,在开源社区持续不断的贡献下一步步成长为多功能量化交易平台,自发布以来已经积累了众多来自金融机构或相关领域的用户,包括私募基金、证券公司、期货公司等。

在使用VeighNa进行二次开发(策略、模块等)的过程中有任何疑问,请查看 VeighNa项目文档 ,如果无法解决请前往 官方社区论坛 的【提问求助】板块寻求帮助,也欢迎在【经验分享】板块分享你的使用心得!

想要更便捷地上手期货量化交易? VeighNa Fusion现已在合作期货公司上线,带来一站式CTA量化交易与智能投研体验:

  • 开箱即用 :通过合作期货公司申请开通权限,无需自行完成繁琐的接入测试
  • 数据中心 :提供历史数据下载和管理能力,降低量化初学者的数据准备门槛
  • 智策投研 :根据策略描述辅助梳理逻辑、生成代码,并衔接历史回测与参数优化流程

阅读 产品介绍文章 或查看 VeighNa Fusion文档 。

如需咨询开通,请扫描下方二维码添加【Fusion小助手】:

AI-Powered

VeighNa发布十周年之际正式推出4.0版本,重磅新增面向AI量化策略的 vnpy.alpha 模块,为专业量化交易员提供 一站式多因子机器学习(ML)策略开发、投研和实盘交易解决方案 :

- 📊 dataset :因子特征工程

  • 专为ML算法训练优化设计,支持高效批量特征计算与处理
  • 内置丰富的因子特征表达式计算引擎,实现快速一键生成训练数据
  • 支持自定义表达式函数注册,并提供缺失值填充、无穷值替换、时序标准化、特征删除等常用数据处理函数
  • Alpha 158 :源于微软Qlib项目的股票市场特征集合,涵盖K线形态、价格趋势、时序波动等多维度量化因子

- 💡 model :预测模型训练

  • 提供标准化的ML模型开发模板,大幅简化模型构建与训练流程
  • 统一API接口设计,支持无缝切换不同算法进行性能对比测试
  • 集成多种主流机器学习算法:
  • Lasso :经典Lasso回归模型,通过L1正则化实现特征选择
  • LightGBM :高效梯度提升决策树,针对大规模数据集优化的训练引擎
  • MLP :多层感知机神经网络,适用于复杂非线性关系建模

- 🤖 strategy :策略投研开发

  • 基于ML信号预测模型快速构建量化交易策略
  • 支持截面多标的和时序单标的两种策略类型

- 🔬 lab :投研流程管理

  • 集成数据管理、模型训练、信号生成和策略回测等完整工作流程
  • 简洁API设计,内置可视化分析工具,直观评估策略表现和模型效果

- 📖 notebook :量化投研Demo

  • download_data_rq :基于RQData下载A股指数成分股数据,包含指数成分变化跟踪及历史行情获取
  • download_data_xt :基于迅投研数据服务,下载获取A股指数成分历史变化和股票K线数据
  • research_workflow_lasso :基于Lasso回归模型的量化投研工作流,展示线性模型特征选择与预测能力
  • research_workflow_lgb :基于LightGBM梯度提升树的量化投研工作流,利用高效集成学习方法进行预测
  • research_workflow_mlp :基于多层感知机神经网络的量化投研工作流,展示深度学习在量化交易中的应用

vnpy.alpha模块的设计理念受到 Qlib 项目的启发,在保持易用性的同时提供强大的AI量化能力,特此向Qlib开发团队致以诚挚感谢!

功能特点

带有 ⬆️ 的模块代表已经完成4.0版本的升级适配测试,同时4.0核心框架采用了优先保证兼容性的升级方式,因此大多数模块也都可以直接使用(涉及到C++ API封装的接口必须升级后才能使用)。

- ⬆️ 多功能量化交易平台(trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易应用。

- 覆盖国内外所拥有的下述交易品种的交易接口(gateway):

- 国内市场

- ⬆️ CTP( ctp ):国内期货、期权

- ⬆️ CTP Mini( mini ):国内期货、期权

- ⬆️ CTP证券( sopt ):ETF期权

- ⬆️ 飞马( femas ):国内期货

- ⬆️ 易盛( esunny ):国内期货、黄金TD

- ⬆️ 顶点HTS( hts ):ETF期权

- ⬆️ 顶点飞创( sec ):ETF期权

- ⬆️ 中泰XTP( xtp ):国内证券(A股)、ETF期权

- ⬆️ 华鑫奇点( tora ):国内证券(A股)、ETF期权

- 东证OST( ost ):国内证券(A股)

- 东方财富EMT( emt ):国内证券(A股)

- 飞鼠( sgit ):黄金TD、国内期货

- ⬆️ 金仕达黄金( ksgold ):黄金TD

- ⬆️ 利星资管( lstar ):期货资管

- ⬆️ 融航( rohon ):期货资管

- ⬆️ 杰宜斯( jees ):期货资管

- 中汇亿达( comstar ):银行间市场

- ⬆️ TTS( tts ):国内期货(仿真)

- 海外市场

- ⬆️ Interactive Brokers( ib ):海外证券、期货、期权、贵金属等

- ⬆️ 易盛9.0外盘( tap ):海外期货

- ⬆️ 直达期货( da ):海外期货

- 特殊应用

- ⬆️ RQData行情( rqdata ):跨市场(股票、指数、ETF、期货)实时行情

- ⬆️ 迅投研行情( xt ):跨市场(股票、指数、可转债、ETF、期货、期权)实时行情

- ⬆️ RPC服务( rpc ):跨进程通讯接口,用于分布式架构

- 覆盖下述各类量化策略的交易应用(app):

- ⬆️ cta_strategy :CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略)

- ⬆️ cta_backtester :CTA策略回测模块,无需使用Jupyter Notebook,直接使用图形界面进行策略回测分析、参数优化等相关工作

- ⬆️ spread_trading :价差交易模块,支持自定义价差,实时计算价差行情和持仓,支持价差算法交易以及自动价差策略两种模式

- ⬆️ option_master :期权交易模块,针对国内期权市场设计,支持多种期权定价模型、隐含波动率曲面计算、希腊值风险跟踪等功能

- ⬆️ portfolio_strategy :组合策略模块,面向同时交易多合约的量化策略(Alpha、期权套利等),提供历史数据回测和实盘自动交易功能

- ⬆️ algo_trading :算法交易模块,提供多种常用的智能交易算法:TWAP、Sniper、Iceberg、BestLimit等

- ⬆️ script_trader :脚本策略模块,面向多标的类量化策略和计算任务设计,同时也可以在命令行中实现REPL指令形式的交易,不支持回测功能

- ⬆️ paper_account :本地仿真模块,纯本地化实现的仿真模拟交易功能,基于交易接口获取的实时行情进行委托撮合,提供委托成交推送以及持仓记录

- ⬆️ chart_wizard :K线图表模块,基于RQData数据服务(期货)或者交易接口获取历史数据,并结合Tick推送显示实时行情变化

- ⬆️ portfolio_manager :交易组合管理模块,以独立的策略交易组合(子账户)为基础,提供委托成交记录管理、交易仓位自动跟踪以及每日盈亏实时统计功能

- ⬆️ rpc_service :RPC服务模块,允许将某一进程启动为服务端,作为统一的行情和交易路由通道,允许多客户端同时连接,实现多进程分布式系统

- ⬆️ data_manager :历史数据管理模块,通过树形目录查看数据库中已有的数据概况,选择任意时间段数据查看字段细节,支持CSV文件的数据导入和导出

- ⬆️ data_recorder :行情记录模块,基于图形界面进行配置,根据需求实时录制Tick或者K线行情到数据库中,用于策略回测或者实盘初始化

- ⬆️ excel_rtd :Excel RTD(Real Time Data)实时数据服务,基于pyxll模块实现在Excel中获取各类数据(行情、合约、持仓等)的实时推送更新

- ⬆️ risk_manager :风险管理模块,提供包括交易流控、下单数量、活动委托、撤单总数等规则的统计和限制,有效实现前端风控功能

- ⬆️ web_trader :Web服务模块,针对B-S架构需求设计,实现了提供主动函数调用(REST)和被动数据推送(Websocket)的Web服务器

- Python交易API接口封装(api),提供上述交易接口的底层对接实现。

- ⬆️ REST Client( rest ):基于协程异步IO的高性能REST API客户端,采用事件消息循环的编程模型,支持高并发实时交易请求发送

- ⬆️ Websocket Client( websocket ):基于协程异步IO的高性能Websocket API客户端,支持和REST Client共用事件循环并发运行

- ⬆️ 简洁易用的事件驱动引擎(event),作为事件驱动型交易程序的核心。

- 对接各类数据库的适配器接口(database):

- SQL类

- ⬆️ SQLite( sqlite ):轻量级单文件数据库,无需安装和配置数据服务程序,VeighNa的默认选项,适合入门新手用户

- ⬆️ MySQL( mysql ):主流的开源关系型数据库,文档资料极为丰富,且可替换其他NewSQL兼容实现(如TiDB)

- ⬆️ PostgreSQL( postgresql ):特性更为丰富的开源关系型数据库,支持通过扩展插件来新增功能,只推荐熟手使用

- NoSQL类

- ⬆️ QuestDB( questdb ):开源高性能列式时序数据库,兼容PostgreSQL协议和SQL查询,擅长高吞吐写入与低延时分析场景

- DolphinDB( dolphindb ):一款高性能分布式时序数据库,适用于对速度要求极高的低延时或实时性任务

- ⬆️ TDengine( taos ):分布式、高性能、支持SQL的时序数据库,带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少研发和运维的复杂度

- ⬆️ MongoDB( mongodb ):基于分布式文件储存(bson格式)的文档式数据库,内置的热数据内存缓存提供更快读写速度

- 对接下述各类数据服务的适配器接口(datafeed):

- ⬆️ 迅投研( xt ):股票、期货、期权、基金、债券

- ⬆️ 米筐RQData( rqdata ):股票、期货、期权、基金、债券、黄金TD

- ⬆️ MultiCharts( mcdata ):期货、期货期权

- ⬆️ TuShare( tushare ):股票、期货、期权、基金

- ⬆️ 万得Wind( wind ):股票、期货、基金、债券

- ⬆️ 同花顺iFinD( ifind ):股票、期货、基金、债券

- ⬆️ 天勤TQSDK( tqsdk ):期货

- ⬆️ 掘金( gm ):股票

- ⬆️ polygon( polygon ):股票、期货、期权

- ⬆️ 跨进程通讯标准组件(rpc),用于实现分布式部署的复杂交易系统。

- ⬆️ Python高性能K线图表(chart),支持大数据量图表显示以及实时数据更新功能。

- 社区论坛 和 知乎专栏 ,内容包括VeighNa项目的开发教程和Python在量化交易领域的应用研究等内容。

- 官方交流群262656087(QQ),管理严格(定期清除长期潜水的成员),入群费将捐赠给VeighNa社区基金。

注:以上关于功能特点的说明为根据说明文档发布时情况罗列,后续可能存在更新或调整。若功能描述同实际存在出入,欢迎通过Issue联系进行调整。

环境准备

  • 推荐使用VeighNa团队为量化交易专门打造的Python发行版 VeighNa Studio-4.4.0 ,集成内置了VeighNa框架以及VeighNa Station量化管理平台,无需手动安装
  • 支持的系统版本:Windows 11以上 / Windows Server 2022以上 / Ubuntu 22.04 LTS以上
  • 支持的Python版本:Python 3.10以上(64位), 推荐使用Python 3.13

安装步骤

在 这里 下载Release发布版本,解压后运行以下命令安装:

Windows

install.bat

Ubuntu

命令
bash install.sh

Macos

命令
bash install_osx.sh

使用指南

- 在 SimNow 注册CTP仿真账号,并在 该页面 获取经纪商代码以及交易行情服务器地址。

- 在 VeighNa社区论坛 注册获得VeighNa Station账号密码(论坛账号密码即是)

- 启动VeighNa Station(安装VeighNa Studio后会在桌面自动创建快捷方式),输入上一步的账号密码登录

- 点击底部的 VeighNa Trader 按钮,开始你的交易!!!

注意:

  • 在VeighNa Trader的运行过程中请勿关闭VeighNa Station(会自动退出)

脚本运行

除了基于VeighNa Station的图形化启动方式外,也可以在任意目录下创建run.py,写入以下示例代码:

from vnpy . event import EventEngine from vnpy . trader . engine import MainEngine from vnpy . trader . ui import MainWindow , create_qapp

from vnpy_ctp import CtpGateway from vnpy_ctastrategy import CtaStrategyApp from vnpy_ctabacktester import CtaBacktesterApp

def main (): """Start VeighNa Trader""" qapp = create_qapp ()

event_engine = EventEngine () main_engine = MainEngine ( event_engine )

main_engine . add_gateway ( CtpGateway ) main_engine . add_app ( CtaStrategyApp ) main_engine . add_app ( CtaBacktesterApp )

main_window = MainWindow ( main_engine , event_engine ) main_window . showMaximized ()

qapp . exec ()

if __name__ == "__main__" : main ()

在该目录下打开CMD(按住Shift->点击鼠标右键->在此处打开命令窗口/PowerShell)后运行下列命令启动VeighNa Trader:

命令
python run.py

贡献代码

VeighNa使用Github托管其源代码,如果希望贡献代码请使用github的PR(Pull Request)的流程:

- 创建 Issue - 对于较大的改动(如新功能,大型重构等)建议先开issue讨论一下,较小的improvement(如文档改进,bugfix等)直接发PR即可

- Fork VeighNa - 点击右上角 Fork 按钮

-

Clone你自己的fork

Clone你自己的fork
git clone https://github.com/$userid/vnpy.git
  • 如果你的fork已经过时,需要手动sync: 同步方法

-

从 dev 创建你自己的feature branch

从 dev 创建你自己的feature branch
git checkout -b $my_feature_branch dev

- 在$my_feature_branch上修改并将修改push到你的fork上

- 创建从你的fork的$my_feature_branch分支到主项目的 dev 分支的[Pull Request] - 在此 点击 compare across forks ,选择需要的fork和branch创建PR

- 等待review, 需要继续改进,或者被Merge!

在提交代码的时候,请遵守以下规则,以提高代码质量:

  • 使用 ruff 检查你的代码样式,确保没有error和warning。在项目根目录下运行 ruff check . 即可。
  • 使用 mypy 进行静态类型检查,确保类型注解正确。在项目根目录下运行 mypy vnpy 即可。

其他内容

  • 获取帮助
  • 社区行为准则
  • Issue模板
  • PR模板

想要获取更多关于VeighNa开源社区的资讯? 请扫描下方二维码添加小助手加入【VeighNa社区交流微信群】:

版权说明

MIT

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

⬆️ SQLite( sqlite ):轻量级单文件数据库,无需安装和配置数据服务程序,VeighNa的默认选项,适合入门新手用户 - ⬆️ MySQL( mysql ):主流的开源关系型数据库,文档资料极为丰富,且可替换其他NewSQL兼容实现(如TiDB) - ⬆️ PostgreSQL( postgresql ):特性更为丰富的开源关系型数据库,支持通过扩展插件来新增功能,只推荐熟手使用 - NoSQL类 - ⬆️ QuestDB( questdb ):开源高性能列式时序数据库,兼容PostgreSQL协议和SQL查询,擅长高吞吐写入与低延时分析场景 - DolphinDB( dolphindb ):一款高性能分布式时序数据库,适用于对速度要求极高的低延时或实时性任务 - ⬆️ TDengine( taos ):分布式、高性能、支持SQL的时序数据库,带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少研发和运维的复杂度 - ⬆️ MongoDB( mongodb ):基于分布式文件储存(bson格式)的文档式数据库,内置的热数据内存缓存提供更快读写速度 - 对接下述各类数据服务的适配器接口(datafeed): - ⬆️ 迅投研( xt ):股票、期货、期权、基金、债券 - ⬆️ 米筐RQData( rqdata ):股票、期货、期权、基金、债券、黄金TD - ⬆️ MultiCharts( mcdata ):期货、期货期权 - ⬆️ TuShare( tushare ):股票、期货、期权、基金 - ⬆️ 万得Wind( wind ):股票、期货、基金、债券 - ⬆️ 同花顺iFinD( ifind ):股票、期货、基金、债券 - ⬆️ 天勤TQSDK( tqsdk ):期货 - ⬆️ 掘金( gm ):股票 - ⬆️ polygon( polygon ):股票、期货、期权 - ⬆️ 跨进程通讯标准组件(rpc),用于实现分布式部署的复杂交易系统。

- ⬆️ Python高性能K线图表(chart),支持大数据量图表显示以及实时数据更新功能。 - 社区论坛 和 知乎专栏 ,内容包括VeighNa项目的开发教程和Python在量化交易领域的应用研究等内容。 - 官方交流群262656087(QQ),管理严格(定期清除长期潜水的成员),入群费将捐赠给VeighNa社区基金。 注:以上关于功能特点的说明为根据说明文档发布时情况罗列,后续可能存在更新或调整。若功能描述同实际存在出入,欢迎通过Issue联系进行调整。 环境准备

安装步骤 在 这里 下载Release发布版本,解压后运行以下命令安装: Windows install.bat Ubuntu

  • 推荐使用VeighNa团队为量化交易专门打造的Python发行版 VeighNa Studio-4.4.0 ,集成内置了VeighNa框架以及VeighNa Station量化管理平台,无需手动安装
  • 支持的系统版本:Windows 11以上 / Windows Server 2022以上 / Ubuntu 22.04 LTS以上
  • 支持的Python版本:Python 3.10以上(64位), 推荐使用Python 3.13
命令
bash install.sh

Macos

命令
bash install_osx.sh

使用指南 - 在 SimNow 注册CTP仿真账号,并在 该页面 获取经纪商代码以及交易行情服务器地址。 - 在 VeighNa社区论坛 注册获得VeighNa Station账号密码(论坛账号密码即是) - 启动VeighNa Station(安装VeighNa Studio后会在桌面自动创建快捷方式),输入上一步的账号密码登录 - 点击底部的 VeighNa Trader 按钮,开始你的交易!!! 注意:

脚本运行 除了基于VeighNa Station的图形化启动方式外,也可以在任意目录下创建run.py,写入以下示例代码: from vnpy . event import EventEngine from vnpy . trader . engine import MainEngine from vnpy . trader .

ui import MainWindow , create_qapp from vnpy_ctp import CtpGateway from vnpy_ctastrategy import CtaStrategyApp from vnpy_ctabacktester import CtaBacktesterApp def main (): """Start VeighNa Trader""" qapp = create_qapp () event_engine = EventEngine () main_engine = MainEngine ( event_engine ) main_engine .

add_gateway ( CtpGateway ) main_engine . add_app ( CtaStrategyApp ) main_engine . add_app ( CtaBacktesterApp ) main_window = MainWindow ( main_engine , event_engine ) main_window . showMaximized () qapp .

exec () if __name__ == "__main__" : main () 在该目录下打开CMD(按住Shift->点击鼠标右键->在此处打开命令窗口/PowerShell)后运行下列命令启动VeighNa Trader:

  • 在VeighNa Trader的运行过程中请勿关闭VeighNa Station(会自动退出)
命令
python run.py

来源教程配图

教程配图
配图 1 · 教程配图查看原图
Fusion小助手
配图 2 · Fusion小助手查看原图
教程配图
配图 3 · 教程配图查看原图
VeighNa社区交流微信群
配图 4 · VeighNa社区交流微信群查看原图

适用场景

学习研究
开源项目实践