VNPY体系结构

news/2025/2/15 15:47:11/文章来源:https://www.cnblogs.com/super-zzh/p/18717033

整体架构

每个层次的模块只调用下层功能,并对上层提供接口。

  • 接口层负责对接行情和交易API,将行情数据推送到系统,发送交易指令。
  • 引擎层向下对接交易接口、数据库,向上服务于各种上层应用。
  • 应用层主要是面向用户的可视化界面,这一部分的代码主要为引擎功能与界面的连接。

功能模块

新版VNPY将各个功能模块分别打包成package

交易接口模块

功能模块 对接系统 支持市场
vnpy_ctp CTP柜台 期货、期货期权
vnpy_mini CTP MINI柜台 期货、期货期权
vnpy_femas 飞马柜台 期货
vnpy_uft 恒生UFT柜台 期货、期货期权、ETF期权
vnpy_esunny 易盛柜台 期货、黄金TD、外盘期货
vnpy_nhtd 南华NHTD柜台 期货、期货期权、ETF期权
vnpy_sopt CTP证券柜台 ETF期权
vnpy_sec 顶点飞创柜台 ETF期权
vnpy_hts 顶点HTS柜台 ETF期权
vnpy_xtp 中泰XTP柜台 股票、两融、ETF期权
vnpy_tora 华鑫奇点柜台 股票、ETF期权
vnpy_hft 国泰君安证券 统一接入网关 股票、两融
vnpy_ost 东证OST柜台 股票
vnpy_sgit 飞鼠柜台 黄金TD
vnpy_ksgold 金仕达黄金柜台 黄金TD
vnpy_rohon 融航资管系统 期货、期货期权
vnpy_comstar ComStar交易系统 债券
vnpy_tap 易盛外盘柜台 外盘期货
vnpy_da 直达柜台 外盘期货
vnpy_ib Interactive Brokers 外盘市场
vnpy_tts TTS仿真系统 仿真(期货、股票)

策略功能模块

功能模块 模块名称 应用领域
vnpy_ctastrategy CTA策略模块 策略模板、历史回测、参数优化、实盘交易
vnpy_ctabacktester CTA回测模块 基于图形界面实现CTA策略投研功能
vnpy_spreadtrading 价差交易模块 自定义价差、价差盘口计算、价差执行算法
vnpy_optionmaster 期权交易模块 波动率跟踪、希腊值风控、电子眼算法
vnpy_portfoliostrategy 组合策略模块 多标的组合策略的开发、回测和实盘
vnpy_algotrading 算法交易模块 算法交易执行:TWAP、Snipper、Iceberg
vnpy_scripttrader 脚本策略模块 命令行REPL交互式交易、脚本化策略交易
vnpy_paperaccount 本地仿真模块 本地模拟撮合、委托成交推送、持仓数据记录
vnpy_chartwizard K线图表模块 K线历史数据显示、实时Tick推送更新
vnpy_portfoliomanager 组合管理模块 策略委托成交记录、仓位跟踪、实时盈亏计算
vnpy_rpcservice RPC服务模块 跨进程RPC服务端、标准化RPC接口
vnpy_datamanager 数据管理模块 历史数据下载、CSV数据读写、数据库管理
vnpy_datarecorder 行情录制模块 Tick数据录制、K线合成录制
vnpy_excelrtd Excel RTD模块 基于pyxll的Excel数据实时推送更新
vnpy_riskmanager 风险管理模块 交易流控、单笔上限控制、撤单数量控制
vnpy_webtrader Web服务模块 提供Web服务的REST API、Websocket推送

数据库适配器模块

数据库分类 功能模块 对接数据库
SQL vnpy_sqlite SQLite
SQL vnpy_mysql MySQL
SQL vnpy_postgresql PostgreSQL
NoSQL vnpy_dolphindb DolphinDB
NoSQL vnpy_arctic Arctic
NoSQL vnpy_mongodb MongoDB
NoSQL vnpy_influxdb InfluxDB
NoSQL vnpy_leveldb LevelDB

数据服务模块

服务分类 功能模块 对接服务
云端 vnpy_rqdata 米筐RQData
云端 vnpy_udata 恒生UData
云端 vnpy_tushare TuShare
云端 vnpy_tqsdk 天勤TQSDK
客户端 vnpy_tinysoft 天软TinySoft
客户端 vnpy_wind 万得Wind
客户端 vnpy_ifind 同花顺iFinD

设计思想

事件驱动编程(Event-driven Programming)是一种编程范式,其核心思想是程序的执行流程由外部事件的发生和处理来驱动。在这种编程模型中,程序会监听和响应特定的事件,这些事件通常是由用户的动作(如点击鼠标、按下键盘等)或其他程序的消息触发的。当这些事件发生时,程序会调用相应的事件处理程序(或称为事件回调函数)来执行特定的逻辑或操作。

事件驱动编程通常用于构建交互式和实时的应用程序,如图形用户界面(GUI)应用、网页应用、游戏和网络服务器等。它的优势在于可以实现异步和非阻塞的操作,使程序能够同时处理多个事件和任务,提高系统的响应性能。

