国内交易所协议FIX STEP FAST Binary

11 篇文章 4 订阅
10 篇文章 3 订阅

 

FIX - Financial Information eXchange protocol 金融信息交换协议 

是适用于实时证券、金融电子交易的数据通信标准。它是把各类证券金融业务需求流程格式化,使之成为一个可用计 算机语言描述的功能流程,并在每个业务功能接口上统一交换格式。

  2006年10月,FPL发布了FIX5.0。FIX5.0引入TI(the transport independence )传输无关框架。TI将FIX会话层从应用层协议中分离出来。在TI框架下,应用层协议消息可以通过任意合适的传输技术进行传送,在这里,FIX会话层协议是FIX应用层消息的可选传输传输协议之一。两个协议层的版本标注将会有所不同,FIX X.Y为FIX应用层协议版本;FIXT X.Y 为FIX会话层协议版本编号。(会话层定义了数据通信相关的协议,应用层定义了金融活动相关的业务数据结构。)

FIX协议存在2种语法格式。1 “标记=值”语法格式     2 “FIXML”语法格式

https://corp-web.b2bits.com/FAJ_doc/fast-manual/page2.html#sec2_3

http://fixprotocol.org/specifications/

金融信息交换协议V5.0读书笔记系列:

https://blog.csdn.net/songzhang/article/details/1777881

https://blog.csdn.net/Songzhang/article/details/1778118

https://blog.csdn.net/songzhang/article/details/1788770

https://blog.csdn.net/Songzhang/article/details/1799643

https://blog.csdn.net/Songzhang/article/details/1800181

https://blog.csdn.net/Songzhang/article/details/1802834

https://blog.csdn.net/Songzhang/article/details/1805238

https://blog.csdn.net/robinjwong/article/details/4383220

https://blog.csdn.net/Songzhang/article/details/1812824

https://blog.csdn.net/Songzhang/article/details/1814812

https://blog.csdn.net/Songzhang/article/details/1814816

 

 

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压缩后有效降低了带宽使用。

(以下转自http://www.financecomputing.net/wordpress/?p=44

FAST的核心是一个压缩算法,将按照fix规范定义的数据经过压缩以后,可以在很大程度上降低发送、接收双方的带宽。
发送接收双方的处理流程如下:

参照FIX规范定义,FAST要将字段和其对应的值,进行压缩处理并传输。
双方对于需要传输的字段定义为模版(需要传输那些字段),将不同需要传输的字段按照数据类型和传输格式,进行压缩。然后由接收端进行解析。
在定义的模版时,加入了字段操作方式Field operator,即:依赖与先前的值,对于本次需要处理的字段进行优化,比如:copy类型,如果本次传输的字段值和上一次一致,那么接收解析时,直接复制先前的值即可。
目前的字段操作方式有:constant,copy,delta,increase等。(P12. FAST Sepcification Version 1.x.1 2006-12-20).
在传输的过程:对于消息的压缩处理,主要采用pmap+field segment方式,其中:pmap标记了该消息中包含了那些字段,而field segment则是各字段具体的压缩数据。
压缩算法:
首先生成pmap,然后再加入数据。(pmap之后,通常增加了模版ID字段值,再加入其它定义的数据字段值)。
对于数据的压缩算法,采用了Stop bits encoding方式,每个字节的最高位,标志了消息中该字段是否结束(0标识没有结束,1标识结束,对于数据的存储,按照7bit进行划分)。
样例:
假设我们要对于58=HelloWorld进行FAST压缩,假设该消息对应的模版ID为1.
1.生成PMAP,压缩后的消息包含了两个字段,模版ID和58field对应的消息内容(helloworld);
可以用1个byte标志消息中出现的字段,110 0000,最高为置为1,标志结束;则第一个byte为1110 0000 = 0xE0;
2.下一个field为模版ID, ID为1, 000 0001,最高为置为1,标志结束;则第二个byte为1000 00001 = 0x81;
3.下一个字段为58field对应的消息,hello world,对应的16进制表示为:
H=0x48, e=0x65, l=0x6C, l=0x6C, o=0x6F, W=0x57, o=0x6F, r=0x72, l=0x6C, d=0x64.二进制为:
1001000 1100101 1101100 1101100 1101111 1010111 1101111 1110010 1101100 1100100。
此时,需要通过最高为置1标志字段数据的结束;即:
01001000 01100101 01101100 01101100 01101111 01010111 01101111 01110010 01101100 11100100
以上为基本的压缩方式。
参考内容:
http://www.fixprotocol.org/documents/3066/FAST%20Specification%201%20x%201.pdf
http://jettekfix.com/node/36
FIX相关组织,对于FAST协议编写了基本的api接口程序。http://fixprotocol.org/fastdownload。
fix/fast协议介绍和fastapi程序分析系列文章:

http://www.financecomputing.net/wordpress/?p=44

http://www.financecomputing.net/wordpress/?p=61

http://www.financecomputing.net/wordpress/?p=79

http://www.financecomputing.net/wordpress/?p=91

FAST协议简书:https://www.jianshu.com/p/38e4cfc4d0c7

通过OpenFast和falcon解析深交所STEP行情样例数据:  https://www.wenji8.com/p/7b9BlPI.html

 

STEP - Security Trade Exchange Protocol 证券交易数据交换协议

Fix协议是一种国际通用的交易协议,它详细地定义了每种交易的交易处理流程,为了适应国际化,交易所一般都会支持fix协议,但是会做一些本地化,比如在中国的本地化fix,就是step协议。是国家金融行业标准,它是我国根据FIX协议4.4版本的基础上制定出来的,已成为事实上的证券数据标准,语法简单定义灵活易扩展,数据相对冗余。Fix协议的优势在于是key-value对,可以很方便地查看报文内容,以及扩展新字段,而且是国际通用的,适应力强,缺点是速度慢。

http://www.csrc.gov.cn/pub/zjhpublic/zjh/201402/t20140214_243868.htm

然后上交所和深交所合作发布了《轻量级STEP会话协议接口规范》http://www.szse.cn/marketServices/technicalservice/interface/P020180328467247901955.pdf

 

Binary - 深交所自己定的二进制格式的协议

Binary协议顾名思义就是二进制协议,也是通讯的协议是二进制的,里面详细定义了各种报文的字段,编解码规则等。

在深交所的Binary协议中,所有的消息,都是有3部分组成:消息头,消息体和消息尾。消息头有8个字节,是两个整数 MsgType 和 BodyLen。MsgType 标识者这个消息的类型,BodyLen 则表示接下来的消息体有多少个字节,我们根据 BodyLen 将消息体读出来。剩下就是4个字节的 checksum 了。(转自
http://everet.org/szse-connectivity.html)

checksum 的计算非常简单,如下:

如果我们需要给 VDE 发送消息,也是这种消息格式。

剩下的就是按照协议解析各种行情消息了,主要是 MsgType=300111 的集中竞价行情和 MsgType=309011 的指数行情快照等,就没啥难度了。

 

FTD - 期货交易数据交换协议 Futures Trading Data Exchange Protocol

http://www.csrc.gov.cn/pub/zjhpublic/G00306201/201501/t20150109_266373.htm

 

 

证券期货业数据通信协议应用指南 

http://www.csrc.gov.cn/pub/shanghai/xxfw/gfxwj/201503/t20150323_273933.htm

 

 

 

 

 

 

  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值