《上证所Level2情接口开发》由会员分享,可在线阅读,更多相关《上证所Level2情接口开发(41页珍藏版)》请在金锄头文库上搜索。
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内容ReferenceData(UA101)Transaction(UA3101)MarketData(UA3102,UA3113)OrderQueue(UA3111)行情展示OrderQueue(UA3111)MarketData(UA3102)Transaction(UA3111)二、Level-2系统接入SSEtoVendorConnection1.VDE(Vendor Da
3、ta Engine)2.VSS(Vendor Supplies System)VDEtoVSSConnectionDailyProcedure三、Level-2FAST数据解码Level-2 FAST的介绍F FIX IX A Adapted for dapted for StStreaming (FAST)reaming (FAST)为解决FIX协议传输市场数据存在冗余度高,带宽需求大的问题,芝加哥商品交易所于2003年11月17日向FPL提交了一个隐示标记(Implicit tags)方案 FPL于2004年12月27日宣布成立市场数据优化工作组(MDOWG,Market Data Opt
4、imization Working Group). 2005年5月开始MDOWG根据一系列POC的结果,开始进行协议标准制定2006年初完成FAST(FIX Adapted for STreaming)V1.02006年12月完成FAST V1.1Level-2 FAST的介绍中国证券市场的特点1.2亿交易帐户较高的换手率,上海证券交易所日交易金额峰值超过3000亿,成交笔数超过4000万市场数据的发展趋势和挑战产品越来越多、挂牌证券数量越来越大更多的价格档位、更多的市场深度更少的延时Level-2 FAST的介绍STEP协议的优缺点基于FIX,已成为事实上的证券数据标准语法简单,定义灵活,易
5、扩展数据相对冗余STEP.1.0.0STEP.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系统测试结果u带宽利用率与带宽利用率与STEP系统对比测试结果比较系统对比测试结果比较 测试结果:测试结果:FAST版本最大值为0.679Mbps;平均值为0.162Mb
6、psSTEP版本最大值为2.23Mbps;平均值为0.668MbpsFAST版本平均值为版本平均值为STEP版本的版本的24.2%FAST关键技术FieldEncoding隐式标签(ImplicitTag)(模版Template)提供消息层面的优化操作符(Operator)消息层面和tag层面的优化TransferEncoding二进制数据流PresenceMap(PMAP)StopBitEncodedEntities Field EncodingImplicit TagImplicittag将FIX的tag=value格式进行分离,变成消息模板和消息内容。消息模板在双方通信之前就确定,实际只
7、需要传输消息内容Field Encoding常用数据类型Data Data type type DescriptDescription ion strinstring g String data type int32int32integer data typeint64int64long data typesequesequencencerepeating groupField EncodingFieldEncodingOperatorEntryDescriptionConstantConstantvalueDefaultDefaultvalueifnotspecifiedCopyCopypr
8、eviousvalueifnotspecifiedIncrementIncrementpreviousvalueifnotspecifiedDeltaDeltavaluefrompreviousvalueTailTailvaluefrompreviousvalueField Encoding OperatorConstantValue用途:主要用于表示模板中的固定数据constantvaluevalueinstreamoutputvalue“VALUE”N/A“VALUE”Field Encoding OperatorDefaultValue用途:主要用于表示默认值defaultvalueva
9、lueinstreamoutputvalue“VALUE”N/A“VALUE”“VALUE”“HELLO”“HELLO”Field Encoding OperatorCopyValue用途:主要用于表达相邻数据相同的情况previousvaluevalueinstreamoutputvalue“VALUE”N/A“VALUE”“VALUE”“HELLO”“HELLO”Field Encoding OperatorIncrementValue用途:主要用于表示前后数据有规律的递增的情况previousvaluevalueinstreamoutputvalue5N/A651010FieldEnco
10、dingField Encoding-Template定义和语法,包括:Field(MessageStructure)FieldEncodingOperatorDataType如何表示:XML语言Field Encoding-TemplateXML格式的模板示例StructureDataTypesFieldOperatorsTransfer Encoding对FIX数据实现二进制Byte/Bit Level优化根据模板生成数据流,并且同步进行压缩的协议本身具有通用性,是一个与具体的应用无关的协议。Transfer Encodingstream:=message*|block*block:=Bl
11、ockSize message+message:=segmentsegment:=PresenceMap TemplateIdentifier?(field|segment)*field:=integer|string|delta|ScaledNumber |ByteVectorinteger:=UnsignedInteger |SignedIntegerstring:=ASCIIString |UnicodeStringdelta:=IntegerDelta |ScaledNumberDelta |ASCIIStringDelta |ByteVectorDeltaTransfer Encod
12、ing-Stop Bit最高比特位0:下一个字节属于同一个实体1:下一个字节不属于同一个实体编码举例:Transfer Encoding-PresenceMap在每一条消息的开头处增加标志串(BYTE数组)每一个Bit标示后面的各个field存在与否,1存在,0不存在不用传送的field不用进行编码,减少了数据量Transfer Encoding-PresenceMapPresence Map Bit in RequiredOperatorMandatoryOptionalNoneNoNodefaultYesYesconstantNoYes*copyYesYesincrementYesYesP
13、resenceMapandNULLNULL一般用来指示这一field没有出现(absent)OperatorPresenceOccupy使用NULLNoneMandatorynoOptionalnoyesconstantMandatorynoOptionalyesDefault,copy,MandatoryyesincrementOptionalyesyesDataTypeExampleuInt32ExampleOptionalNumber如何解析Level-2FAST的消息VSS1Initial2ReadTemplates3ConnectVDE4Logon5ReceiveData6Decod
14、e7业务处理8数据存储和转发FAST的实现过程的实现过程UA3101的解码实例的解码实例PMAP 5F E0 1011111 1110000010111111100000TID占位占位=118 9d 11000 10011101 110000011101310135 不占位不占位UA310110121 占位占位=010011 占位占位=1 8110000001 00000001110115 占位占位=1 8610000110 000001106UA3101的解码实例的解码实例48 占位占位=1 36 30 31 37 36 B6 60176610013 占位占位=1 04 34 4A 83 1
15、00 0110100 1001010 0000011 9250051 925005010014 占位占位=129 83 101001 0000011 525152505.25010015 占位占位=11E 42 A1 11110 1000010 0100001 500001 500000 500.00010016 占位占位=1 00 7D 15 5D A1 1111101 0010101 1011101 0100001 262500001 262500000 2625.0000035=UA3101|10011=1|10115=6|48=601766|10013=9250050|10014=5.250|10015=500.000|10016=2625.000|谢谢