一张图看懂VnTrader的数据流
转载自:https://zhuanlan.zhihu.com/p/32848878 作者(用Python的交易员)
今天被一位用户吐槽了:作为vn.py最核心的开箱即用交易平台,VnTrader的数据流和事件驱动机制始终没有一个特别清晰的描述文档。
交流解释一番后很快就收到了上面这张数据流的示意图,不得不再次感叹社区在vn.py项目成长中的巨大作用:换我这个小学美术不及格的作者打死也画不出这么简介明了的图表 *>﹏<*
这里也结合图表,以CTP行情Tick为例, 说明下Python部分的数据流的整体步骤(忽略C++封装部分的)。
主动订阅端
- 用户发起调用mainEngine.subscribe函数
- mainEngine.subscribe中调用ctpGateway.subscribe函数
- ctpGateway.subscribe中调用ctpMdApi.subscrbie函数
- ctpMdApi.subscribe中调用C++封装的MdApi.subscribeMarketData函数,将订阅行情的请求最终通过底层C++ CTP API发出
回调推送端
- ctaEngine对象向eventEngine中注册EVENT_TICK类型事件的处理函数句柄ctaEngine.processTickEvent
- C++ CTP API收到Tick推送,自动回调MdApi.onRtnDepthMarketData函数推送行情数据字典data
- MdApi.onRtnDepthMarketData中将data里的数据读取并转化成VtTickData对象,并调用ctpGateway.onTick函数
- ctpGateway.onTick函数将VtTickData对象包装成类型为EVENT_TICK的行情事件对象Event,并调用eventEngine.put函数,放入事件引擎的缓冲队列
- 事件引擎的工作线程,从缓冲队列中读取出最新的行情事件后,根据EVENT_TICK事件类型去查找缓存在内部字典中的处理函数列表,并将事件对象作为入参,遍历调用到列表中的处理函数ctaEngine.processTickEvent
- ctaEngine.processTickEvent中查看Tick的代码vtSymbol,并调用交易该代码合约的策略对象strategy.onTick函数,最终去运行策略中的逻辑
这样一来应该清晰了很多?最后再次感谢vn.py社区所有成员在项目发展中做出的贡献,没有你们就不会有今天的vn.py!!!
如果有问题欢迎在留言里提问。
v1.7.3将会在1月底前发布,另外这几天也已经被多次催更《vn.py项目2018年开发计划》了,预计会在春节前完成哈,加油加油~~~
一张图看懂VnTrader的数据流相关推荐
- 一张图看懂图像识别算法发展历史
一张图看懂图像识别算法发展历史
- 【转】几张图看懂列式存储
几张图看懂列式存储 转载于:https://www.cnblogs.com/apeway/p/10870211.html
- 一张图看懂阿里云网络产品[二] 专有网络VPC
摘要: 一张图看懂网络产品系列文章,让用户用最少的时间了解网络产品,本文章是第二篇 专有网络VPC 一张图看懂阿里云网络产品系列文章,让用户用最少的时间了解网络产品,本文章是第二篇 专有网络VPC 系 ...
- 一张图看懂2017双11中的网络产品和技术
摘要: 大家都知道,2017年双11又创造了新纪录,全天交易额1682亿,交易峰值32.5万笔/秒,支付峰值25.6W笔/秒,狂欢的背后是极其复杂庞大的技术系统,其中就有大量阿里云云计算相关的产品和技 ...
- 鸿蒙分布式体验,一张图看懂鸿蒙OS 2.0 分布式能力升级构筑全场景体验
原标题:一张图看懂鸿蒙OS 2.0 分布式能力升级构筑全场景体验 [手机中国新闻]9月10日下午,华为召开HDC2020大会,全新的HarmonyOS 2.0正式发布.新系统的分布式能力全面升级,同时 ...
- 一张图看懂SOA与微服务
一张图看懂SOA与微服务 图片来自普元 1.SOA是站在整个企业系统的角度的治理 2.微服务的概念则小一点 3.ESB主要解决的是系统集成的问题,而且是面向已有的信息资产
- 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别...
一张图看懂开源许可协议,开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 转载于:https://www.cnblogs.com/jingzhishen/p/589278 ...
- 一张图看懂光圈、快门、感光度的意义
一张图看懂光圈.快门.感光度的意义 光圈越大,参照物越模糊. 快门越高,运动物越清晰. 感光度越大,照片糙点越多.
- 一张图看懂光圈、快门、感光度的意义
一张图看懂光圈.快门.感光度的意义 光圈越大,参照物越模糊. 快门越高,运动物越清晰. 感光度越大,照片糙点越多.
最新文章
- VIM技巧:显示行号
- 如何忽略Git中目录中的文件?
- tcl把文本产生html,TCL脚本数据文件格式(译文)
- SAP系统中设备管理模块的主要增强出口
- 将MSHFLEXGRID表格中数据导入Excel方法
- 协作通信-af df的matlab仿真,协作通信-AF、DF的MATLAB仿真(解压密码yuema1086)
- js图片压缩java上传,JS实现异步上传压缩图片
- 你所不知道的模块调试技巧 - npm link #17
- 音速索尼克 怪人_如何使用AI玩刺猬索尼克。 真干净!
- 全国Python科研应用专题实操培训班通知
- 20200616:力扣193周周赛上
- docker 安装 MySQL 8,并减少内存占用 记录
- mac Sourcetree 账号密码输入错误后, 重新输入的方法
- fla 优化思路 flash cs6
- Android App 免杀教程
- html5制作表单网页
- 恒生电子面试(面试介绍,面试流程,面试建议,面试题库(软测方向))
- dd dt标签 显示与隐藏
- Linux登录mysql时 密码正确登录不进去,没有密码却能登进去
- window 删除文件报错显示被程序占用 强制删除被占用的文件