主动订阅端

  1. 用户发起调用mainEngine.subscribe函数
  2. mainEngine.subscribe中调用ctpGateway.subscribe函数
  3. ctpGateway.subscribe中调用ctpMdApi.subscrbie函数
  4. ctpMdApi.subscribe中调用C++封装的MdApi.subscribeMarketData函数,将订阅行情的请求最终通过底层C++ CTP API发出

回调推送端

  1. ctaEngine对象向eventEngine中注册EVENT_TICK类型事件的处理函数句柄ctaEngine.processTickEvent
  2. C++ CTP API收到Tick推送,自动回调MdApi.onRtnDepthMarketData函数推送行情数据字典data
  3. MdApi.onRtnDepthMarketData中将data里的数据读取并转化成VtTickData对象,并调用ctpGateway.onTick函数
  4. ctpGateway.onTick函数将VtTickData对象包装成类型为EVENT_TICK的行情事件对象Event,并调用eventEngine.put函数,放入事件引擎的缓冲队列
  5. 事件引擎的工作线程,从缓冲队列中读取出最新的行情事件后,根据EVENT_TICK事件类型去查找缓存在内部字典中的处理函数列表,并将事件对象作为入参,遍历调用到列表中的处理函数ctaEngine.processTickEvent
  6. ctaEngine.processTickEvent中查看Tick的代码vtSymbol,并调用交易该代码合约的策略对象strategy.onTick函数,最终去运行策略中的逻辑

VnTrader的数据流相关推荐

  1. 一张图看懂VnTrader的数据流

    转载自:https://zhuanlan.zhihu.com/p/32848878 作者(用Python的交易员) 今天被一位用户吐槽了:作为vn.py最核心的开箱即用交易平台,VnTrader的数据 ...

  2. vnpy学习_03学习推荐

    本来是打算花大时间,好好的学习vnpy的,后续作为自己主要开发工具(冲着可实盘). 但这两天扫了遍代码,发现还是挺轻量级的,如果当做主要开发工具,需要补充还是挺多的(只支持单标的以及缺少分钟数据源.多 ...

  3. 【TCP/IP详解 卷一:协议】第十九章 TCP的交互数据流

    19.1 引言 前一章我们介绍了TCP连接的建立与释放:三握四挥,以及状态转移图. TCP报文段分为:交互数据,以及成块数据(下一章介绍). 交互数据:例如telnet,ssh,这种类型的协议在大多数 ...

  4. 剑指offer:面试题41. 数据流中的中位数

    题目:数据流中的中位数 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数 ...

  5. 利用python中的gzip模块压缩和解压数据流和文件

    直接给出源码实现, 分为两种情况: 1.网络连接中的数据流的压缩和解压,或是打开的文件读取一部分 2.打开文件压缩或是解压 #!/usr/bin/env python #encoding: utf-8 ...

  6. leetcode-295 数据流的中位数

    中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操 ...

  7. python ffmpeg pipe_ffmpeg-python通过pipe与librosa进行数据流交互

    本项目的音频分类流程如下,整个处理流程都基于python实现: 从线上拿到m3u8媒体数据流,解析ts链接,通过ffmpeg库提取视频流中的音频数据,音频重采样到16k,切分为10s的音频段,使用li ...

  8. swift x输入流_SwiftUI 探索 - 状态和数据流

    SwiftUI是iOS13新出的声明式UI框架,将会完全改变以前命令式操作UI的开发方式.此文章主要介绍SwiftUI中状态管理的方式. 可变状态 @State 与React和Flutter中的Sta ...

  9. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

最新文章

  1. DCN-S4600 telent、http远程登录配置
  2. Request_获取请求参数通用方式演示
  3. 文件特殊权限及facl
  4. windows系统c 实现ftp服务器,windows系统c 实现ftp服务器
  5. 1006. 换个格式输出整数 (15)
  6. (数据库系统概论|王珊)第三章关系数据库标准语言SQL-第零节:MYSQL环境安装和表的建立以及一些注意事项
  7. 学习JDK源码(一):String
  8. 【Redis】Redis替代方案
  9. Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)
  10. linux 在命令行中复制的快捷键_在 Linux 中加速工作的键盘快捷键 | Linux 中国
  11. html css 命名规范,浅谈css命名规则(新手必看)
  12. phonegap走起
  13. HTML学习总结(3)——Audio/Video
  14. stm32单片机+驱动L298N控制直流电机调速
  15. 用Python3抓取并分析猫眼电影TOP100
  16. html5css字竖着显示,css如何设置竖排文字?
  17. Java笔记:面向对象3大特性
  18. 怎么才能做好一套软件系统
  19. 元学习入门:MAML
  20. NFT 制作生成进阶:男女性别区分+特殊款形象/头像完整项目

热门文章

  1. 【链塔DApp日报】BDI指数增长44.29%,EOS上过半DApp交易额大于0
  2. CompletableFuture的基本用法
  3. 百度发布Apollo城市智驾,距离AI智能驾驶还有多远?
  4. shutdown命令用法
  5. 在Excel中检验身份证号
  6. 尤大:怎么还生啃源码呢?我这就亲手给你写个丐版Vue
  7. python mysql dbutil_python环境测试MySQLdb、DBUtil、sqlobject性能
  8. 从使用层面谈java VO,DTO,BO,PO的设计概念
  9. 如何创建个人求职网站?
  10. 每日一诗词 —— 《瓦尔登湖》节选