工作中需要对接港交所OMD-C的Standard版行情,现在把一些知识点做个笔记,供以后查阅。

1. 概述

OMD数据服务分为实时服务、重传服务、刷新服务三部分。

  • 实时服务:UDP多播。提供挂单、成交、指数、市场状态等实时数据,以及最高价、最低价、最后成交价、成交量、等统计数据。实时服务以UDP为载体,通过多播推给接收端。消息被归类到若干通道(Channel),每个通道包含若干消息类型,比如成交消息和挂单消息都是在通道10。每个Channel的报文有唯一Sequence,Sequence总是从1开始。不同Channel之间的Sequence没有关联。为了减少丢包影响,报文都通过两个独立通道多播,比如Channel 10和Channel 510是一对,接收端根据Sequence做好去重工作。
  • 重传服务:TCP请求应答。缓存每个Channel最近50,000个报文,多播丢包时,接收端指定Sequence区间,向重传服务请求丢失的报文。重传是有限制的:
    • 单Channel缓存最近消息数量:50,000

    • 单次请求Sequence范围:10,000

    • 单用户一天重传次数限制:1,000

  • 刷新服务:UDP多播。定期把当前市场状态以多播方式推送给接收端,当接收端在盘中启动时,以此恢复当前全部状态,但逐笔交易等历史信息无法恢复。

2. 网络拓扑

client可通过SDNet/2和HKEX机房托管(co-location at HKEX Host Data Centre (HDC))两种方式访问OMD-C,一般选取SDNet/2方式连接。通过SDNet/2连接一般要在HKEX指定合作机房租用专线连接,路由器开启IGMPv2,并且接口速度达到1Gbps以避免突发性丢包。

SNNet/2: https://www.hkex.com.hk/chi/market/sec_tradinfra/sdnet2_c.htm

HKEX提供了一冷一热两套站点,每套站点又包含两个独立多播源和一个重传服务器,每个实时数据,都会经两个多播源各发送一次,接收端根据序列号去重。重复多播极大减少了偶然丢包的影响,经过实际运行测量,为期1年的运行周期中,访问重传服务以恢复丢包的次数为0.

3. 交易时间段

  

随机收市是一个比较特殊的状况,HKEX可能在不同时间点发送收市指令。

  

4. 消息序列

交易会话(Trading Session)

交易会话消息参考上面的“交易时间段”。

按盘价(Nominal Price)

挂单变化、成交达成、成交取消时,按盘价可能会变化。在第一个按盘价发出之前,按盘价等于昨日收盘价。部分股票整日无交易无挂单,可能没有按盘价。Trade Ticker(52) 事件、Aggregate Order Book Update(52)事件、Nominal Price(40)三者的顺序是: (Nominal -> OrderBook) ->  ... -> (TradeTicker -> Nominal) -> ... -> (Nominal -> OrderBook)。也就是说,如果挂单变化引起按盘价变化,HKEX总是先发送新的按盘价过来,再发送挂单事件。如果是交易达成、交易取消引起的按盘价变化,总是先发送交易事件,再发送新的按盘价。

挂单更新(Aggregate Order Book Update)

OMDC采用增量更新的方式把聚合后的挂单信息推送下来,这里的聚合,是指按照相同价位聚合,比如:价格$100,有3个挂单,数量分别是100股,200股,300股,OMDC会发送一个 600@100的消息,告诉接收端$100价位总共有600股挂单。OMDC提供买卖各10档价位的挂单信息。

归并交易(Trade Ticker) 

在9点之后,某些股票会把前一天收市后发生来不及上报的交易事件发出来,交易类型为Late Trade(4)。除此之外,交易都发生在9:20到16:10之间。其中,9:20是开盘竞价交易,作为当天的开盘价,16:10是收市竞价交易。收到DayClose通知后,不会再有交易消息过来。

统计报文(Statistics)

统计报文记录了某个证券当前的总成交量、成交额和权重股均价,同时可能还有最高最低和最后成交价。但是,最高最低和最后成交价也可能为0。比如,9:00,收到了Late Trade消息,此时会发送Statistics包,成交量非0,但最后成交价却是0。统计报的OHLC四个属性只受两种交易的影响:type=0(普通自动对盘交易)和type=103(竞价交易)。由于开盘价一旦产生不再变化,Statistics包不携带该字段。接收端应该处理Trade Ticker,把第一个type=0/103的成交价作为开盘价。

理论上,每笔交易之后,OMD都会发送一个Statistics报文,实际上不会,所以"第一个Statistics报文的LastPrice=开盘价"这个假设不成立。

收市竞价(Closing Auction Session)

16:00之后,类似于开盘竞价,部分股票可参与收市竞价来确定最终收盘价。参与CAS的股票,在DayClose之后一般还有Statistics报文下发。目前,有500多个股票参与收市竞价。

收市参考价(Reference Price)

16:00,进入收市竞价阶段,所以参与收市竞价(Closing Auction Session)的股票,都会下发收市竞价参考价格,包括参考价和最高最低价。

收盘价(Closing Price)

收市竞价自动对盘完成后,OMDC先发送DayClose消息,然后发送个股票的收市价。每个股票都会发送Closing Price。

指数行情(Index Data)

我们一般只关心HSI、HSCCI、HSCEI等常用指数,从早上9:00到下午16:10,每隔2秒钟更新一次指数行情。在DayClose之后,还会有一个收市指数下发

市场成交额(Market Turnover)

对于主板、创业板、纳斯达克等市场,每2秒钟会发送一个报文,记录了该市场的总成交额。当报文中的货币字段为空时,表示已经把所有成交折算为HKD。业内一般把主板的成交额当作HSI指数的成交额显示(HSI只包括了主板的部分股票,成交额比主板小很多)。在 DayClose之后,还会有一个成交额数据下发

