编辑: 飞鸟 | 2022-11-01 |
060 A11 备案号 JR 中华人民共和国金融行业标准 JR/T 0087―2012 ????? 股指期货业务基金与期货数据交换接口 Data Exchange Protocol for Stock Index Futures between Funds and Futures 2012-
12 - 26发布
2012 -
12 - 26实施 中国证券监督管理委员会??发布 目????次 前言 II 引言 III
1 范围
1 2 规范性引用文件
1 3 术语和定义
1 4 通讯方式
2 5 消息格式
2 6 安全与加密
4 7 数据完整性
4 8 扩展方式
4 9 消息定义
5 10 数据字典
27 11 结算数据文件格式
53 附录A59 附录B61 B.1 FIX会话登录
61 B.2 注销
61 B.3 重发
62 B.4 重发请求
63 B.5 心跳和测试请求
64 附录C66 C.1 新订单场景图
66 C.2 撤单场景图
66 附录D68 附录E69 E.1 FIX会话
69 E.2 连接
69 E.3 FIX会话消息
72 前????言 本标准按照GB/T 1.1-2009给出的规则起草. 本标准由全国金融标准化技术委员会证券分技术委员会提出. 本标准由全国金融标准化技术委员会归口. 本标准起草单位:中国证券投资基金业协会、中国证券业协会、中国期货业协会、中国期货保证金监控中心、深圳证券通信有限公司、博时基金公司、大成基金公司、交银施罗德基金公司、万家基金公司、信诚基金公司、工银瑞信基金公司、嘉实基金公司、国泰君安期货有限公司、上海东证期货有限公司、上海期货信息技术有限公司、胜科金仕达有限公司、恒生电子股份有限公司. 本标准主要起草人:钟蓉萨、郑富仕、张础⒘跆蟆⑿晃暮!⑿怀俊⑼跏樗伞⒊录丫浴⒄派芰⒙辣颉⒊伦谘濉⒊乱菪痢⑼蛳ァ⑿ぞ啊⑽饫旨蟆⒎毒段洹⒛步ǚ濉⒄砰蟆⒏咔⒘昼⒏呦琛⒁π穸⑹⒚骱啤⒌送⒀⒅艹K. 引????言 本标准交易接口部分内容参照了金融信息交换协议(FIX4.2)和证券交易数据交换协议(STEP),结算接口参照了中国期货保证金监控中心公司发布的《期货保证金安全存管系统对交易结算会员和非结算会员报送数据的要求》3.1版. 本标准将随着业务和技术的发展,适时修订. 股指期货业务基金与期货数据交换接口 范围 本标准规定了基金管理公司参与股指期货业务时,基金公司、托管银行与期货公司之间的交易和结算数据交换接口,其中交易接口规定了应用环境、消息格式、安全与加密、数据完整性、扩展方式、消息定义、数据字典等内容,结算接口采用文件格式,约定了客户基本资金数据文件、出入金记录文件、成交明细文件、持仓数据文件、平仓明细文件、持仓明细文件及交割明细文件等7类文件格式. 本标准适用于基金管理公司参与股指期货业务中,期货公司与基金公司、托管银行等相关金融机构间的交易及结算数据交换. 规范性引用文件 下列文件对于本文件的应用是必不可少的.凡是注日期的引用文件,仅所注日期的版本适用于本文件.凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件. GB/T 2659-2000 世界各国和地区名称代码. GB/T 12406-2008 表示货币和资金的代码. GB/T 23696-2009 证券和相关金融工具 交易所和市场识别码. 术语和定义 下列术语和定义适用于本文件. 新订单 new order single 交易客户方新产生的订单. 执行报告execution reports 交易服务方响应交易客户方的消息,主要用于:订单确认、订单状态变化确认(如撤单确认)、发送订单的成交回报、订单拒绝. 交易客户方订单编号client orders identity 由交易客户方赋予的订单编号,在订单有效交易日内必须唯一. 期货公司委托号order identity 期货公司委托号,同一个交易日内必需唯一. 执行编号executiveidentity 期货公司分配的执行编号,在订单有效交易日内必须唯一,主要用于对应具体执行报告消息.在订单状态应答中,取值为
0 . 报单号declarationidentity 交易所分配的报单号. 撮合编号tradeidentity 交易所分配的撮合编号. 客户资金帐号client identity 客户在期货公司开设的资金帐号. 客户交易编码account 交易所为客户分配的交易编码. 通讯方式 交易双方可自定选择通讯方式.FIX会话层消息请参照附录E. 如果交易双方采用了FIX会话层作为通讯方式,对于FIX会话缺口填补处理内容请参照参考附录A,FIX会话连接场景请参照附录B 消息格式 数据类型 数据类型用于定义数据域的取值类型,本接口由几个基本的数据类型(整数、浮点数、单字符、字符串、二进制数据块)和在此基础上扩展的数据类型组成.除 data 数据类型外,其他数据类型均以ASCII码字符串表示. 整数int 无逗号和小数位的序号,可表示正负(ASCII码字符'
-'
,'
0'
至'
9'
组成).符号占据一个字符位置.允许前置字符零(例:
00023 =
23 ). 整数类型的扩展定义: a) 长度Length:以整数表示字节为单位的数据长度,正数. b) 重复数NumInGroup:以整数表示重复组的个数,正数. c) 消息序号SeqNum:以整数表示消息序号,正数. d) 域号TagNum:以整数表示的域号(或称Tag),正数,首位不能为零. e) 月日期号day-of-month:以整数表示的月份中第几天,取值1至31. 浮点数float 含有可选的小数部分,可表示正负(ASCII码字符'
-'
,'
0'
至'
9'
和'
.'
组成).最多15位有 效数字.允许前置字符零(例:
00023 =
23 ).允许小数部分后置字符零(例: 23.0 = 23.0000 =
23 ). 浮点数类型的扩展定义(除非特别声明,浮点数类型均有正负): a) 量Qty:委托数量等,可以有小数部分. b) 价格Price:小数位数可变. c) 价格偏移量PriceOffset:代表价格偏移量的浮点域. d) 金额Amt:典型的价格与数量相乘结果,如成交金额. e) 百分比Percentage:小数表示方法:.05代表5%. number(m,n)(用于结算文件中):m表示所有有效数字的最长位数(不含小数点和正负号),小数位数为n. 单个字符char 指除界定符外所有字母字符和标点字符,区分字母大小写. 字符类型的扩展定义: 布尔Boolean:该域取值于两个字符,('
Y'
=True/Yes,'
N'
=False/No) 字符串String 区分字母大小写. 字符串类型的扩展定义: a) 多元值字符串MultipleValueString:用空格分隔. b) 字符串货币类型Currency::参见GB/T 12406-2008. c) 交易所或市场编号Exchange:字符串,参见GB/T 23696-2009. d) 字符串char(n)(用于结算文件中):表示长度不超过n个字节的字符串. e) 年月日期month-year,格式: YYYYMM或YYYYMMDD或YYYYMMWW, YYYY = 0000-9999, MM = 01-12,DD = 01-31,WW = w1,w2,w3,w4,w5. f) 年月日期date(用于结算文件中),格式: YYYY-MM-DD g) 国际标准时时间戳UTCTimestamp,格式: YYYYMMDD-HH:MM:SS(秒)或YYYYMMDD-HH:MM:SS.sss(毫秒), YYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60 (秒),sss=000-999 (毫秒). h) 国际标准时时间UTCTimeOnly或者time(用于结算文件中),格式: HH:MM:SS或HH:MM:SS.sss, HH = 00-23, MM = 00-59, SS = 00-60 (秒),sss=000-999 (毫秒). i) 国际标准时日期UTCDate,格式: YYYYMMDD,YYYY = 0000-9999, MM = 01-12, DD = 01-31. j) 本地市场日期LocalMktDate,格式: YYYYMMDD,YYYY = 0000-9999, MM = 01-12, DD = 01-31. 数据 无格式和内容限制的原始数据,包含长度域和数据域两个部分,数据域数据可以包含数值0x01,长度域指明数据域的字节数. 域 域的定义 域是基本的数据元素,每个域有其域号、业务含义和确定的取值范围,域号统一分配给不同的域,是域的区分标志,在消息中,通过域号来确定不同的域.域的数据类型决定了其取值类型,域的取值范围可以是一个集合,任何在此集合外的取值被认为是非法取值.数据字典部分详细定义了所有域的业务定义、数据类型和取值范围. 域的使用 在消息中,域的使用有三种方式:必须的,可选的,条件限制选择(即根据其他相关域的存在与否或取值来决定).作为一个完整的消息,必须域和条件限制选择域是需要包含的. 自定义域 如本接口中定义的域不够使用时,市场参与者可以扩展定义新的域,即自定义域. 域汉字编码 域取值若为汉字,应遵守汉字内码扩展规范(GBK). 域界定 消息中所有的域(包含data类型数据域)都有一个分隔符来界定分隔,该分隔符就是不可打印字符ASCII码 SOH (#001,hex:0x01,本文档中以表示).因此,所有消息以 8=CSIFP.x.y.z 字符串开始并以 10=nnn 字符串结束. 除data数据类型域外,其他数据域内容都不应包含域界定符. 语法 任何消息都严格由多个 域号=值 的基本结构组成, 域号=值 基本结构用域界定符分隔.消息组成结构如图1: 图1:消息格式 消息由消息头、消息的正文和消息尾组成.同样,每个组成部分都由一系列 域号=值 组成,并且在遵循以下规则前提下 域号=值 基本结构可以是任意的次序: 开始部分应是消息头,随后是正文,最后是消息尾. 消息头的前3个域的次序不能改变:起始串(Tag =8)、消息体长度(Tag =9)、消息类型(Tag =35). 消息尾的最后一个域应是校验和域(Tag =10). 重复组中,域出现的顺序应遵循该重复组在消息或组件中定义时的次序. 在一条消息中,除重复组域外任何其他域不能重复出现. 重复组 域可以在重复组里多次重复,用以传输数组类的数据.通常域名起始为'
No'
字符的域指明重复的次数,并位于重复组的开始处.本文档中重复组的定义通过缩进的(符号表示,重复组也可嵌套.使用子重复组时不能省略父重复组. 安全与加密 由于消息有可能在公网或不安全的网络上传输交换,因此需要对相关的敏感数据加密处理.具体加密的方法由连接双方达成的协议而定.消息内除某些需要公开识别的域以明文传输外其他任何域都可以加密放置密文数据域(SecureData)内.当然,这些被加密的域也可以同时保留明文的表示方式.当决定使用加密方案时,可以对消息正文内所有的域加密.如果消息的重复组内有部分需要加密的,那么要求对整个重复组加密.本协议还提供的一些域用以支持数字签名、密钥交换和正文加密等安全技术. 正文加密方案有三种: 将安全敏感的域加密后移至SecureData域. 将所有允许加密的域加密后移至SecureData域. 将所有允许加密的域加密后移至SecureData域,同时这些域以明文在消息中重复出现. 数据完整性 数据的完整性通过两个方法保证:消息体长度和校验和的验证. 消息体长度是以BodyLength域来表示,其值是计算出的消息长度域后面的字符数,包含紧靠校验和域标志'
10='
之前的界定符SOH. 校验和是把每个字符的二进制值从消息开头'
8='
中的'
8'
开始相加,一直加到紧靠在校验和域'
10='
之前的域界定符,然后取按256取模得到的结果. 校验和域位于消息的最末一个,校验和的计算是在加密之后进行的.计算校验和C语言代码段可参考附录D. 扩展方式 扩展分类 扩展分为两个部分:消息定义扩展和域定义扩展. 消息定义扩展可以通过新增消息类型来实现,但优先考虑在已有消息中通过域定义或取值扩展来定义新业务.已有消息所代表的业务在扩展时不能改变. 域定义扩展可以通过新增域来实现,但优先考虑通过扩展域值来扩展域的定义.消息中已定义的必须的域不能取消定义,也不能改变成可选域. 扩展规则 自定义消息的消息类型值首字符为'
UF'
.消息的模块顺序在扩展定义时不能改变,但可改变域和重复组的顺序. 消息头前三个域的定义和位置不能改变,但可扩展增加消息头的可选域. 消息尾最后一个域的定义和位置不能改变,但可扩展增加消息尾的可选域. 版本管理 本协议的版本管理权属于中国证券业协会. 版本号格式为X.Y.Z,版本号从1.0.0起始,当新版本完全兼容上一版本时只改变版本号中的Z. 消息定义 消息头 每一个会话或应用消息有一个消息头,该消息头指明消息类型、消息体长度、发送目的地、消息序号、发送起始点和发送时间. 其中有两个域用于消息重发.使用FIX会话时对于会话级的事件而重复发送消息时将可能重复发送标志(PossDupFlag)设置为Y(发送时用原来的消息序号).当重新发送时使用新的消息序号时将可能重新发送标志(PossResend)设置为Y,接受者应按以下方法处理上述消息: 可能重复发送:如果带有该消息序号的消息在以前曾经接受过,则忽略消息,如果未曾收到过,则按正常步骤处理.(支持FIX会话层需要) 可能重新发送:将消息传递给应用层以确定此前是否收到该消息(通过检查订单编号或相关参数). 消息头格式见表1: 表1 消息头(Message Header) Tag 域名 必需 说明
8 BeginString Y 起始串,取值:FIX.4.2(不可加密,消息的第一个域)
9 BodyLength Y 消息体长度(不可加密,消息的第二个域)
35 MsgType Y 消息类型(不可加密,消息的第三个域)
49 SenderCompID Y 发送方代码(不可加密,发送方标识符)
56 TargetCompID Y 接收方代码(不可加密,接收方标识符)
115 OnBehalfOfCompID N 最初发送方标识符(可加密),用于经第三方发送.
128 DeliverToCompID N 最终接收方标识符(可加密),用于经第三方发送.
90 SecureDataLen N 密文数据长度
91 SecureData N 密文数据(紧跟密文数据长度域)
34 MsgSeqNum Y 消息序号(可加密),如果交易双方不采用FIX会话机制,可将该tag置为一个固定的值,例如0.
50 SenderSubID N 发送方子标识符(可加密)
142 SenderLocationID N 发送方方位标识符(可加密)
57 TargetSubID N 接收方子标识符(可加密)
143 TargetLocationID N 接收方方位标识符(可加密)
116 OnBehalfOfSubID N 最初发送方子标识符(可加密)
144 OnBehalfOfLocationID N 最初发送方方位标识符(可加密)
129 DeliverToSubID N 最终接收方子标识符(可加密)
145 DeliverToLocationID N 最终接收方方位标识符(可加密)
43 PossDupFlag N 可能重复标志,重复发送时,作此标记.(可加密)
97 PossResend N 可能重发标志.(可加密)
52 SendingTime Y 发送时间(可加密)
122 OrigSendingTime N 原始发送时间(可加密)
347 MessageEncoding N 消息中Encoded域的字符编码类型(非ASCII码)
369 LastMsgSeqNumProcessed N 最后处理消息序号(可加密)
370 OnBehalfOfSendingTime N 最初发送时间(用UTC表示时间) 消息尾 每一个消息(会话或应用消息)有一个消息尾,并以此终止.消息尾可用于分隔多个消息,包含有3位数的校验和值. 消息尾格式见表2: 表2 消息尾(Message Trailer) Tag 域名 必需 说明
93 SignatureLength N 数字签名长度(不可加密)
89 Signature N 数字签名(不可加密)
10 CheckSum Y 校验和,消息的最末域.(不可加密) 应用消息 客户登录管理类 客户登录管理类消息说明 客户登录类消息主要是支持客户登录、登出和其他客户管理的等消息.交易双方可根据自身业务需要选择是否支持登录、登出等交易. 客户登录请求(MsgType=UF001) 在会话层连接建立以后,客户请求登录期货................