FIX - Financial Information eXchange protocol 金融信息交换协议
是适用于实时证券、金融电子交易的数据通信标准。它是把各类证券金融业务需求流程格式化,使之成为一个可用计 算机语言描述的功能流程,并在每个业务功能接口上统一交换格式。
STEP - Security Trade Exchange Protocol 证券交易数据交换协议
Fix协议是一种国际通用的交易协议,它详细地定义了每种交易的交易处理流程,为了适应国际化,交易所一般都会支持fix协议,但是会做一些本地化,比如在中国的本地化fix,就是step协议。是国家金融行业标准,它是我国根据FIX协议4.4版本的基础上制定出来的,已成为事实上的证券数据标准,语法简单定义灵活易扩展,数据相对冗余。Fix协议的优势在于是key-value对,可以很方便地查看报文内容,以及扩展新字段,而且是国际通用的,适应力强,缺点是速度慢。
FAST - FIX Adapted For Streaming 面向流的信息交换协议
为了解决FIX协议传输市场数据存在的冗余度高,带宽需求大的问题,芝加哥商品交易所(CME)在2003年向FPL(FIX Protocol Ltd)提交了一个解决方案,FPL在2004年成立了市场数据优化工作组(MDOWG),2005年MDOWG开始根据一些POC(Prove of Concept)的结果进行协议标准制定,并与2006年初完成了FAST V1.0,2006年12月完成了FAST V1.1。
FAST的优点是高压缩比,低资源消耗,算法简单高效,每秒百万级别的消息处理能力。利用FAST压缩后有效降低了带宽使用。
Binary - 深交所自己定的二进制格式的协议
Binary协议顾名思义就是二进制协议,也是通讯的协议是二进制的,里面详细定义了各种报文的字段,编解码规则等。
在深交所的Binary协议中,所有的消息,都是有3部分组成:消息头,消息体和消息尾。消息头有8个字节,是两个整数 MsgType 和 BodyLen。MsgType 标识者这个消息的类型,BodyLen 则表示接下来的消息体有多少个字节,我们根据 BodyLen 将消息体读出来。剩下就是4个字节的 checksum 了。(转自
http://everet.org/szse-connectivity.html)
checksum 的计算非常简单,如下:
如果我们需要给 VDE 发送消息,也是这种消息格式。
剩下的就是按照协议解析各种行情消息了,主要是 MsgType=300111 的集中竞价行情和 MsgType=309011 的指数行情快照等,就没啥难度了。