VNPY 架构设计文档
https://gitee.com/vnpycn/vnpy/wikis
VNPY开源地址
版本日志:
一. 引言
编写目的:
该软件概要设计说明书是“VNPY”开发中的重要文献资料,所完成的工作是将需求说明书中的数据流图转化成软件结构和数据结构,为后续进行详细设计说明书做好铺垫 。是开发人员进行功能设计和代码编写以及其他的具体实施开发工程提供必要的参考资料,在系统开发完成后期为系统的测试、验收提供帮助。其编写过程由项目的重要策划人完成。预期读者是从事“VNPY”开发的相关工作人员
背景:
VNPY 属于 上海量贝信息科技有限公司是国内运用全面的开源量化交易框架。 我司上海量贝信息科技有限公司是*从事量化相关软件的信息和软件服务企业,公司位于上海,在国内市场,我们的客户定位包括个人量化交易爱好者、高校、证券公司、基金管理公司、银行和投资公司等金融企业。 精于量化,以回测为起点,我司紧密跟随金融市场日新月异的发展,不断向新的领域发展,新的产品和服务战略不断在延伸,在金融领域,我司已建成完整的产品系列 。
二.总体设计
1.1 需求规定
参见 <需求说明文档>
1.2 运行环境
操作系统:Windows7,windows10 ,windows11
开发运行语言:Python3
主要依赖库:PyQT,Anaconda,ta-lib, pyqtgraph
1.3 结构, 软件层次图
1.4 账号保存
VNPY3.0 新版本通过.ini 文件配置相关账户参数
三.接口设计
1.外部接口
主要基于CTP
2.和API交互模式
ctypes
四.运行设计
1.运行模块组合
2.运行控制
3.运行时间
五.系统结构设计
软件结构设计思路:
VNPY 设计思路是数据驱动,引擎牵引,应用挂靠。 从业务出发,所有的交易都是基与行情的反应,有了行情才有信号,才有委托,才有持仓和风控。 从技术角度看,数据来源于API(CTP,LTS,火币)等,可以说数据驱动了一切。 VNPY的引擎包括:主引擎,事件引擎,数据引擎和应用引擎。 引擎的作用有点类似电脑的主板,所有的东西都往上插。如果需要资源,就向引擎要。 VNPY主引擎驱动Gateway(延伸到各行情交易CTP),使用了消息引擎(EventEngine)把所有Gateway发过来的数据分发到各个内部的外部的引用。内部的应用包括数据引擎,主界面等,外部应用包括风控管理,CTA策略,算法交易等各应用。 在应用里面,VNPY又设计了应用引擎来带动各策略组,给策略组提供服务。 同时VNPY主引擎提供了,订阅,委托,撤单,数据库操作等接口给各个内部的,外部的APP。
数据服务作为多个独立应用程序,来实现数据的下载,整理,保存。 供策略回测使用。从性能的角度来说Python性能会极大的牵制了回测部分的功能。
软件结构示意图