VNPY 软件架构分析

Posted xiaoxuebiye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VNPY 软件架构分析相关的知识,希望对你有一定的参考价值。


 

 

VNPY 架构设计文档

 

 

版本日志:

 

 

一. 引言

编写目的:

该软件概要设计说明书是“VNPY”开发中的重要文献资料,所完成的工作是将需求说明书中的数据流图转化成软件结构和数据结构,为后续进行详细设计说明书做好铺垫 。是开发人员进行功能设计和代码编写以及其他的具体实施开发工程提供必要的参考资料,在系统开发完成后期为系统的测试、验收提供帮助。其编写过程由项目的重要策划人完成。预期读者是从事“VNPY”开发的相关工作人员

背景:

       无

定义:

       无

参考资料

       无

 

二.总体设计

 

1.1  需求规定

参见 <需求说明文档>

1.2  运行环境

操作系统:Windows7,windows10, unbutu

开发运行语言:Python 2.7

主要依赖库:QT,Anaconda2,ta-lib

1.3  结构, 软件层次图

 技术分享图片

 

 

1.4  人工处理部分

通过 .json 文件配置相关账户参数

三.接口设计

1.外部接口

       CTP/LST/飞马/货币等,各外部接口说明参见接口官方网站。

2.内部接口

       RCP

四.运行设计

1.运行模块组合

2.运行控制

3.运行时间

 

五.系统结构设计

软件结构设计思路:

   VNPY 设计思路是数据驱动,引擎牵引,应用挂靠。  从业务出发,所有的交易都是基与行情的反应,有了行情才有信号,才有委托,才有持仓和风控。 从技术角度看,数据来源于API(CTP,LTS,火币)等,可以说数据驱动了一切。  VNPY的引擎包括:主引擎,事件引擎,数据引擎和应用引擎。  引擎的作用有点类似电脑的主板,所有的东西都往上插。如果需要资源,就向引擎要。 VNPY主引擎驱动Gateway(延伸到各行情交易CTP),使用了消息引擎(EventEngine)把所有Gateway发过来的数据分发到各个内部的外部的引用。内部的应用包括数据引擎,主界面等,外部应用包括风控管理,CTA策略,算法交易等各应用。  在应用里面,VNPY又设计了应用引擎来带动各策略组,给策略组提供服务。 同时VNPY主引擎提供了,订阅,委托,撤单,数据库操作等接口给各个内部的,外部的APP。

   数据服务作为多个独立应用程序,来实现数据的下载,整理,保存。 供策略回测使用。从性能的角度来说Python性能会极大的牵制了回测部分的功能。

 

软件结构图

 

 技术分享图片


技术分享图片

 

参考流程图

VNTrader 启动流程

 

 

VNTrader 订阅合约技术分享图片

 

 技术分享图片

 

 欢迎交流量化交易技术,qq群 : 375129936 



以上是关于VNPY 软件架构分析的主要内容,如果未能解决你的问题,请参考以下文章

软考 系统架构设计师软件架构设计① 软件架构的概念

软件架构设计-软件架构风格分层架构

软件架构 软件架构

小议软件架构设计要点

软件架构设计-软件架构风格分层架构

软件架构设计-软件架构风格分层架构