风险度、投机套保标志等。
结算数据接口定义了客户基本资金数据文件、客户出入金记录文件、成交明细文件、持仓数据文件、平仓明细文件、持仓明细文件和交割明细文件等7类文件格式。
五、维护机制
接口由中国证券业协会牵头组织制订和完善。当接口需要变更时,由提出单位向协会反映,协会出面组织接口起草小组成员单位进行讨论,并视讨论结果组织修订。由于接口结算数据接口引用了中国期货保证金监控中心公司发布的《期货保证金安全存管系统对交易结算会员和非结算会员报送数据的要求》,接口将随着《期货保证金安全存管系统对交易结算会员和非结算会员报送数据的要求》的变更同步变更。
本接口试用完善后,中国证券业协会将按照行业标准的报批流程,适时提请全国金融标准化技术委员会证券分技术委员会进行行业标准的审核发布。
2
股指期货业务基金-期货数据交换接口
1 范围
本接口规定了基金公司参与股指期货业务时,基金公司、托管银行与期货公司之间的交易和结算数据交换接口,其中交易接口规定了应用环境、消息格式、安全与加密、数据完整性、扩展方式、消息定义、数据字典等内容,结算接口采用文件格式,约定了客户基本资金数据文件、出入金记录文件、成交明细文件、持仓数据文件、平仓明细文件、持仓明细文件及交割明细文件等7类文件格式。
本接口适用于基金公司参与股指期货业务中,期货公司与基金公司、托管银行等相关金融机构间的交易及结算数据交换。
2 规范性引用文件
下列文件中的条款通过本接口的引用而成为本接口的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本接口,然而,鼓励根据本接口达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本接口。
GB/T 23696-2009 证券和相关金融工具 交易所和市场识别码。 GB/T 2659-2000 世界各国和地区名称代码。 GB/T 12406-2008 货币和资金的代码。 3 术语和定义
下列术语和定义适用于本接口。 3.1 新订单 New Order-Single
交易客户方新产生的订单。 3.2 执行报告 Execution Reports
交易服务方响应交易客户方的消息,主要用于:订单确认、订单状态变化确认(如撤单确认)、发送订单的成交回报、订单拒绝。 3.3 交易客户方订单编号ClOrdID
由交易客户方赋予的订单编号,在订单有效交易日内应保证唯一。 3.4 期货公司委托号 OrderID
期货公司委托号,同一个交易日内必需保证唯一。 3.5 执行编号 ExecID
期货公司分配的执行编号,在订单有效交易日内应保证唯一,主要用于对应具体执行报告消息。在订单状态应答中,取值为“0”。 3.6 报单号 DeclarationID
交易所分配的报单号。 3.7 撮合编号 TradeID
交易所分配的撮合编号。 3.8 客户资金帐号 ClientID
客户在期货公司开设的资金帐号。 3.9 客户交易编码 Account
3
交易所为客户分配的交易编码。
4 通讯方式
交易双方可自定选择通讯方式。 FIX会话层消息请参照附录E。 5 消息格式
5.1 数据类型
数据类型用于定义数据域的取值类型,本接口由几个基本的数据类型(整数、浮点数、单字符、字符串、二进制数据块)和在此基础上扩展的数据类型组成。除“data”数据类型外,其他数据类型均以ASCII码字符串表示。 5.1.1 整数int
无逗号和小数位的序号,可表示正负(ASCII码字符‘-’,‘0’至‘9’组成)。符号占据一个字符位置。允许前置字符零(例:“00023”=“23”)。
整数类型的扩展定义:
长度Length:以整数表示字节为单位的数据长度,正数。 重复数NumInGroup:以整数表示重复组的个数,正数。 消息序号SeqNum:以整数表示消息序号,正数。 域号TagNum:以整数表示的域号(或称Tag),正数,首位不能为零。 月日期号day-of-month:以整数表示的月份中第几天,取值1至31。 5.1.2 浮点数float
含有可选的小数部分,可表示正负(ASCII码字符‘-’,‘0’至‘9’和‘.’组成)。最多15位有 效数字。允许前置字符零(例:“00023”=“23”)。允许小数部分后置字符零(例:“23.0”=“23.0000”=“23”)。
浮点数类型的扩展定义:
除非特别声明,浮点数类型均有正负。 量Qty:委托数量等,可以有小数部分。 价格Price:小数位数可变。
价格偏移量PriceOffset:代表价格偏移量的浮点域。 金额Amt:典型的价格与数量相乘结果,如成交金额。 百分比Percentage:小数表示方法:.05代表5%。 number(m,n)(用于结算文件中):m表示所有有效数字的最长位数(不含小数点和正负号),小数位数为n。
5.1.3 单个字符char
指除界定符外所有字母字符和标点字符,区分字母大小写。 字符类型的扩展定义:
布尔Boolean:该域取值于两个字符,(’Y’=True/Yes,’N’=False/No) 5.1.4 字符串String
区分字母大小写。
字符串类型的扩展定义:
多元值字符串MultipleValueString:用空格分隔。 国家Country:参见GB/T 2659-2000。
字符串货币类型Currency::参见GB/T 12406-2008。
交易所或市场编号Exchange:字符串,参见GB/T 23696-2009。
4
字符串char(n)(用于结算文件中):表示长度不超过n个字节的字符串。 年月日期month-year,格式:
YYYYMM或YYYYMMDD或YYYYMMWW,
YYYY = 0000-9999, MM = 01-12,DD = 01-31,WW = w1,w2,w3,w4,w5。
年月日期date(用于结算文件中),格式: YYYY-MM-DD
国际标准时时间戳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 (毫秒)。
国际标准时时间UTCTimeOnly或者time(用于结算文件中),格式: HH:MM:SS或HH:MM:SS.sss,
HH = 00-23, MM = 00-59, SS = 00-60 (秒),sss=000-999 (毫秒)。 国际标准时日期UTCDate,格式:
YYYYMMDD,YYYY = 0000-9999, MM = 01-12, DD = 01-31。 本地市场日期LocalMktDate,格式:
YYYYMMDD,YYYY = 0000-9999, MM = 01-12, DD = 01-31。
5.1.5 数据data
无格式和内容限制的原始数据,包含长度域和数据域两个部分,数据域数据可以包含数值0x01,长度域指明数据域的字节数。 5.2 域
域是基本的数据元素,每个域有其域号、业务含义和确定的取值范围,域号统一分配给不同的域,是域的区分标志,在消息中,通过域号来确定不同的域。域的数据类型决定了其取值类型,域的取值范围可以是一个集合,任何在此集合外的取值被认为是非法取值。数据字典部分详细定义了所有域的业务定义、数据类型和取值范围。 5.2.1 域的使用
在消息中,域的使用有三种方式:必须的,可选的,条件限制选择(即根据其他相关域的存在与否或取值来决定)。作为一个完整的消息,必须域和条件限制选择域是需要包含的。 5.2.2 自定义域
如本接口中定义的域不够使用时,市场参与者可以扩展定义新的域,即自定义域。 5.2.3 域汉字编码
域取值为汉字时需要使用统一的GBK汉字编码标准。 5.2.4 域界定
消息中所有的域(包含data类型数据域)都有一个分隔符来界定分隔,该分隔符就是不可打印字符ASCII码“SOH”(#001,hex:0x01,本文档中以
除data数据类型域外,其他数据域内容都不应包含域界定符
任何消息都严格由多个“域号=值”的基本结构组成,“域号=值”基本结构用域界定符
图1:消息格式
消息由消息头、消息的正文和消息尾组成。同样,每个组成部分都由一系列“域号=值”组成,并
5
且在遵循以下规则前提下“域号=值”基本结构可以是任意的次序:
a) 开始部分应是消息头,随后是正文,最后是消息尾; b) 消息头的前3个域的次序不能改变:起始串(Tag =8)、消息体长度(Tag =9)、消息类型(Tag
=35);
c) 消息尾的最后一个域应是校验和域(Tag =10);
d) 重复组中,域出现的顺序应遵循该重复组在消息或组件中定义时的次序; e) 在一条消息中,除重复组域外任何其他域不能重复出现。 5.2.6 重复组
域可以在重复组里多次重复,用以传输数组类的数据。通常域名起始为’No’字符的域指明重复的次数,并位于重复组的开始处。本文档中重复组的定义通过缩进的?符号表示,重复组也可嵌套。使用子重复组时不能省略父重复组。
6 安全与加密
由于消息有可能在公网或不安全的网络上传输交换,因此需要对相关的敏感数据加密处理。 具体加密的方法由连接双方达成的协议而定。
消息内除某些需要公开识别的域以明文传输外其他任何域都可以加密放置密文数据域(SecureData)内。当然,这些被加密的域也可以同时保留明文的表示方式。
当决定使用加密方案时,可以对消息正文内所有的域加密。如果消息的重复组内有部分需要加密的,那么要求对整个重复组加密。
本协议还提供的一些域用以支持数字签名、密钥交换和正文加密等安全技术。 正文加密方案有三种:
a) 将安全敏感的域加密后移至SecureData域。 b) 将所有允许加密的域加密后移至SecureData域。
c) 将所有允许加密的域加密后移至SecureData域,同时这些域以明文在消息中重复出现。 7 数据完整性
数据的完整性通过两个方法保证:消息体长度和校验和的验证。
消息体长度是以BodyLength域来表示,其值是计算出的消息长度域后面的字符数,包含紧靠校验和域标志‘10=’之前的界定符SOH。
校验和是把每个字符的二进制值从消息开头‘8=’中的‘8’开始相加,一直加到紧靠在校验和域‘10=’之前的域界定符,然后取按256取模得到的结果。
校验和域位于消息的最末一个,校验和的计算是在加密之后进行的。计算校验和的代码段可参考附录D计算校验和。
8 扩展方式
8.1 扩展分类
扩展分为两个部分:消息定义扩展和域定义扩展。 消息定义扩展可以通过新增消息类型来实现,但尽量在已有消息中通过域定义或取值扩展来定义新业务。已有消息所代表的业务在扩展时不能改变。
域定义扩展可以通过新增域来实现,但尽量通过扩展域值来扩展域的定义。消息中已定义的必须的域不能取消定义,也不能改变成可选域。 8.2 扩展规则
6