事件驱动编程包含几个基本要素:

  • 事件源(Event Source),即事件发生的对象或组件;
  • 事件监听(Event Listening),程序通过注册事件监听器来监听特定事件源上的事件;
  • 事件处理(Event Handling),当事件发生时,程序会调用相应的事件处理程序来执行特定的逻辑或操作;
  • 事件循环(Event Loop),一个常驻的循环,用于监听和分发事件,将事件分发给相应的事件处理程序。

通过事件驱动编程,开发者可以编写响应式的代码,根据事件的发生和用户的交互来驱动程序的执行流程。这种方式使得应用程序能够更加灵活、交互性强,并且能够同时处理多个事件,提供更好的用户体验。事件驱动编程已成为现代软件开发中不可或缺的一部分,尤其在处理异步事件和构建交互式系统方面发挥着重要作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884282.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ABP】项目示例(2)——聚合根和实体

聚合根和实体 在上一章节中,已经完成了项目搭建的前置准备,在这一章节中,实现领域层的聚合根和实体 创建名称为General.Backend.Domain的标准类库,分别新建名称为Entities、Services、IRepositories和Specifications的文件夹,用于存放实体和聚合根、领域服务、仓储接口和规…

P1896 [SCOI2005] 互不侵犯(状态压缩)

位运算符好麻烦,没打括号被卡了半天 #include<iostream> #define int long long using namespace std; int f[12][100][1<<11]; int s[1<<11]; int num[1<<11]; signed main(){int n,k;cin>>n>>k;int cnt=0;for(int i=0;i<(1<<…

200N03-ASEMI豆浆机专用MOS管200N03

200N03-ASEMI豆浆机专用MOS管200N03编辑:ll 200N03-ASEMI豆浆机专用MOS管200N03 型号:200N03 品牌:ASEMI 封装:TO-252 批号:最新 最大漏源电流:200A 漏源击穿电压:30V RDS(ON)Max:1.8mΩ 引脚数量:3 芯片个数: 沟道类型:N沟道MOS管、中低压MOS管 漏电流:ua 特性:…

第七章-收益归因:Brinson模型

例子 现有一个投资组合,其基准组合为:70%中证800,20%债券,10%现金,如下:基金经理主动投资,对资产权重进行调整。假设基准组合收益率为\(r\)。若是看好股票,那就多配置一些股票,调整中证800权重为\(w_1^{\prime}\)。则收益调整为(\(w_1^{\prime}-w)(r_1-r)\)。会有两种情…

我用GPT干什么

有几天没有更新文章了,一方面因为感觉GPT出来了,写什么都不香了,非得写点关于GPT的才有资格出来和大家见面;另一方面,确实最近一段时间也在全面拥抱GPT:学习,总结,思考。所以今天就想随心所欲地说说GPT使用感受。其实GPT出来没多长时间,就注册账号,并体验了网页版,更…

金融期权

金融期权品种一览上海证券交易所品种 行权方式 上市日期华夏上证50ETF期权 欧式 2015-02-09华泰沪深300ETF期权 欧式 2019-12-23南方中证500ETF期权 欧式 2022-09-19华夏上证科创板50ETF期权 欧式 2023-06-05易方达上证科创板50ETF期权 欧式 2023-06-05深圳证券交易所品种 行权…

从ClickHouse中流式查询大数据

提示:本篇不适合手机阅读,主要为了提供代码实现。为了减速少大的Excel文件在内存中驻留,使用流的方式,边查询边组装,边下载文件相对来说是一个好的方式,下面是基于ClickHouse数据源的方式,下载100万条记录的处理方式,本地测试,内存只有100多M的使用,下载完后就会释放…

Axure9下载完美汉化及破解

一)Axure9下载 复制链接到浏览器,复制后需删除作者后面的部份才能打开!Windows系统: https://pan.baidu.com/s/1CF-lpmzzaevUX2lCZUmmiAMac新系统(M芯片) https://pan.baidu.com/s/1k73IJBAdlwUL1YPPRWXchA 提取码: 1323 注:M1版本自带破解,仅需汉化即可Mac旧系统(int…

单视图度量(Single View Metrology)总结

前面我们介绍了标定相机,并且我们知道,如果我们能够确定三维点的坐标以及标定相机的参数,就能够确定它在图像平面的位置。那我们现在思考一个问题,如果我们知道图像平面的坐标以及标定相机的参数,我们能够确定这个三维点的位置吗? 答案是否定的。因为一般情况下,三维点可…

简说VS中的.http

在VS17.5中,加入了一个.http文件,应该和你想的一样,就是一个存放请求的文件,关键是他能执行请求,很像curl。不过市面上相似的工具有很多,比如Postman就做的很好了,那为什么VS还要引入呢?我的简单理解,虽然Postman好用,但毕竟和VS中的源码是分离的,即使Postman等工具…

P1119 灾后重建

链接 https://www.luogu.com.cn/problem/P1119 题目知识点floyd算法思路看题解,讲的差不多,本篇就是记录下写过的题。 唯一要注意的就是当遍历k(本代码用cnt代替)时,ij都要从0取到n-1。代码 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm&g…

库卡机器人维修伺服电机刹车故障维修

库卡机器人作为工业自动化领域的佼佼者,其伺服电机系统的稳定性和可靠性对于生产线的顺畅运行至关重要。然而,在实际应用中,KUKA工业机械手伺服电机刹车故障时有发生,这不仅会影响机器人的正常运行,还可能对生产安全造成威胁。 ,kuka机器人电机刹车故障通常表现为以下几种…