ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

VeighNa(vnpy)功能介绍:基于 Python 的开源量化交易开发框架全景解析

VeighNa(vnpy)功能介绍:基于 Python 的开源量化交易开发框架全景解析 VeighNavnpy功能介绍基于 Python 的开源量化交易开发框架全景解析【免费下载链接】vnpy基于Python的开源量化交易平台开发框架项目地址: https://gitcode.com/vnpy/vnpyVeighNa 是一套基于 Python 的开源量化交易程序开发框架本指南以其官方文档《功能介绍》为核心骨架结合当前仓库源码系统梳理框架的目标用户、应用场景、交易接口gateway、量化应用模块app与通用组件event、chart、database、datafeed的完整体系并给出源码级实现依据与快速上手指引。读完本文你将掌握 VeighNa 的整体功能版图、各模块的职责边界与底层实现原理能够据此规划自己的策略开发与二次定制路线。框架定位作为一套基于 Python 的量化交易程序开发框架VeighNa 致力于提供从交易 API 对接到策略自动交易的完整量化解决方案。其核心理念是以一套标准化的交易平台体系为底座向上对接国内外诸多不同类型的金融市场证券、期货、期权、外盘等向下通过统一的引擎抽象支撑策略开发、回测研究、数据维护与实盘自动交易。框架在仓库中呈现为清晰的包结构vnpy 目录vnpy/event事件驱动引擎vnpy/trader交易平台核心引擎、网关基类、数据抽象、UI 等vnpy/chart高性能 K 线图表vnpy/alpha面向 AI 量化策略的机器学习因子投研模块4.0 版本新增vnpy/rpc跨进程通讯标准组件。同时项目采用「核心框架 独立功能包」的组织方式策略应用、交易接口、数据库适配、数据服务等均以vnpy_xxx的独立 Python 包形式存在通过统一基类与框架对接这一设计正是可定制扩展的架构基础。目标用户VeighNa 面向具有以下需求的开发者与团队基于 Python 开发量化交易程序充分利用 Python 社区强大的数据研究和机器学习生态例如 vnpy/alpha 模块即集成了 Lasso、LightGBM、MLP 等机器学习模型用于因子投研通过一套标准化平台对接多市场以统一的数据对象与事件体系覆盖证券、期货、期权、外盘等不同金融市场使用经过实盘检验的策略引擎完成从数据维护、策略开发、回测研究到实盘自动交易的整个业务流程对平台进行各种定制扩展增加交易接口、修改 GUI 图形界面、基于事件驱动引擎开发复杂策略应用掌控源代码细节彻底开源意味着可审计代码规避程序后门、策略窃取、信号截获、账号密码盗取等风险节约资金成本无需每年数万元的软件授权费或每笔成交的额外加点。典型应用场景从专业个人投资者、创业型私募到券商资管部门都能找到 VeighNa 的应用场景专业个人投资者使用 VeighNa Trader 直连期货公司的 CTP 期货柜台实现从策略开发到实盘自动交易的 CTA 业务流程创业型私募基于 RpcService 构建服务器端的统一报盘通道允许交易员在本地电脑自行开发各类交易策略应用实现多进程分布式架构券商资管部门对接证券公司统一部署的 O32 资管系统基于事件驱动引擎定制开发多策略复杂系统。这三类场景分别对应框架的三种扩展路径直接使用交易界面VeighNa Trader、分布式服务化改造vnpy/rpc 与 rpc_service 应用、深度的引擎层二次开发事件驱动引擎与策略引擎。分层架构与核心源码从源码结构看VeighNa 的运行时体系可归纳为四层其核心类均定义在 vnpy/trader 与 vnpy/event 中层次关键基类/模块源码位置职责事件层EventEnginevnpy/event/engine.py事件分发、定时器事件交易核心层MainEngine、BaseEngine、OmsEnginevnpy/trader/engine.py引擎管理与统一 API接口层BaseGatewayvnpy/trader/gateway.py交易接口抽象数据层BaseDatabase、BaseDatafeedvnpy/trader/database.py、vnpy/trader/datafeed.py数据库与数据服务抽象MainEnginevnpy/trader/engine.py是平台核心通过add_gateway()注册交易接口、add_app()注册应用模块、add_engine()注册功能引擎并对外暴露get_tick、get_order、get_contract等查询 API。所有网关与应用都围绕这一中枢进行组装。支持的接口vnpy.gateway交易接口封装为网关Gateway统一继承自BaseGatewayvnpy/trader/gateway.py。该抽象类规定了网关必须满足的约束线程安全所有方法必须线程安全且对象之间不共享可变属性非阻塞所有方法不得阻塞调用线程自动重连连接断开后需自动重连实现回调网关需主动推送on_tick、on_trade、on_order、on_position、on_account、on_contract等回调数据对象传入回调后不可再修改如需缓存引用须使用copy.copy创建新对象必备属性default_name默认网关名、default_setting连接所需配置项、exchanges支持的交易所列表。网关在连接成功后通过on_event()将行情、委托、成交、持仓等数据包装为Event对象放入事件引擎驱动上层应用运行。当前文档结合 README 4.0 说明覆盖的交易接口如下国内市场接口网关标识覆盖品种CTPctp期货、期货期权CTP 测试ctptest期货、期货期权CTP Minimini期货、期货期权飞马femas期货CTP 期权soptETF 期权顶点飞创secETF 期权顶点 HTShtsETF 期权恒生 UFTuft期货、ETF 期权易盛esunny期货、黄金 TD中泰 XTPxtpA 股、两融、ETF 期权国泰君安统一交易网关hftA 股、两融华鑫奇点股票torastockA 股华鑫奇点期权toraoptionETF 期权中亿汇达 Comstarcomstar银行间市场东方证券 OSTostA 股融航rohon期货资管TTStts期货飞鼠sgit黄金 TD金仕达黄金ksgold黄金 TD海外市场接口网关标识覆盖品种盈透证券ib海外多品种易盛 9.0 外盘tap外盘期货直达期货da外盘期货特殊应用接口网关标识覆盖品种RPC 服务rpc跨进程通讯接口用于分布式架构注意随着版本迭代接口列表仍在扩充README 中还列有东方财富 EMT、利星资管、杰宜斯、掘金仿真、恒生云 UF、RQData/迅投研行情等。各接口以vnpy_xxx独立包形式发布如vnpy_ctp、vnpy_xtp安装后即可在框架中注册使用。支持的应用vnpy.app应用模块统一继承自BaseAppvnpy/trader/app.py每个应用通过app_name引擎与组件唯一标识、app_module模块导入路径、display_name菜单显示名、engine_class引擎类、widget_name界面组件类等类属性声明自身注册进MainEngine后即可获得引擎实例并挂载到图形界面。VeighNa 提供开箱即用的各类量化策略交易应用cta_strategyCTA 策略引擎模块在保持易用性的同时允许对 CTA 策略运行过程中委托的报撤行为进行细粒度控制降低交易滑点、实现高频策略cta_backtesterCTA 策略回测模块无需 Jupyter Notebook直接使用图形界面进行策略回测分析、参数优化等工作spread_trading多合约价差套利模块既支持手动启动算法买卖价差也支持使用SpreadStrategyTemplate开发价差类量化策略algo_trading算法交易模块提供 TWAP、Sniper、Iceberg、BestLimit 等常用智能交易算法支持常用算法配置保存option_master期权波动率交易模块提供波动率曲线图表通过波动率管理组件设置定价参考波动率并由期权电子眼算法自动扫描市场机会瞬时完成交易portfolio_strategy多合约组合策略模块面向需要同时交易多合约的量化策略满足历史数据回测与实盘自动交易需求script_trader脚本策略模块针对多标的组合类交易策略设计支持命令行 REPL 指令式交易不支持回测chart_wizard实时 K 线图表模块在本地合约代码编辑框输入vt_symbol点击【新建图表】即可打开对应合约的实时 K 线图rpc_serviceRPC 服务模块可将某 VeighNa Trader 进程启动为服务端作为统一行情与交易路由通道支持多客户端同时连接实现多进程分布式系统excel_rtdExcel RTDRealTimeData模块实现 Excel 中访问 VeighNa 程序内任意数据信息微软面向金融行业实时数据需求设计的对接方案data_manager历史数据管理模块支持数据导入、数据查看、数据导出等功能支持自定义数据表头格式data_recorder行情记录模块基于图形界面配置实时录制 Tick 或 K 线行情到数据库用于策略回测或实盘初始化risk_manager风险管理模块提供交易流控、下单数量、活动委托、撤单总数等规则的统计与限制实现前端风控web_traderWeb 服务模块面向 B-S 架构实现主动函数调用REST与被动数据推送Websocket的 Web 服务器portfolio_manager投资组合管理模块面向基本面策略投资者为每个投资策略创建独立的投资组合策略对象paper_account模拟交易账户模块在交易客户端内部提供本地化模拟交易环境基于实盘行情盘口数据进行委托撮合解决依赖服务端仿真账户的问题。这些应用均以vnpy_xxx独立包发布如vnpy_ctastrategy、vnpy_ctabacktester安装后通过main_engine.add_app(AppClass)即可启用。通用类组件除交易接口与策略应用外框架还提供若干通用基础组件它们是整个平台的底层支撑vnpy.event —— 事件驱动引擎简洁易用的事件驱动引擎是事件驱动型交易程序的核心。其实现位于 vnpy/event/engine.pyEvent由事件类型字符串与数据对象构成EventEngine内部维护一个消息队列与分发线程默认每 1 秒生成一次定时器事件EVENT_TIMERregister()注册的处理器按事件类型被调用通用处理器则接收所有事件。网关推送的行情、委托、成交等事件正是经由此引擎分发到各应用引擎实现解耦与异步处理。vnpy.chart —— Python 高性能 K 线图表支持大数据量图表显示以及实时数据更新功能实现见 vnpy/chartchart_wizard 等应用即基于它构建。vnpy.trader.database —— 数据库抽象层集成几大数据库管理端模块支持读写性能优化与未来新数据库扩展。抽象基类BaseDatabasevnpy/trader/database.py定义了save_bar_data、save_tick_data、load_bar_data、load_tick_data、delete_bar_data等标准读写接口并配套BarOverview、TickOverview数据概览结构。SQL 类适配包括 SQLite默认单文件无需安装、MySQL、PostgreSQLNoSQL 类包括 DolphinDB、Arctic、TDengine、TimescaleDB、MongoDB、InfluxDB、LevelDB 等。数据库选择通过全局配置vt_setting.json中的database.*项指定默认配置见 vnpy/trader/setting.py。vnpy.trader.datafeed —— 数据服务抽象层提供标准化接口BaseDatafeedvnpy/trader/datafeed.py带来更灵活的数据服务支持。框架通过get_datafeed()根据全局配置datafeed.name动态导入vnpy_{name}模块并实例化其Datafeed类若未配置或模块缺失则回退到打印提示的基类实现。已对接的行情数据服务包括米筐 RQData、迅投研、咏春大师、恒生 UData、TuShare、万得 Wind、天软 Tinysoft、同花顺 iFinD、天勤 TQSDK 等。快速上手环境准备推荐使用为量化交易打造的 Python 发行版VeighNa Studio内置 VeighNa 框架与 VeighNa Station 量化管理平台无需手动安装支持的系统Windows 11 以上 / Windows Server 2022 以上 / Ubuntu 22.04 LTS 以上支持的 Python 版本Python 3.10 以上64 位推荐 Python 3.13。安装步骤下载 Release 版本解压后按平台运行仓库根目录的安装脚本Windowsinstall.batUbuntubash install.shmacOSbash install_osx.sh脚本启动除图形化启动外也可以创建run.py脚本启动 VeighNa Trader仓库示例见 examples/veighna_trader/run.pyfrom 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()在脚本所在目录运行python run.py即可启动。启动后可连接 SimNow 仿真账号在 SimNow 注册并获取经纪商代码与交易/行情服务器地址通过【系统】→【连接 CTP】填写账号完成连接随后可进行合约查询、行情订阅与策略加载。总结VeighNa 的价值在于以统一的 Python 编程模型将交易接口、策略引擎、数据管理与回测研究整合进同一套标准化体系中。无论是个人开发者基于 CTP 直连的 CTA 自动交易私募基于 RPC 的分布式报盘通道还是资管机构基于事件引擎的多策略复杂系统都能在框架内找到对应路径同时开源与可审计的特性使其成为兼顾成本、可控性与扩展性的量化交易开发底座。若需进一步深入可继续阅读仓库文档中的 VeighNa Trader 使用指南、接口对接说明、数据库配置 与 数据服务配置。【免费下载链接】vnpy基于Python的开源量化交易平台开发框架项目地址: https://gitcode.com/vnpy/vnpy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表