5. 数据量

以5月19日数据为例,一个交易日有1650万个报文,累计1.5GB数据量。

消息类型分布及处理速度

一个交易日的数据,20分钟之内可以处理完。

 成交事件分布

一个交易日,共成交663,896笔, 成交额700亿港币。

50%以上证券一天成交不到100笔,只有不到200个证券日成交超过1000笔,其中腾讯控股(00700)最为活跃,成交16,000笔。

  

从时间分布上看,开盘后半小时和收盘前半小时较为活跃,其中又以收盘前最为活跃,1分钟完成10,863笔交易。

 

港交所OMD-C对接笔记的更多相关文章

  1. 阿里IPO弃港赴美?

    最近,关于阿里巴巴和香港联交所博弈的新闻一直长时间占据了各大科技媒体的头条.9月25日,香港联交所行政总裁在港交所其个人专栏“小加网志”中贴出一则名为<投资者保障杂谈>的博客文章,谈及“香 ...

  2. spring-Ioc(二)学习笔记

    属性注入方式 设值注入:也就是set注入,通过setter方法注入 java Bean private ITestDao dao; public void setDao(ITestDao dao){ ...

  3. 【纯手工】整理豆瓣热点推荐列表-财经&自我管理

    [纯手工]整理豆瓣热点推荐列表-财经&自我管理  简七君 2013-10-27 09:40:06     豆瓣君的首页热点推荐实在难以捉摸,只有正好跳出推荐贴时才能按图索骥找列表.简七和小伙伴 ...

  4. 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  5. app 后端技术

    app 后端技术 一直以来工作的方向是web server,对app server没有什么了解.虽然没有接触过移动app开发,但对app后端技术还是挺有探索欲望的,app应用和web应用在前端的用户习 ...

  6. 坏账,断供,四大国有资产管理公司(AMC):东方、长城、信达和华融

    在高房价大幅度下降以后,银行会认为你在贷款的时候的抵押物,已经不值钱了,比如已经下跌百分之五十了,那么,银行就会给贷款者一个通知——你的抵押物--房子,已经不值钱了,所以说,你必须立刻缴纳这一部分贬值 ...

  7. IFTT-意大利金融交易税

    港交所公告,IFTT目前适用于Prada股份及其4只权证,所有于今年3月1日或之后买入Prada的投资者均要缴付IFTT.就股份而言,IFTT税率为交易价值的0.22%(2014年1月1日起将降至0. ...

  8. 微软 Microsoft

    微软(Microsoft Corporation) (NASDAQ:MSFT,港交所:4338),是一家基于美国的跨国电脑科技公司,是世界PC(Personal Computer,个人计算机)机软件开 ...

  9. Intel 英特尔

    英特尔 英特尔 基本资料   公司名称:英特尔(集成电路公司)    外文名称:Intel Corporation(Integrated Electronics Corporation)    总部地 ...

随机推荐

  1. 大数据测试之初识Hadoop

    大数据测试之初识Hadoop POPTEST老李认为测试开发工程师是面向测试的开发,也就是说,写代码就是为完成测试任务服务的,写自动化测试(性能自动化,功能自动化,安全自动化,接口自动化等等)的cas ...

  2. C语言常见错误笔记

    1. 职业化的程序员起码要具备两点: 1)基本的软件技能 2)不犯低级的错误 2. 修改函数的形参是没用的,函数本身占用的存储单元在堆栈中分配,入口参数的值会在函数入口处拷贝到堆栈中,一旦函数返回,其 ...

  3. C++(浅析枚举类型-enum)

    枚举类型 枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合. 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型.所谓&quo ...

  4. 对比字节流和字符流,回答为什么FileReader不能用来拷贝图片

    FileReader是输入字符流,拷贝文件没问题,但拷贝图片就有问题了. 假设是在windows下,FileReader用的是GBK码表,一个字符最多用2个字节代表.2个字节就是2的16次方,即有65 ...

  5. 浩哥解析MyBatis源码(九)——Type类型模块之类型处理器注册器(TypeHandlerRegistry)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6709157.html 1.回顾 上一篇研究的是类型别名注册器TypeAliasRegist ...

  6. 关于sql、mysql语句的模糊查询分类与详解,包括基本用法和mapper.xml文件里插入写法

    欢迎猿类加qq:2318645572,共同学习进步 实际例子: ssm框架:service业务层->dao层->mappers.xml->junit/test测试 1:service ...

  7. 【转载】rem自适应布局-移动端自适应必备

    原文链接:rem自适应布局-移动端自适应必备 版权所有,转载时请注明出处,违者必究. 由于移动端特殊性,本文讲的是如何使用rem实现自适应,或叫rem响应式布局,通过使用一个脚本就可以rem自适应,不 ...

  8. Vue 事件驱动和依赖追踪

    之前关于 Vue 数据绑定原理的一点分析,最近需要回顾,就顺便发到随笔上了 在之前实现一个自己的Mvvm中,用 setter 来观测model,将界面上所有的 viewModel 绑定到 model ...

  9. 利用WebLog Experet分析日志获取性能需求

    一.下载WebLog Expert日志分析工具 官网下载地址:http://www.weblogexpert.com/download.htm 二.安装 安装很简单,点击“下一步”默认安装即可 三.配 ...

  10. File Transfer

    本博客的代码的思想和图片参考:好大学慕课浙江大学陈越老师.何钦铭老师的<数据结构> 代码的测试工具PTA File Transfer 1 Question 2 Explain First, ...