1、上证所Level-2行情接口开发,高昀,主要内容,Level-2产品介绍Level-2系统接入Level-2数据解码,一、Level-2 产品介绍,Level-1行情的不足,Level-1行情Show2003.dbf不足之处 内容信息量少,市场深度反映不够Show2003只有29个有效字段实时信息产品单一 Show2003 为仅有的实时行情产品按同一模式显示不同的交易品种显示债券、基金信息时出现“市盈率”字段名 技术5秒钟一次的快照,文件交换方式,发布延时明显信息内容可扩展性差dbf文件是固定字段,只能通过增加数据库字段方式来增加信息内容,从Level-1到Level-2,商业模式:“免费”-
2、收费发布路径:券商-信息商行情深度:五档-十挡,新增委托明细和全部成交信息行情频率:5秒-3秒数据格式:dbf-FIX/STEP-FAST交换方式:文件-文本数据流-二进制数据流行情延时:3秒-28毫秒-20毫秒,Level-2内容,Reference Data (UA101)Transaction(UA3101)Market Data(UA3102,UA3113)Order Queue(UA3111),行情展示,Order Queue(UA3111),Market Data(UA3102),Transaction(UA3111),二、 Level-2系统接入,SSE to Vendor Co
3、nnection,VDE(Vendor Data Engine)VSS(Vendor Supplies System),VDE to VSS Connection,Daily Procedure,三、 Level-2 FAST数据解码,Level-2 FAST的介绍,FIX Adapted for Streaming (FAST)为解决FIX协议传输市场数据存在冗余度高,带宽需求大的问题,芝加哥商品交易所于2003年11月17日向FPL提交了一个隐示标记(Implicit tags)方案 FPL于2004年12月27日宣布成立市场数据优化工作组(MDOWG,Market Data Optimi
4、zation Working Group). 2005年5月开始MDOWG根据一系列POC的结果,开始进行协议标准制定2006年初完成FAST(FIX Adapted for STreaming)V1.02006年12月完成FAST V1.1,Level-2 FAST的介绍,中国证券市场的特点1.2亿交易帐户较高的换手率,上海证券交易所日交易金额峰值超过3000亿,成交笔数超过4000万市场数据的发展趋势和挑战产品越来越多、挂牌证券数量越来越大更多的价格档位、更多的市场深度更少的延时,Level-2 FAST的介绍,STEP协议的优缺点基于FIX ,已成为事实上的证券数据标准语法简单,定义灵活
5、,易扩展数据相对冗余STEP.1.0.09r青岛啤酒48600600448.520 381000 20030703-09:35:28 1182510157 ,STEP 的冗余,平均每条消息长度为467字节,FAST编码后为127字节,平均每条消息长度为160字节, FAST编码后为25字节,Level-2 FAST的介绍,FAST的技术优势高压缩比(70-80%)低资源消耗算法简单,效率高,每秒百万级别消息的处理能力,FAST系统测试结果,带宽利用率与STEP系统对比测试结果比较,测试结果:FAST版本最大值为0.679Mbps;平均值为0.162MbpsSTEP版本最大值为2.23Mbps;
6、平均值为0.668MbpsFAST版本平均值为STEP版本的24.2%,FAST关键技术,Field Encoding隐式标签(Implicit Tag)(模版 Template)提供消息层面的优化操作符(Operator)消息层面和tag层面的优化Transfer Encoding二进制数据流Presence Map(PMAP)Stop Bit Encoded Entities,Field EncodingImplicit Tag,Implicit tag将FIX的tag=value格式进行分离,变成消息模板和消息内容。消息模板在双方通信之前就确定,实际只需要传输消息内容,Field Enc
7、oding,常用数据类型,Field Encoding,Field Encoding Operator,Field Encoding Operator,Constant Value用途:主要用于表示模板中的固定数据,Field Encoding Operator,Default Value用途:主要用于表示默认值,Field Encoding Operator,Copy Value用途:主要用于表达相邻数据相同的情况,Field Encoding Operator,Increment Value 用途:主要用于表示前后数据有规律的递增的情况,Field Encoding,Field Encod
8、ing-Template,定义和语法,包括:Field(Message Structure)Field Encoding OperatorData Type如何表示:XML语言,Field Encoding-Template,XML格式的模板示例,Transfer Encoding,对FIX数据实现二进制Byte/Bit Level优化根据模板生成数据流,并且同步进行压缩的协议本身具有通用性,是一个与具体的应用无关的协议。,Transfer Encoding,stream := message* | block*block := BlockSize message+message := seg
9、mentsegment := PresenceMap TemplateIdentifier? (field | segment)*field := integer | string | delta | ScaledNumber | ByteVectorinteger := UnsignedInteger | SignedIntegerstring := ASCIIString | UnicodeStringdelta := IntegerDelta | ScaledNumberDelta | ASCIIStringDelta | ByteVectorDelta,Transfer Encodin
10、g-Stop Bit,最高比特位0:下一个字节属于同一个实体1:下一个字节不属于同一个实体编码举例:,Transfer Encoding-Presence Map,在每一条消息的开头处增加标志串(BYTE 数组)每一个Bit标示后面的各个field存在与否,1存在,0不存在不用传送的field不用进行编码,减少了数据量,Transfer Encoding-Presence Map,Presence Map and NULL,NULL一般用来指示这一field没有出现(absent),Data Type Example,uInt32 ExampleOptional Number,如何解析Leve
11、l-2 FAST 的消息,VSS 1 Initial2 ReadTemplates3 Connect VDE4 Logon5 Receive Data6 Decode7 业务处理8 数据存储和转发,FAST的实现过程,UA3101的解码实例,PMAP 5F E0 1011111 1110000010111111100000TID占位=118 9d 11000 100111011100000111013101 不占位UA3101 占位=0 占位=1 8110000001 000000011 10115 占位=1 8610000110 000001106,UA3101的解码实例, 占位=1 36
12、30 31 37 36 B6 601766 占位=1 04 34 4A 83 100 0110100 1001010 0000011 9250051 9250050 占位=129 83 101001 0000011525152505.250 占位=11E 42 A1 11110 1000010 0100001 500001 500000 500.000 10016 占位=1 00 7D 15 5D A1 1111101 0010101 1011101 0100001 262500001 262500000 2625.00000 35=UA3101|10011=1|10115=6|48=601766|10013=9250050|10014=5.250|10015=500.000|10016=2625.000|,谢 谢,