目录
https://www.hkex.com.hk/Services/Market-Data-Services/Infrastructure/HKEX-Orion-Market-Data-Platform-Securities-Market-OMD-C?sc_lang=zh-HK
技术揭秘 | 港交所 OMD 高性能行情协议赏析 - 知乎 (zhihu.com)
https://www.cnblogs.com/skylerjiang/p/6881512.html
一、OMD行情协议
1.时间
建议用户早上6点连接OMD,下午6.30停止所有行情信息的发布
2.特色
OMD系统是行情发布系统,于2012年上线,在前一版本TCP传输数据的基础上,改为UDP传数据。
在合适的带宽下(约 80Mbps),OMD 系统对于每个市场参与者的消息分发峰值约为 25万笔/秒,这样的吞吐能力可以将市场上所有参与者的逐笔信息实时分发给每一个参与者。
与内地深交所的基于 TCP 的点对点协议(最新的 Level2-2 服务峰值带宽为 15.6Mbps)对比,OMD 系统可处理的信息量多出四倍有余。同时由于采用了 UDP 协议,OMD 协议在打包和解包的时延上也有天然的优势。而对于高频交易者来说,基于 UDP 组播的协议还有一个关键的优势是公平性——它可以在路由器的硬件层面保证同时对所有市场参与者发送消息,而非如采用 TCP 传输的协议一样会受到软件影响从而导致某些用户比另一些用户先收到消息。
其他行情系统,即关注实时行情,也关注历史行情,如果有客户中途接入行情系统,行情系统会从开盘时开始发送增量行情数据,直到当前时间,这对行情系统和客户端都是很大的资源负担。
由于投资者更关注实时行情信息,对于历史行情信息,可以等盘后再通过其他软件查看,为此,OMD系统采用流式行情+快照行情,主要关注实时行情。
OMD有一个单独的频道,每隔十几秒发送一次行情快照,当用户接入后,等待十几秒即可获得一个行情快照,然后以此为开始,通过增量频道实时接收数据。
1)频道划分
OMD将不通业务信息放在不同的UDP组播频道中,例如深度行情频道、交易时段更新频道、基础合约信息频道等。(深交所binary也是使用的不同频道发布行情)
频道间互相独立,互不影响
2)双线传输
为解决UDP丢包问题,采用双线传输同一数据,其中某条线路丢包可以去另一条线路找。
3)重传服务
Retransmission service(RTS)为tcp服务,只支持每个通道最后50000条数据的重传,请求数量限制在1000条以内,每个请求限制为10000条消息。如果要重传大量数据,可以使用refresh service,即定时快照,通过增量和定时快照更新最新数据。
没有数据的时候会发送心跳包
4)刷新服务(定时快照)
重新启动或者严重的数据丢失需要用到刷新服务,它可以获取重建市场最新映像所需的所有消息类型。
有一个定时快照频道,有一个增量频道,客户接入时,先通过快照频道找到最新的消息序号,然后以该序号开始,通过增量频道构建行情数据。
市场状态快照
3.行情数据类型
图 1 OMD行情数据结构
心跳包2s发送一次,心跳包只包含包头,消息数目为0,序号为上一条消息的序号,用来判断是否丢包。仅在没有市场数据的情况下发送。
表 2 心跳包结构
pktSize |
msgCount=0 |
Filter |
seqNum=上一条的seqNum |
sendTime |
4.规则
1)包序号确定
当前包序号 = 前一个包序号+前一个包消息数目
2)判断是否重传
判断两条消息间的序号是否不连续
5.优缺点
1)优点
吞吐量更大、速度更快。
2)缺点
开发人员难度更大;对网络要求高,至少是局域网或城域网专线。
3.港交所OMD与深交所对比
表 3 港交所与深交所行情协议对比
港交所OMD行情协议 | 深交所 | |
连接方式 | UDP | TCP |
宽带峰值 | 80Mbps | 15.6Mbps |
主要关注 | 实时行情 | 实时+历史 |
网络要求 | 局域/城域专线(默认网络很好) | 要求不是很高 |
开发难度 | 高 | 较低 |
二、OMD在上交所的MMDH行情协议
内地市场数据枢纽(MMDH) 是香港交易及结算所有限公司 (香港交易所) 首个中国内地基础建设项目及「香港交易所领航星」市场数据平台 (OMD) 的一部分。 MMDH现设于上海,让内地客户更方便地接收香港交易所市场数据。位于上海的MMDH与在香港的OMD主系统将使用国际以太网专线 (IEPL)连线, 并以通用的讯息格式传送香港交易所的市场及指数数据。
MMDH为有意于中国内地发送香港交易所证券市场数据的客户而设。客户可从MMDH直接经交易所系统取得数据,同时避免高昂的跨境专线费用。
MMDH目前只支持香港交易所证券市场数据及指数资料的发布。 MMDH提供的数据传送专线产品包括OMD标准证券数据 (SS),指数专线 (Index),碎股买卖盘传送专线 (OLO) 及中华通市场信息传送专线 (SCM)。应市场需求,香港交易所稍后或考虑丰富其在MMDH支持的证券市场及衍生产品市场的数据专线产品。
1.TCP连接
与OMD不同的时,MMDH采用TCP传输行情。
客户端可以在MMDH上选择以下连接选项之一:标准配置(带一个实时馈送):在标准配置下,每个客户端需要有一组3条租用线路,其中两条连接到主站点,另一条连接到辅助站点,以接收MMDH市场数据。如果需要,可选的第4条连接可以允许客户端将两条线路连接到MMDH次要站点。应该注意的是,即使有3个连接,在任何时候也只能有一个连接是活动的。不允许多次登录到MMDH。
非标准配置(2个实时馈送):每个客户端需要有一组4条租用线路,2条连接到主站点,2条连接到辅助站点,以接收MMDH市场数据。通过使用两个不同的用户名登录MMDH,客户端可以采用从两个链路同时接收到OMD Primary生产系统的数据传输。OMD将分别操作这两条链路,就好像它们是连接到两个独立系统的两条主链路一样。虽然客户端可以同时从两个登录器接收数据,但不允许使用相同的用户名进行多个登录。向间接连接的实时供应商提供OMD feed的客户端必须采用具有两个实时feed的非标准配置,但须事先获得交易所的批准。
当客户端建立到MMDH站点的租用线路时,将提供客户端网络设置的配置文档。
2.密码登录
3.数据恢复
1)重启
对于客户端短时间中断,重新连接上后,MMDH会根据logon中的InternalSeqNum给客户端发送该序号之后的数据。如果没有该序号之后的数据,MMDH会给客户端一个包含101的回报,告诉其要进行刷新服务,从而进行数据恢复。
2)刷新
适用于延时启动或者重大停机期间,MMDH给客户端发送完整的最新市场状态快照,供客户端获取当前市场状态。
4.数据结构
与OMD行情结构有些差别。
5.心跳包
心跳包由20字节的消息头组成,与OMD类似。