Securities trading exchange protocol
ICS 03.060 CSS A11
中 华 人 民 共 和 国 国 家 标 准
GB/T XXXXX—XXXX
证券交易数据交换协议
Securities trading exchange protocol
(征求意见稿)
XXXX - XX - XX 发布 XXXX - XX - XX 实施
本文件按照GB/T 1.1—2020《标准化工作导则 第1部分:标准化文件的结构和起草规范》的规定起草。
本文件由中国人民银行提出。
本文件由全国金融标准化技术委员会(SAC/TC180)归口。
本文件起草单位:中国证券监督管理委员会科技监管局、中国证券监督管理委员会信息中心、上交所技术有限责任公司、深圳证券交易所、中证信息技术服务有限责任公司、北京证券交易所。
本文件主要起草人:xx、xxx、xx、xx、xxx、xxx、xx、xx、xx、xxx。
1 范围
本文件规定了证券交易所交易系统与市场参与者系统之间进行证券交易所需的数据交换协议
(Securities Trading Exchange Protocol,简称STEP)的应用环境、会话机制、消息格式、安全与加密、数据完整性、扩展方式、消息定义、数据字典等内容。
本文件适用于证券交易所与市场参与者和相关金融机构间的业务数据交换,也可供证券期货行业各机构系统间连接参考使用。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 2659 世界各国和地区名称代码
GB/T 12406 表示货币和资金的代码
GB 18030-2005 信息技术 中文编码字符集
GB/T 23696—2017 证券及相关金融工具 交易所和市场识别码
GB/T 35964-2018 证券及相关金融工具 金融工具分类(CFI编码)
3 术语和定义
下列术语和定义适用于本文件。
3.1
组件 component
消息中具有一定业务相关的数据域集合。
3.2
新订单 new order-single
交易客户xx产生的订单。
3.3
执行报告 execution reports
交易服务方响应交易客户方的消息。
3.4
指定交易 designated trading
将证券账号与某一证券营业部所属的参与者业务单元(如席位号)相联系,从而限定该证券账号的
交易仅在该参与者业务单元下进行的交易方式。
3.5
转托管 designation transfer
资者将其托管在某一券商处的证券转到另一券商处托管的行为,并且投资者只能将证券在其托管的券商处卖出。
3.6
公司行为 corporate action
上市公司的非交易类业务。
注:如新股配售、配股认购、可转债转股、回售等。
3.7
参与者业务单元 participant business unit;PBU
市场参与者行使交易权利,获取交易服务的逻辑通道。
3.8
市场参与者 market participants
参与证券交易的客户方。
注:如交易所会员、证券营业部等。
4 应用环境
证券交易数据交换协议应用环境参考实例参见附录 A。
5 会话机制
FIX 标准会话机制见附录 B。FIX 会话消息格式见附录 C。
6 消息格式
6.1 数据类型
6.1.1 数据类型概述
数据类型用于定义数据域的取值类型,本文件有 5 个基本的数据类型(整数、浮点数、单字符、字符串、数据 Data)和在此基础上扩展的数据类型组成。除“data”数据类型外,其他数据类型均以 ASCII码字符串表示。
6.1.2 整数
无逗号和小数位的序号,可表示正负(由负数表示字符“-”,“0”至“9”组成)。符号占据一个字符位置。允许前置字符零(例:“00023”=“23”)。
整数类型的扩展定义:
——长度 Length:以整数表示字节为单位的数据长度,正数。
——重复数 NumInGroup:以整数表示重复组的个数,正数。
——消息序号 SeqNum:以整数表示消息序号,正数。
——域号 TagNum:以整数表示的域号(或称 Tag),正数,首位不应为零。
——月日期号 DayOfMonth:以整数表示的月份中第几天,取值 1 至 31。
6.1.3 浮点数
含有可选的小数部分,可表示正负(由负数表示字符“-”,“0”至“9”和“.”组成)。最多15位有效数字。允许前置字符零(例:“00023”= “23”)。允许小数部分后置字符零(例:“23.0”= “23.0000”=“23”)。除非特别声明,浮点数类型均有正负。
浮点数类型的扩展定义:
——量 Qty:股份数量、资产数量等,可以有小数部分。
——价格 Price:小数位数可变。
——价格偏移量 PriceOffset:代表价格偏移量的浮点域。
——金额 Amt:典型的价格与数量相乘结果,如成交金额。
——百分比 Percentage:小数表示方法:如“.05”代表 5%。
6.1.4 单个字符
除界定符外所有字母字符和标点字符,区分字母大小写。字符类型的扩展定义:
——布尔 Boolean:该域取值于两个字符,“‘Y’=True/Yes,‘N’=False/No”。
6.1.5 字符串
区分字母大小写。
字符串类型的扩展定义:
——多元值字符串 MultipleValueString:用空格分隔。
——国家与地区代码:使用见 GB/T 2659。
——货币的字母码:使用见 GB/T 12406。
——交易所或市场编号 Exchange:字符串,使用见 GB/T 23696-2017。日期和时间表示法使用 GB/T 7408-2005,即:
——年月日期month-year:格式 YYYYMM 或YYYYMMDD 或YYYYMMWW,YYYY=0000-9999, MM=01-12,DD=01-31,WW=w1,w2,w3,w4,w5。
——国 际 标 准 时 时 间 戳 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:格式 HH:MM:SS 或 HH:MM:SS.sss,HH=00-23,MM=00-59, SS=00-60(秒),sss=000-999(毫秒)。
——国际标准时日期 UTCDateOnly:格式 YYYYMMDD,YYYY=0000-9999,MM=01-12,DD=01-31。
——本地市场日期 LocalMktDate:格式 YYYYMMDD,YYYY=0000-9999,MM=01-12,DD=01-31。
6.1.6 数据
无格式和内容限制的原始数据,包含长度域和数据域两个部分,数据域数据可以包含 16 进制数值
0x01,长度域指明数据域的字节数。
6.2 域
6.2.1 域概述
域是基本的数据元素,每个域有其域号、业务含义和确定的取值范围,域号统一分配给不同的域,是域的区分标志,在消息中,通过域号来确定不同的域。域的数据类型决定了其取值类型,域的取值范
围可以是一个集合,任何在此集合外的取值被认为是非法取值。所有域的业务定义、数据类型和取值范围见第 11 章数据字典。
6.2.2 域的使用
在消息中,域的使用有三种方式:必选的、可选、条件限制选择(即根据其他相关域的存在与否或取值来决定)。作为一个完整的消息,必选域和条件限制选择域是需要包含的。
6.2.3 自定义域
如本文件中定义的域不够使用时,证券交易所或市场参与者可以扩展定义新的域,即自定义域。
6.2.4 域汉字编码
域汉字取值的编码规则见 GB 18030-2005。
6.2.5 域界定
消息中所有的域(包含 data 类型数据域)都有一个分隔符来界定分隔,该分隔符为不可打印字符 GB 18030-2005 编码集中单字节部分 0x01,(注:即 ASCII 码“SOH”,#001,hex:0x01,本文档中以<SOH>表示)。因此,所有消息以“8=STEP.x.yz<SOH>”字符串开始并以“10=nnn<SOH>”字符串结束。
除 data 数据类型域外,其他数据域内容都不应包含域界定符<SOH>。
6.2.6 语法
任何消息都应由多个“域号=值”的基本结构组成,“域号=值”基本结构用域界定符<SOH>分隔。消息组成结构见图 1。
图 1 消息格式
消息由消息头、消息的正文和消息尾组成。同样,每个组成部份都由一系列“域号=值”组成,并且在遵循以下规则的前提下“域号=值”基本结构可以是任意的次序:
a) 开始部分应是消息头,随后是正文,最后是消息尾;
b) 消息头的前 3 个域的次序不能改变:起始串(Tag=8)、消息体长度(Tag=9)、消息类型(Tag=35);
c) 消息尾的最后一个域应是校验和域(Tag=10);
d) 重复组中,域出现的顺序应遵循该重复组在消息或组件中定义时的次序;
e) 在一条消息中,除重复组域外任何其他域不能重复出现。
6.2.7 重复组
域可以在重复组里多次重复,用以传输数组类的数据。通常域名起始为“No”字符的域指明重复的次数,并位于重复组的开始处。本文件中重复组的定义通过缩进的“🡪”符号表示,重复组也可嵌套。使用子重复组时不能省略父重复组。
具体可参考附录 D 重复组实例。
7 安全与加密
由于消息有可能在公网或不安全的网络上传输交换,因此需要对相关的敏感数据加密处理。具体加密的方法由连接双方达成的协议而定。
消息内除某些需要公开识别的域以明文传输外, 其他任何域都可以加密放置密文数据域
(SecureData)内。
当决定使用加密方案时,可以对消息正文内所有的域加密。如果消息的重复组内有部分需要加密的,应要求对整个重复组加密。
本文件提供了域用以支持数字签名、密钥交换和正文加密等安全技术方案。正文加密技术方案有三种:
a) 将安全敏感的域加密后移至 SecureData 域。
b) 将所有允许加密的域加密后移至 SecureData 域。
c) 将所有允许加密的域加密后移至 SecureData 域,同时这些域以明文在消息中重复出现。
8 数据完整性
数据的完整性通过两个方法保证:消息体长度和校验和的验证。
消息体长度是以 BodyLength 域来表示,其值是计算出的消息长度域后面的字符数,包含紧靠校验和域标志‘10=’之前的界定符<SOH>。
校验和是把每个字符的二进制值从消息开头‘8=’中的‘8’开始相加,一直加到紧靠在校验和域 ‘10=’之前的域界定符,然后按 256 取模得到结果。
校验和域位于消息的最末一个,校验和的计算是在加密之后进行的。计算校验和的代码段可参考附附录 E。
9 扩展方式
9.1 扩展分类
扩展分为两个部分:消息定义扩展和域定义扩展。
消息定义扩展可以通过新增消息类型来实现,但尽量在已有消息中通过域定义或取值扩展来定义新业务。已有消息所代表的业务在扩展时不能改变。
域定义扩展可以通过新增域来实现,但尽量通过扩展域值来扩展域的定义。通常情况下,消息中已定义的必选的域尽可能保留,也不要改变成可选域。
为保持行业标准更新的一致性,在本文件基础之上,SH 证券交易所1)、SZ 证券交易所2)等行业相关单位,如有新增应用消息定义、新增域定义、新增域取值定义,将通过行业内统一的平台对外公开。
9.2 扩展规则
自定义消息的消息类型值首字符为‘U’。其他类型的标准消息由本文件根据国际标准的变化统一定义并发布。
当连接双方因业务紧急需求,需要自定义消息、域、域取值,且使用范围仅限于连接双方,为并避免与标准冲突,可临时定义消息类型、域、域取值。通常情况下,应优先通过行业内统一平台协调沟通。
消息类型临时定义原则:SH 证券交易所临时定义消息的消息类型值首两位字符为‘UA’,SZ 证
券交易所临时定义消息的消息类型值首两位字符为‘UB’;GG 股转公司3)临时定义消息的消息类型值首两位字符为‘UC’;BJ 证券交易所临时定义消息的消息类型值首两位字符为‘UD’。
域号 1-10000 由本文件根据国际标准的变化统一定义并发布;域号 10000 以上由连接双方自行约定定义,建议 SH 证券交易所使用 100XX、103XX,SH 证券交易所使用 101XX、102XX,SH 证券交易所使用 104XX、105XX。
消息的模块顺序在扩展定义时不能改变,即保持消息头、消息体和消息尾的顺序。而模块的内部,域和重复组的顺序是可以变化的。
消息头的头三个域的定义和位置不能改变,但可以扩展增加消息头的可选域。消息尾最后一个域的定义和位置不能改变,但可以扩展增加消息尾的可选域。
临时定义由主管部门定期审核,审核通过后形成新版本。
STEP 版本号应在会话层登录消息的 1408 域中说明。
STEP 版本号格式:大版本号.小版本号(X.YZ),版本号从 1.00 起始,当前 STEP 版本号为 1.30。
10 消息定义
10.1 消息头
每一个会话或应用消息均有一个消息头,该消息头指明消息类型、消息体长度、发送目的地、消息序号、发送起始点和发送时间。
其中有两个域用于消息重发, 对于会话级的事件而重复发送消息时将可能重复发送标志
(PossDupFlag)设置为 Y(发送时用原来的消息序号),当重新发送时使用新的消息序号时将可能重新发送标志(PossResend)设置为 Y,接收者应按以下方法处理上述消息:
——可能重复发送:如果带有该消息序号的消息在以前曾经接受过,则忽略消息,如果未曾收到过,则按正常步骤处理。
——可能重新发送:将消息传递给应用层以确定此前是否收到该消息(通过检查订单编号或相关参数)。
消息头格式见表 1。
表 1 消息头
Tag | 域名 | 必选 | 说明 |
8 | BeginString | Y | 起始串,如 FIXT.1.1(不可加密,消息的第一个域) |
9 | BodyLength | Y | 消息体长度(不可加密,消息的第二个域) |
35 | MsgType | Y | 消息类型(不可加密,消息的第三个域) |
91 | SecureData | N | 密文数据(紧跟密文数据长度域) |
34 | MsgSeqNum | Y | 消息序号(可加密) |
50 | SenderSubID | N | 发送方子标识符(可加密) |
142 | SenderLocationID | N | 发送方方位标识符(可加密) |
57 | TargetSubID | N | 接收方子标识符(可加密) |
143 | TargetLocationID | N | 接收方方位标识符(可加密) |
表 1 消息头(续)
Tag | 域名 | 必选 | 说明 | |
116 | OnBehalfOfSubID | N | 最初发送方子标识符(可加密) | |
144 | OnBehalfOfLocationID | N | 最初发送方方位标识符(可加密) | |
145 | DeliverToLocationID | N | 最终接收方方位标识符(可加密) | |
43 | PossDupFlag | N | 可能重复发送标志,重复发送时,作此标记(可加密) | |
97 | PossResend | N | 可能重新发送标志(可加密) | |
52 | SendingTime | Y | 发送时间(可加密) | |
122 | OrigSendingTime | N | 原始发送时间(可加密) | |
347 | MessageEncoding | N | 消息中EncodedText 域的字符编码类型(非ASCII 码) | |
369 | LastMsgSeqNumProcessed | N | 最后处理消息序号(可加密) | |
370 | OnBehalfOfSendingTime | N | 最初发送时间(用UTC 表示时间) | |
627 | NoHops | N | 历史跳跃信息重复组,记录消息经第三方发送的历史,每次经第三方发送为一个跳跃,仅当 OnBehalfOfCompID 使用时有效,主要用于跟踪消息的路径。 | |
🡪 | 628 | HopCompID | N | 取值第三方的SenderCompID |
🡪 | 629 | HopSendingTime | N | 取值用第三方的SendingTime |
🡪 | 630 | HopRefID | N | 取值第三方的MsgSeqNum |
10.2 消息尾
每一个消息(会话或应用消息)有一个消息尾,并以此终止。消息尾可用于分隔多个消息,包含有 3 位数的校验和值。
消息尾格式见表 2。
表 2 消息尾
Tag | 域名 | 必选 | 说明 |
93 | SignatureLength | N | 数字签名长度(不可加密) |
89 | Signature | N | 数字签名(不可加密) |
10 | CheckSum | Y | 校验和,消息的最末域(不可加密) |
10.3 应用消息
10.3.1 应用消息组件
10.3.1.1 应用消息组件概述
大多数应用消息都会用到一系列定义证券品种的数据域:Symbol、SecurityIDSource、SecurityID 等。本文件中定义了关键组件,在应用消息定义中直接用名称引用这些组件。实际的消息定义和使用中,则应该将组件展开成为相应的数据域。
组件可以是重复组的部分,此时组件对应的整组数据域都位于组件所在重复组的级别上,遵从重复组的域顺序规则。
<Instrument>组件定义了证券品种(金融工具)及其相关属性,其中证券代码和证券名称是必选的
域。
<Instrument>组件结构定义见表 3。
表 3 组件<Instrument>
Tag | 域名 | 必选 | 说明 | |
55 | Symbol | *** | 证券名称 | |
48 | SecurityID | *** | 证券代码 | |
22 | Execinstce | N | 证券代码源 | |
454 | NoSecurityAltID | N | 备选证券代码个数 | |
🡪 | 455 | SecurityAltID | N | 备选证券代码 |
🡪 | 456 | SecurityAltIDSou rce | N | 备选证券代码源,有效取值与证券代码源(SecurityIDSource)相同 |
461 | CFICode | N | CFI 的编码应符合 GB/T 35964-2018 的规定 CFI 定义 Code 是 ISO10962 金融工具分类代码国际标准/* 建议改为“CFI 的编码应符合 GB/T 35964-2018 的规定。其它引用编码类国家标准和国际标准 的情况类似。 */描述 | |
207 | SecurityExchange | N | 交易场所代码 | |
762 | SecuritySubType | N | 证券子类别,与 CFICode 配合使用 | |
308 | UnderlyingSecurityID | N | 期权合约的标的证券 | |
231 | ContractMultiplier | N | 债券折合成回购标准券的比例 | |
107 | SecurityDesc | N | 证券描述,如英文简称 | |
注:***表示域的“必选”属性依赖于该组件在消息定义中的“必选”属性。 |
备选证券代码域可在自定义证券代码标准向 ISIN 编码标准过渡期间使用。
示例:假设 SH 证券交易所证券代码正处于现有代码和 ISIN 编码的切换期间,此时发出订单购买“PF 银行”,现有代码 600000,ISIN 代码 CN0006000003,代码切换示例见图 2。
图 2 代码切换示例
证券类别由CFICode证券类别和SecuritySubType子类别共同描述。SecuritySubType由市场自行定义,对CFICode 加以补充, 在业务场景中, 如果CFICode 可以明确分辨证券类别, 则无需自定义 SecuritySubType子类别,相关扩展定义规则参见扩展规则章节。中国证券市场中常见证券品种对应的 CFICode和SecuritySubType描述见图3。
图 3 证券类别描述
10.3.1.3 组件<OrderQtyData>
<OrderQtyData>组件用于表示证券数量,通常在订单中使用。
<OrderQtyData>组件结构定义见表 4。
表 4 组件<OrderQtyData>
Tag | 域名 | 必选 | 说明 |
38 | OrderQty | N | 订单数量 |
152 | CashOrderQty | N | 上证LOF 认购金额 |
10.3.1.4 组件<Parties>
<Parties>组件用于表示参与方信息。
<Parties>组件结构定义见表 5。
表 5 组件<Parties>
Tag | 域名 | 必选 | 说明 | |
453 | NoPartyIDs | N | 参与方个数 | |
🡪 | 448 | PartyID | N | 参与方代码,结合 PartyIDSource 和PartyRole |
🡪 | 447 | PartyIDSource | N | 指示 PartyID 的代码源,取值依赖于 PartyRole |
🡪 | 452 | PartyRole | N | 指定参与方角色 |
🡪 | 802 | NoPartySubIDs | N | 指示重复的参与方子代码个数 | |
🡪 | 🡪 | 523 | PartySubID | 🡪 | 参与方子代码 |
🡪 | 🡪 | 803 | PartySubIDType | 🡪 | 参与方子代码类型 |
参与方信息 | “PartyRole” (452) | “PartyIDSource” (447) | “PartySubIDType” (803) |
投资者证券账户 | 5=投资者编号(Investor ID) | 5=中国投资者编号(Chinese Investor ID) | |
投资者姓名 | 5=合法全名(Full legal name of Firm) | ||
席位或 PBU 代码 | 1=券商(Executing Firm) | C=通用市场参与者标识符 (Generally accepted market participant identifier) | |
席位或 PBU 名称 | 1=券商(Executing Firm) | C=通用市场参与者标识符 (Generally accepted market participant identifier) | 5=合法全名(Full legal name of Firm) |
交易员代码 | 12=交易员(Executing Trader) | D=私有自定义代码 (Proprietary/Custom code) | |
交易员营业部代码 | 12=交易员(Executing Trader) 4001=营业部代码 | D=私有自定义代码 (Proprietary/Custom code) | |
对手方交易员营业部代码 | 37= 对 手 方 交 易 员 ( Contra Trader) 4002=营业部代码 | D=私有自定义代码 (Proprietary/Custom code) | |
交易对手方席位或 PBU 代码 | 17 =对方券商(Contra Firm) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
交易对手方席位或 PBU 名称 | 17=对方券商(Contra Firm) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | 5=合法全名(Full legal name of Firm) |
交易对手方投资者证券账户 | 39= 对方投资者编号( Contra Investor ID) | 5=中国投资者编号(Chinese Investor ID) | |
交易对手方投资者姓名 | 39= 对方投资者编号( Contra Investor ID) | 5=中国投资者编号(Chinese Investor ID) | 5=合法全名(Full legal name of Firm) |
清算公司代码 | 4=清算公司(Clearing Firm) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
对手方清算公司代码 | 18= 对 方 清 算 公 司 ( Contra Clearing Firm) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
转托管业务转入席位或 PBU 代码 | 40=转入券商(Transfer to Firm) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
来自/ 发送至托管机构 (OEF 持仓转移来源方/目标方) | 3=代理人(Agent) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
结算机构代码 | 4=结算机构代码 | F=交割机构 | |
合约账户标识码 | 38=合约账户标识码 | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
结算账号 | 38=结算账号 | C=通用市场参与者标识符 |
市场参与方包括券商、投资者、清算公司、交易员等,通常PartyID为参与方代码,PartyRole用以指明参与方角色。参与方其他信息如名称等,可由PartySubID进一步描述,由PartySubIDType加以区分。中国证券市场中常见参与方信息描述见图4。
参与方信息 | “PartyRole” (452) | “PartyIDSource” (447) | “PartySubIDType” (803) |
( Generally accepted market participant identifier) | |||
申报交易商代码 | 6= Introducing Firm | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
交易商代码 | 7= Entering Firm | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
对手方交易商代码 | 20= Underlying Contra Firm | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
回报交易单元(深) | 27= Buyer/Seller | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
申报方交易员代码 | 36= Entering trader | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
初始交易申报交易单元 | 13= Order Origination Firm | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
要约收购收购人编码 | 4003=要约收购收购人编码 | D=私有自定义代码 (Proprietary/Custom code) | |
对手方交易主体代码 | 4004=对手方交易主体代码 | D=私有自定义代码 (Proprietary/Custom code) | |
申报方交易主体代码 | 4005=申报方交易主体代码 | D=私有自定义代码 (Proprietary/Custom code) | |
投资者中国结算开放式基金账户 | 4010=投资者中国结算开放式基金账户 | D=私有自定义代码 (Proprietary/Custom code) | |
投资者中国结算交易账户 | 4011=投资者中国结算交易账户 | D=私有自定义代码 (Proprietary/Custom code) | |
销售人代码 | 117=销售人代码(sales person) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
券商客户端编码 | 81=券商客户端编码或网点号码 (Broker Client ID) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) | |
投资者帐户子编码 | 500=投资者帐户子编码 | D=私有自定义代码 (Proprietary/Custom code) | |
保证金账户 | 100= 保 证 金 账 户 ( Margin account) | C=通用市场参与者标识符 ( Generally accepted market participant identifier) |
图 4 参与方信息描述示例
10.3.2 订单业务类
10.3.2.1 订单业务类消息
订单业务类消息主要是支持日常实时交易和非交易的消息,其中最典型的是新订单消息,新订单消息由交易客户方发出,用以提交订单。
10.3.2.2 新订单消息(MsgType=D)
新订单消息可以带有执行指令。执行指令(ExecInst)指示订单的执行条件。执行指令中包含数量
条件。
对于在消息头中设置了 PossResend 标志的订单消息,应当使用交易客户方(券商)订单编号
(ClOrdID)核实是否已收到该订单,具体实现时还应检查订单参数(买卖方向、证券代码、数量等)进行核实。如果之前收到该订单,应以执行报告消息回应订单状态。如果之前未收到,则以执行报告消息回应订单确认。
TransactTime 域指示订单发起时间,可结合业务规则来判断收到的订单是否已过期。
新订单消息也适用于使用撮合机制的协议交易、国债场内分销、国债回购等业务,作为交易客户方的指令。
新订单消息支持交易订单和非交易订单。
非交易订单指不通过实时交易而发生变化的行为,如发行、配股、转股、回售、质押、冻结、申购、赎回、行权等。
新订单消息(New Order-Single)的格式见表 6。
表 6 新订单(New Order-Single)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=D | |
1180 | ApplID | N | 应用标识 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
18 | ExecInst | N | 执行指令 |
1080 | RefOrderID | N | 交易所订单编号参考值 |
组件<Parties> | N | 参与方 | |
组件<Instrument> | Y | 证券定义 | |
54 | Side | Y | 买卖方向 |
60 | TransactTime | Y | 订单发起时间 |
组件<OrderQtyData> | Y | 数量 | |
59 | TimeInForce | N | 订单有效时间类型 |
126 | ExpireTime | N | 订单有效时间(订单有效时间类型为 GTD 时必选) |
1125 | OrigTradeDate | N | 初始交易日期 |
541 | MaturityDate | N | 购回交易日期 |
75 | TradeDate | N | 订单申报日期(仅日期) |
8526 | NonTradingOrdType | N | 非交易业务订单类型 |
8540 | ReqID | N | 业务请求类型 |
40 | OrdType | Y | 订单类型 |
522 | OwnerType | Y | 订单所有者类型 |
529 | OrderRestrictions | N | 订单限定 |
423 | PriceType | N | 价格类型 |
44 | Price | N | 价格(限价订单时有效) |
640 | Price2 | N | 报价回购业务购回价格 |
99 | StopPx | N | 止损价格 |
1090 | MaxPriceLevels | N | 最多成交价位数,最大价格等级(沪港通) 0 表示不限制成交价位数,增强现价盘(沪港通) 1 表示竞价现价盘(沪港通) 缺省值为 0 |
110 | MinQty | N | 最小成交数量 缺省值为 0 |
表 6 新订单(New Order-Single)(续)
Tag | 域名 | 必选 | 说明 |
1093 | LotType | N | 订单数量类型 1=零股订单,Odd Lot 2=整手订单,Round Lot 缺省值为 2 |
921 | StartCash | N | 初始交易金额 |
922 | EndCash | N | 购回交易金额 |
152 | CashOrderQty | N | 上证LOF 认购金额 |
914 | AgreementID | N | 约定购回业务合同编号 |
580 | NoDates | N | 期限,单位为天数 |
664 | ConfirmID | N | 约定号 |
15 | Currency | N | 币种 |
8532 | DividendSelect | N | 分红选择方式 (开放式基金分红选择订单时必选) |
8533 | DestSecurity | N | 开放式基金基金转换时转入的产品代码(开放式基金基金转换时必选) |
309 | UnderlyingSecurityID | N | 期权序列代码 |
77 | PositionEffect | N | 开仓/平仓,取值:C=平仓,O=开仓 |
203 | CoveredOrUncovered | N | 备兑标签,衍生品交易填写 0=Covered,表示备兑仓 1=UnCovered,表示普通仓 缺省值为 1 |
747 | ExerciseMethod | N | 期权业务处理类别 |
544 | CashMargin | N | 融资融券信用标识 1=Cash,普通交易 2=Open,融资融券开仓 3=Close,融资融券平仓缺省值为 1 |
8911 | ExpirationDays | N | 期限,单位为天数(SZ 证券交易所) |
8906 | ExpirationType | N | 期限类型 1=固定期限 |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.2.3 执行报告消息(MsgType=8)
执行报告消息可用于:
a) 订单确认;
b) 订单状态变化确认(如撤单确认和修改单确认);
c) 发送订单的成交回报;
d) 订单拒绝。
每个执行报告中都包含两个域:OrdStatus 订单状态;ExecType 执行类型。
OrdStatus 用以报告订单当前状态,如果同时存在多个订单状态,则只报告优先级最高的状态。订单状态优先级见表 7。
表 7 订单状态优先级
优先级 | OrdStatus | 说明 |
11 | 待撤消(6)Pending Cancel | 撤单请求待处理,用于确认收到撤单请求,而非确认撤单已成功 |
10 | 待替换(E)Pending Replace | 修改单请求待处理,用于确认收到修改单请求,而非确认订单修改已 成功 |
9 | 当天完成(3)Done for Day | 订单在当天未成交或未完全成交,闭市后结束该订单 |
8 | 已计算(B)Calculated | 订单在当天结束(成交或当天完成)后,计算并报告佣金或货币结算 细节 |
7 | 已成交(2)Filled | 订单全部成交,没有剩余数量 |
6 | 已终止(7)Stopped | 订单在交易所中被终止,用于价格保护和数量保护 |
5 | 已延缓(9)Suspended | 由于客户请求而暂停执行订单 |
4 | 已撤消(4)Canceled | 订单被撤消 |
4 | 已过期(C)Expired | 订单由于时间条件而到期失效 |
3 | 部分成交(1)Partially Filled | 订单部分成交,有剩余数量 |
2 | 新(0)New | 开放订单(已进入订单簿,等待撮合) |
2 | 已拒绝(8)Rejected | 订单被交易服务方(交易所)拒绝,允许在订单确认之后拒绝订单, 即从状态“新”进入“已拒绝” |
2 | 待处理(A)Pending New | 订单被交易服务方(交易所)接收到但还未处理,仅在状态请求信息 的回应可能出现 |
1 | 已接受(D)Accepted for bidding | 订单被接受,并已被估价,仅用于 BidType 为“Disclosed”的一揽子订单 |
注:订单状态优先级并未全部使用 |
ExecType 域用以标识执行报告的执行类型。执行报告中 ExecType 和 OrdStatus 共同指示了订单状态的改变。执行信息(如已成交或部分成交)与其它状态变化信息(如待撤消、待替换、已撤消、已替换、已接受、当天完成)不能在一个执行报告中同时传递。
执行报告消息注意事项:
——在响应修改单时,ExecType 为待替换,指示修改单请求正在处理。ExecType 为已替换,指示修改单请求已完成。
——在订单处于“待处理”状态并将进入新状态(即待替换)时如果发生了成交,执行报告中应包括原始的订单参数(ClOrdID、OrderQty、Price 等)。执行报告中 CumQty 和 AvgPx 要进行更新。只有在发出 ExecType 为已替换的执行报告后,才可以认为订单被成功替换。
——撤单和修改单在订单有剩余数量时才有效。
⚫如果要求替换的订单数量低于累计执行数量 CumQty 的水平,券商将中止执行该订单。
⚫对已成交订单要求修改价格将会被拒绝。
——OrderQty,CumQty,LeavesQty 和 AvgPx 共同反映出订单的累计状态。例如,订单 B 替换了部分成交的订单 A,订单 B 的 OrderQty,CumQty,LeavesQty 和 AvgPx 域也要加上订单 A 的累计数量。
⚫一般性公式为:订单数量 OrderQty=累计执行数量 CumQty+订单剩余数量 LeavesQty。
⚫ 公式的例外情况:如果 ExecType 和/或 OrdStatus 为已撤消、当天完成、已过期、已计算、已拒绝,则订单不处于活跃状态,LeavesQty 为 0。
——ExecType=F(Trade)用以传递新成交信息。ExecType=D(Restated)表明执行报告是由交易
服务方主动向交易客户方发送的。应给出 ExecRestatementReason。这可用在有时间条件的订单到期、公司行为、电话口头报单、交易服务方修改价格或交易服务方主动撤单等情况。
——ClOrdID 提供给交易客户方(机构、券商、中间商等)进行订单标识,在其内部系统中唯一。域 OrderID 则是由交易服务方(券商、交易所、基金管理公司等)生成的订单标识。在撤单和修改单中,ClOrdID/OrigClOrdID 需要形成链接。
执行报告消息(Execution Report)的格式见表 8。
表 8 执行报告消息(Execution Report)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=8 | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | N | 应用标识 |
37 | OrderID | Y | 订单编号,交易服务方(交易所)的唯一订单标识 |
11 | ClOrdID | N | 交易客户方(券商)订单编号 |
41 | OrigClOrdID | N | 原始交易客户方(券商)订单编号,指示被撤消/修改订单的 ClOrdID |
组件<Parties> | N | 参与方 | |
66 | ListID | N | 如果订单是通过 New Order-List 发送的,指示订单所在清单编号 |
17 | ExecID | Y | 执行编号,交易服务方赋予的唯一执行标识(或称成交编号) |
150 | ExecType | Y | 执行类型 |
39 | OrdStatus | Y | 订单状态 |
103 | OrdRejReason | N | 订单拒绝时需要 |
1328 | RejectText | N | 撤单/拒绝原因说明,执行类型为 8 或 4 时填写 |
10189 | IMCRejectText | N | 国际市场互联对方市场拒绝原因说明 |
378 | ExecRestatementReason | N | ExecType=D(Restated)时需要 |
790 | OrdStatusReqID | N | 订单状态请求编号 |
522 | OwnerType | Y | 订单所有者类型 |
529 | OrderRestrictions | N | 订单限定 |
组件<Instrument> | Y | 证券定义 | |
54 | Side | Y | 买卖方向 |
组件<OrderQtyData> | Y | 数量 | |
59 | TimeInForce | N | 订单有效时间类型 |
126 | ExpireTime | N | 订单有效时间(订单有效时间类型为 GTD 时必选) |
8526 | NonTradingOrdType | N | 非交易业务订单类型 |
40 | OrdType | N | 订单类型 |
423 | PriceType | N | 价格类型 |
44 | Price | N | 价格 |
640 | Price2 | N | 报价回购业务购回价格 |
99 | StopPx | N | 止损价格 |
1090 | MaxPriceLevels | N | 最多成交价位数 |
110 | MinQty | N | 最小成交数量 |
544 | CashMargin | N | 融资融券信用标识 |
1093 | LotType | N | 订单数量类型 |
580 | NoDates | N | 期限 |
表 8 执行报告消息(Execution Report)(续)
Tag | 域名 | 必选 | 说明 | |
15 | Currency | N | 币种 | |
32 | LastQty | N | 上一成交数量(最近一笔成交数量) | |
31 | LastPx | N | 上一成交价格(最近一笔成交价格) | |
151 | LeavesQty | Y | 订单剩余数量 | |
14 | CumQty | Y | 累计执行数量 | |
6 | AvgPx | Y | 成交平均价 | |
60 | TransactTime | N | 执行报告时间 | |
42 | OrigTime | N | 原有订单请求接收的时间 | |
8504 | TotalValueTraded | N | 成交金额 | |
8500 | OrderEntryTime | N | 订单申报时间 | |
8501 | AccountSecPosition | N | 股东持有数量 | |
309 | UnderlyingSecurityID | N | 期权序列代码 | |
77 | PositionEffect | N | 开平仓标识 | |
203 | CoveredOrUncovered | N | 备兑标签 | |
845 | DiscretionPrice | N | 对应申报市价转限价的订单,这里填写转为限价订单的价格 | |
1362 | NoFills | N | 冻结/解冻数量个数 | |
🡪 | 1443 | FillLiquidit yInd | N | 冻结/解冻标志 |
🡪 | 1365 | FillQty | N | 冻结/解冻数量 |
664 | ConfirmID | N | 约定号 | |
8911 | ExpirationDays | N | 期限,单位为天数(深交所) | |
8906 | ExpirationType | N | 期限类型 | |
541 | MaturityDate | N | 购回交易日期 | |
组件<CompDeliverData> | N | 用于回报 ETF 实时申购赎回的股份和资金交付明细 | ||
8902 | NoSecurity | Y | 成份股记录数 | |
🡪 | 309 | Underlying SecurityID | Y | 成份股证券代码 |
🡪 | 305 | Underlying SecurityIDS ource | Y | 证券代码源 |
🡪 | 8903 | DeliveryQty | N | 股份交付数量 |
🡪 | 8904 | SubstCash | N | 现金替代金额 |
组件结束 | ||||
58 | Text | N | 备注 | |
标准消息尾 | Y |
10.3.2.4 订单状态请求消息(MsgType=H)
订单状态请求用于向交易服务方请求某订单的状态,交易服务方通过执行报告消息返回订单状态。订单状态请求消息的格式见表 9。
表 9 订单状态请求消息(Order Status Request)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=H | |
37 | OrderID | N | 订单编号,交易服务方(交易所)的唯一订单标识 |
组件<Parties> | N | 参与方 | |
41 | OrigClOrdID | Y | 原始交易客户方(券商)订单编号,指示被修改订单的ClOrdID |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
790 | OrdStatusReqID | N | 订单状态请求编号,订单状态请求唯一标识,在返回的执行报告消 息中需包含此编号 |
组件<Instrument> | Y | 证券定义 | |
54 | Side | Y | 买卖方向 |
标准消息尾 | Y |
10.3.2.5 撤单消息(MsgType=F)
撤单消息用以撤消订单的全部订单剩余数量。如果只进行部分撤单,则应使用修改单消息。撤单消息仅在订单能成功撤回,没有产生执行的情况下被接受。
撤单消息也被赋予一个 ClOrdID,可视作另外一个订单。如果被拒绝,撤单拒绝消息的 ClOrdID 放置撤单消息的 ClOrdID,而原始订单的 ClOrdID 则放入 OrigClOrdID 域。ClOrdID 要保证唯一。
撤单消息需要立即回应。除非撤单能立刻被处理或拒绝,否则应先发送一个待撤消的执行报告。撤单消息(Order Cancel Request)的格式见表 10。
表 10 撤单消息(Order Cancel Request)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=F | |
1180 | ApplID | N | 原始订单应用标识 |
41 | OrigClOrdID | Y | 原始交易客户方(券商)订单编号,指示被撤消订单的ClOrdID |
37 | OrderID | N | 订单编号,交易服务方(交易所)的唯一订单标识 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
组件<Parties> | N | 参与方 | |
组件<Instrument> | Y | 证券定义 |
表 10 撤单消息(Order Cancel Request)(续)
Tag | 域名 | 必选 | 说明 |
54 | Side | Y | 买卖方向 |
60 | TransactTime | Y | 订单发起时间 |
组件<OrderQtyData> | Y | 数量 | |
8526 | NonTradingOrdType | N | 非交易业务订单类型 |
40 | OrdType | Y | 订单类型 |
522 | OwnerType | Y | 订单所有者类型 |
309 | UnderlyingSecurityID | N | 期权序列代码 |
77 | PositionEffect | N | 开仓/平仓,取值: C=平仓 O=开仓 |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.2.6 撤单拒绝消息(MsgType=9)
本消息用于撤单、修改相关消息的拒绝,包括交易业务类撤单消息、修改单消息、非交易业务类撤单消息、注册指令撤单消息等。
交易服务方接收到撤单或修改单后发现无法执行(只有订单存在剩余数量时才允许更改价格或减少数量,已成交订单不可更改等),将发送撤单拒绝消息。
拒绝修改单或撤单时,撤单拒绝消息应用 ClOrdID 指示修改单或撤单的 ClOrdID,用 OrigClOrdID
指示之前最后接受的订单(除非拒绝原因是“未知订单”)。撤单拒绝消息(Order Cancel Reject)的格式见表 11。
表 11 撤单拒绝消息(Order Cancel Reject)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=9 | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | N | 原始订单应用标识 |
37 | OrderID | Y | 订单编号,交易服务方(交易所)的唯一订单标识 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
41 | OrigClOrdID | Y | 原始交易客户方(券商)订单编号,指示被撤消/修改订单的 ClOrdID |
39 | OrdStatus | Y | 订单状态 |
522 | OwnerType | Y | 订单所有者类型 |
组件<Instrument> | Y | ||
48 | SecurityID | Y | 证券代码 |
22 | SecurityIDSource | Y | 证券代码源 |
组件结束 | |||
组件<Parties> | N | 参与方 | |
60 | TransactTime | N | 订单发起时间 |
434 | CxlRejResponseTo | Y | 撤单拒绝回应类型 |
表 11 撤单拒绝消息(Order Cancel Reject)(续)
Tag | 域名 | 必选 | 说明 |
102 | CxlRejReason | N | 撤单拒绝原因 |
1328 | RejectText | N | 拒绝原因说明 |
58 | Text | N | Free Text |
标准消息尾 | Y |
10.3.3 报价业务类
10.3.3.1 报价业务类消息定义
报价消息主要用于支持做市商进行做市的业务,如在期权业务中,做市商就期权合约不断报出买卖价,并在相应价位上接受投资者的买卖要求。
10.3.3.2 报价消息(MsgType=S)
报价消息支持四种报价模式:双边报价、买报价、卖报价、撤销报价。通过对 BidSize、OfferSize
字段的取值组合实现这四种报价模式。见表 12。
表 12 报价方式
报价方式 | BidSize | OfferSize |
双边报价 | >0 | >0 |
买报价 | >0 | =0 |
卖报价 | =0 | >0 |
撤销报价 | =0 | =0 |
对于期权业务的报价消息,如果 BidSize>0,则应填写 BidPositionEffect,如果 OfferSize>0,则应填写 OfferPositionEffect。
报价消息(Quote)的格式见表 13。
表 13 报价消息(Quote)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=S | |
1180 | ApplID | N | 应用标识 |
1166 | QuoteMsgID | Y | 客户报价消息编号 |
117 | QuoteID | Y | 报价标识 |
522 | OwnerType | Y | 报价所有者类型 |
60 | TransactTime | N | 报价发起时间 |
131 | QuoteReqID | N | 预留字段 当报价是对报价请求的响应时,填写报价请求的ID |
537 | QuoteType | N | 报价类型 1=Tradeable,表示可交易的报价 |
组件<Instrument> | Y | ||
48 | SecurityID | Y | 证券代码 |
表 13 报价消息(Quote)(续)
Tag | 域名 | 必选 | 说明 | |
22 | SecurityIDSource | Y | 证券代码源 | |
组件结束 | ||||
组件<Parties> | Y | |||
453 | NoPartyIDs | Y | 参与人代码个数 | |
🡪 | 448 | PartyID | Y | 参与人代码 |
447 | PartyIDSource | Y | 参与人代码源 | |
452 | PartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
132 | BidPx | N | 买报价 BidSize>0 时必选填写 | |
133 | OfferPx | N | 卖报价 OfferSize>0 时必选填写 | |
134 | BidSize | N | 买数量 | |
135 | OfferSize | N | 卖数量 | |
8909 | BidPositionEffect | N | 买开平仓标志,衍生品报价填写 O=开仓 C=平仓 | |
8910 | OfferPositionEffect | N | 卖开平仓标志,衍生品报价填写 O=开仓 C=平仓 | |
58 | Text | N | 备注 |
10.3.3.3 报价状态报消息(MsgType=AI)
报价状态回报消息是报价消息的确认,其中 QuoteStatus(报价状态)域说明报价是否被接受或者被拒绝。
报价状态回报(Quote Status Report)的格式见表 14。
表 14 报价状态报消息(Quote Status Report)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=AI | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | N | 应用标识 |
1166 | QuoteMsgID | Y | 客户报价消息编号 |
522 | OwnerType | Y | 报价所有者类型 |
131 | QuoteReqID | N | 当报价是对报价请求的响应时,填写报价请求的 ID |
537 | QuoteType | N | 报价类型 1=Tradeable,表示可交易的报价 |
表 14 报价状态报消息(Quote Status Report)(续)
Tag | 域名 | 必选 | 说明 | |
297 | QuoteStatus | N | 报价状态 0=Accepted,接受 5=Rejected,拒绝 | |
300 | QuoteRejectReason | N | 报价拒绝原因代码 | |
1328 | RejectText | N | 报价拒绝原因说明 | |
60 | TransactTime | N | 报价接收时间 | |
组件<Instrument> | Y | |||
48 | SecurityID | Y | 证券代码 | |
22 | SecurityIDSource | Y | 证券代码源 | |
组件结束 | ||||
组件<Parties> | Y | |||
453 | NoPartyIDs | Y | 参与人代码个数 | |
🡪 | 448 | PartyID | Y | 参与人代码 |
447 | PartyIDSource | Y | 参与人代码源 | |
452 | PartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
132 | BidPx | N | 买报价 | |
133 | OfferPx | N | 卖报价 | |
134 | BidSize | N | 买数量 | |
135 | OfferSize | N | 卖数量 | |
8909 | BidPositionEffect | N | 买开平仓标志 O=开仓 C=平仓 | |
8910 | OfferPositionEffect | N | 卖开平仓标志 O=开仓 C=平仓 | |
58 | Text | N | 备注 |
10.3.4 询价业务类
10.3.4.1 询价业务类消息
投资者根据自身交易的需要,可以向交易服务方提交询价指令,要求做市商对某一产品进行报价,交易服务方向市场揭示做市商的询价响应报价。
10.3.4.2 询价消息(MsgType=R)
询价消息(Quote Request)的格式见表 15。
表 15 询价消息(Quote Request)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=R |
表 15 询价消息(Quote Request)(续)
Tag | 域名 | 必选 | 说明 | |
1180 | ApplID | N | 应用标识 042=期权集中竞价交易询价 | |
131 | QuoteReqID | Y | 报价请求 ID | |
522 | OwnerType | Y | 申报所有者类型 | |
60 | TransactTime | N | 申报发起时间 | |
组件<Instrument> | Y | |||
48 | SecurityID | Y | 证券代码 | |
22 | SecurityIDSource | Y | 证券代码源 | |
组件结束 | ||||
组件<RootParties> | Y | |||
1116 | NoRootPartyIDs | Y | 参与人代码个数 | |
🡪 | 1117 | RootPartyID | Y | 参与人代码 |
1118 | RootPartyIDSourc e | Y | 参与人代码源 | |
1119 | RootPartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
58 | Text | N | 备注 |
10.3.4.3 询价接受消息(MsgType=R)
询价接受消息报文格式与询价消息报文格式一样。
10.3.4.4 询价拒绝消息(MsgType=AG)
询价消息未通过交易服务方风控检查时,交易服务方将发送询价拒绝消息,QuoteRequestRejectReason将说明具体的拒绝原因。
询价拒绝消息(Quote Request Reject)的格式见表 16。
表 16 询价拒绝消息(Quote Request Reject)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=AG | |
1180 | ApplID | N | 应用标识 |
131 | QuoteReqID | Y | 报价请求 ID |
522 | OwnerType | Y | 申报所有者类型 |
658 | QuoteRequestRejectReason | Y | 拒绝原因 |
60 | TransactTime | N | 回报时间 |
组件<Instrument> | Y | ||
48 | SecurityID | Y | 证券代码 |
22 | SecurityIDSource | Y | 证券代码源 |
表 16 询价拒绝消息(Quote Request Reject)
Tag | 域名 | 必选 | 说明 | |
组件结束 | ||||
组件<RootParties> | Y | |||
1116 | NoRootPartyIDs | Y | 参与人代码个数 | |
🡪 | 1117 | RootPartyID | Y | 参与人代码 |
1118 | RootPartyIDSourc e | Y | 参与人代码源 | |
1119 | RootPartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
58 | Text | N | 备注 |
10.3.5 意向申报业务类
10.3.5.1 意向申报业务类消息
交易客户方通过意向申报消息,向交易对手方揭示交易意愿。意向申报消息主要用于协议交易业务。
10.3.5.2 意向申报消息(MsgType=6)
可以使用意向申报消息申报意向申报或意向申报撤单,使用 IOITransType 域区分意向申报或意向申报撤单,若为意向申报撤单,则 IOIRefID 为原意向申报的 IOIID。
意向申报消息(Indication of Interest)的格式见表 17。
表 17 意向申报消息(Indication of Interest)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=6 | |
1180 | ApplID | N | 应用标识 050=协议交易意向申报 |
23 | IOIID | Y | 客户意向申报编号 同一交易单元一个交易日内申报的所有意向申报IOIID 不能重复 |
28 | IOITransType | Y | 意向申报类型 N=意向申报 C=意向申报撤单 |
26 | IOIRefID | N | 原意向申报IOIID,对于意向申报该字段取值为空,若为撤单则为被撤原意向申报IOIID |
54 | Side | Y | 买卖方向 1=买 2=卖 |
522 | OwnerType | Y | 意向申报所有者类型 |
60 | TransactTime | N | 意向申报发起时间 |
组件<Instrument> | Y | ||
48 | SecurityID | Y | 证券代码 |
表 17 意向申报消息(Indication of Interest)
Tag | 域名 | 必选 | 说明 | |
22 | SecurityIDSource | Y | 证券代码源 | |
组件结束 | ||||
组件<Parties> | Y | |||
453 | NoPartyIDs | Y | 参与人代码个数 | |
🡪 | 448 | PartyID | Y | 参与人代码 |
447 | PartyIDSource | Y | 参与人代码源 | |
452 | PartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
27 | IOIQty | N | 数量 | |
44 | Price | N | 价格 | |
10184 | Contactor | N | 联系人 | |
10185 | ContactInfo | N | 联系信息 | |
58 | Text | N | 备注 |
10.3.5.3 意向申报响应消息(MsgType=AJ)
意向申报响应消息可用于:
a) 意向申报确认;
b) 意向申报撤单确认;
c) 意向申报拒绝;
d) 意向申报撤单拒绝。
意向申报响应消息(Quote Response)的格式见表 18。
表 18 意向申报响应消息(Quote Response)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=AJ | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | N | 应用标识 |
693 | QuoteRespID | Y | 交易所意向申报响应编号 |
694 | QuoteRespType | Y | 响应类型 2=意向申报响应 |
150 | ExecType | Y | 执行类型 0=New,意向申报成功 4=Canceled,意向申报撤单成功 8=Reject,意向申报拒绝 |
102 | CxlRejReason | N | 意向申报撤单错误信息,供柜台系统读取错误信息,进行错误处理。 |
103 | OrdRejReason | N | 意向申报错误信息,供柜台系统读取错误信息,进行错误处理。 |
300 | QuoteRejectReason | N | 拒绝原因代码,响应类型为 8 时填写 |
1328 | RejectText | N | 拒绝原因说明,响应类型为 8 时填写 |
23 | IOIID | Y | 客户意向申报编号 |
表 18 意向申报响应消息(Quote Response)
Tag | 域名 | 必选 | 说明 | |
28 | IOITransType | Y | 意向申报类型 | |
26 | IOIRefID | N | 原意向申报IOIID,对于意向申报该字段取值为空,若为撤单则为被 撤原意向申报IOIID | |
54 | Side | Y | 买卖方向 | |
522 | OwnerType | Y | 意向申报所有者类型 | |
60 | TransactTime | N | 意向申报接收时间 | |
组件<Instrument> | Y | |||
48 | SecurityID | Y | 证券代码 | |
22 | SecurityIDSource | Y | 证券代码源 | |
组件结束 | ||||
组件<Parties> | Y | |||
453 | NoPartyIDs | Y | 参与人代码个数 | |
🡪 | 448 | PartyID | Y | 参与人代码 |
447 | PartyIDSource | Y | 参与人代码源 | |
452 | PartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
27 | IOIQty | Y | 数量 | |
44 | Price | N | 价格 | |
10184 | Contactor | N | 联系人 | |
10185 | ContactInfo | N | 联系信息 | |
58 | Text | N | 备注 |
10.3.6 成交申报业务类
10.3.6.1 成交申报业务类消息
交易客户方达成交易后向交易服务方申报成交申报消息,经过交易服务方确认后不得更改或者撤销。主要用于 SZ 证券交易所协议交易业务、股票质押式回购、约定购回、报价回购等创新业务。SH 证券 交易所相关业务通过新订单、执行报告消息实现。
10.3.6.2 成交申报消息(MsgType=AE)
成交申报消息有两种申报模式:协议配对和成交报告。协议配对模式是指交易客户买卖双方各申报一笔成交申报,交易服务方对这两笔成交申报进行配对。成交报告模式是指由交易客户卖方申报一笔包含交易双方完整信息的成交报告,交易服务方进行确认即可。
成交申报消息(Trade Capture Report)的格式见表 19。
表 19 成交申报消息(Trade Capture Report)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=AE | |
1180 | ApplID | N | 应用标识 |
表 19 成交申报消息(Trade Capture Report)(续)
Tag | 域名 | 必选 | 说明 |
571 | TradeReportID | Y | 客户成交申报编号,同一交易单元一个交易日内申报的成交申报的 客户成交申报编号不得重复 |
522 | OwnerType | Y | 成交申报所有者类型 |
828 | TrdType | N | 成交申报业务类别 1001=股票质押式回购初始交易 1002=股票质押式回购提前购回 1003=股票质押式回购到期购回 1004=股票质押式回购延期购回 1005=股票质押式回购终止购回 1006=股票质押式回购补充质押 1007=股票质押式回购部分解除质押 1008=股票质押式回购违约处置 1009=股票质押式回购部分购回 1011=约定购回初始交易 1012=约定购回提前购回 1013=约定购回到期购回 1014=约定购回延期购回 1021=质押式报价回购初始交易 1022=质押式报价回购提前购回 1031=债券质押式协议回购初始交易 1032=债券质押式协议回购购回交易 |
829 | TrdSubType | N | 成交申报子业务类别,预留 |
856 | TradeReportType | Y | 成交申报类型 0=Submit,提交成交申报 |
487 | TradeReportTransType | Y | 成交申报事务类别 0=New,新申报 1=Cancel,撤销申报 |
1123 | TradeHandlingInstr | N | 成交申报模式 1=Two-Party Report,成交报告 2=One-Party report for matching,协议配对 |
572 | TradeReportRefID | N | 原客户成交申报编号 撤销成交申报时使用 |
60 | TransactTime | N | 成交申报发起时间 |
组件<Instrument> | Y | ||
48 | SecurityID | Y | 证券代码 |
22 | SecurityIDSource | Y | 证券代码源 |
组件结束 | |||
组件<RootParties> | Y |
表 19 成交申报消息(Trade Capture Report)(续)
Tag | 域名 | 必选 | 说明 | ||
1116 | NoRootPartyIDs | Y | 参与人代码个数 | ||
🡪 | 1117 | RootPartyID | Y | 参与人代码 | |
1118 | RootPartyIDSourc e | Y | 参与人代码源 | ||
1119 | RootPartyRole | Y | 参与人代码角色 | ||
组件结束 | |||||
组件<TrdCapRptSideGrp> | Y | ||||
552 | NoSides | Y | side 个数 | ||
🡪 | 54 | Side | Y | 买卖方向 | |
组件<Parties> | Y | ||||
453 | NoPartyIDs | Y | 参与人代码个数 | ||
🡪 | 448 | PartyID | Y | 参与人代码 | |
447 | PartyIDSo urce | Y | 参与人代码源 | ||
452 | PartyRole | Y | 参与人代码角色 | ||
组件结束 | |||||
组件结束 | |||||
31 | LastPx | Y | 成交价格 | ||
32 | LastQty | Y | 成交数量 | ||
152 | CashOrderQty | N | 金额 | ||
664 | ConfirmID | N | 约定号 | ||
8911 | ExpirationDays | N | 期限,单位为天数 | ||
8906 | ExpirationType | N | 期限类型,转融通证券出借填写 1=固定期限 | ||
8908 | ShareProperty | N | 股份性质 | ||
541 | MaturityDate | N | 购回交易日 | ||
8907 | ExpirationExecInst | N | 到期续做方式,质押式报价回购填写 1=到期自动续做 2=到期手动续做 | ||
423 | PriceType | N | 价格类型 1=Percentage,表示收益率 3=Fixed amount,表示绝对价格,对于资产管理计划份额转让业务指按“人民币现金”报价 | ||
10183 | PledgeeType | N | 质权人类型 | ||
1126 | OrigTradeID | N | 初始交易交易所成交申报编号 | ||
10182 | OrigTradeReportID | N | 初始交易客户成交申报编号 | ||
1125 | OrigTradeDate | N | 初始交易日期 | ||
544 | CashMargin | N | 融资融券信用标识 |
表 19 成交申报消息(Trade Capture Report)(续)
Tag | 域名 | 必选 | 说明 |
1=Cash,普通交易 2=Open,融资融券开仓 3=Close,融资融券平仓缺省值为 1 | |||
880 | TrdMatchID | N | 交易编号,跨交易日唯一 |
58 | Text | N | 备注 |
10.3.6.3 成交申报响应消息(MsgType=AR)
成交申报响应消息是成交申报消息的确认,包括被接受或者被拒绝。
每个成交申报响应消息包括两个域:TrdAckStatus,成交申报响应状态;TrdRptStatus,成交申报状态。
TrdAckStatus 域用以报告当前成交申报是被交易服务方接受还是被拒绝的状态,TrdRptStatus 域用以报告当前成交申报的被交易服务方处理的状态,具体包括接受、拒绝、已撤销、尚未匹配、已经匹配。
成交申报响应消息(Trade Capture Report Ack)的格式见表 20。
表 20 成交申报响应消息(Trade Capture Report Ack)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=AR | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | Y | 应用标识 |
1003 | TradeID | Y | 交易所为成交申报分配的唯一 ID |
571 | TradeReportID | Y | 客户成交申报编号,同一交易单元一个交易日内申报的成交申报的 客户成交申报编号不得重复 |
522 | OwnerType | Y | 成交申报所有者类型 |
828 | TrdType | N | 成交申报业务类别 |
829 | TrdSubType | N | 成交申报子业务类别 |
856 | TradeReportType | Y | 成交申报类型 |
487 | TradeReportTransType | Y | 成交申报事务类别 |
1123 | TradeHandlingInstr | N | 成交申报模式 |
572 | TradeReportRefID | N | 原客户成交申报编号 撤销成交申报时使用 |
8912 | TrdAckStatus | Y | 成交申报响应状态 0=Accepted,接受 1=Rejected,拒绝 |
表 20 成交申报响应消息(Trade Capture Report Ack)(续)
Tag | 域名 | 必选 | 说明 | ||
939 | TrdRptStatus | N | 成交申报状态 0=Accepted,接受 1=Rejected,拒绝 2=Cancelled,已撤销 100=Unmatched,尚未匹配 101=Matched,已匹配 | ||
751 | TradeReportRejectReason | N | 成交申报被拒绝原因代码 | ||
1328 | RejectText | N | 成交申报被拒绝原因说明 | ||
60 | TransactTime | N | 成交申报接收时间 | ||
组件<Instrument> | Y | ||||
48 | SecurityID | Y | 证券代码 | ||
22 | SecurityIDSource | Y | 证券代码源 | ||
组件结束 | |||||
组件<RootParties> | Y | ||||
1116 | NoRootPartyIDs | Y | 参与人代码个数 | ||
🡪 | 1117 | RootPartyID | Y | 参与人代码 | |
1118 | RootPartyIDSourc e | Y | 参与人代码源 | ||
1119 | RootPartyRole | Y | 参与人代码角色 | ||
组件结束 | |||||
组件<TrdCapRptSideGrp> | Y | ||||
552 | NoSides | Y | side 个数 | ||
🡪 | 54 | Side | Y | 买卖方向 | |
组件<Parties> | Y | ||||
453 | NoPartyIDs | Y | 参与人代码个数 | ||
🡪 | 448 | PartyID | Y | 参与人代码 | |
447 | PartyIDSo urce | Y | 参与人代码源 | ||
452 | PartyRole | Y | 参与人代码角色 | ||
组件结束 | |||||
组件结束 | |||||
17 | ExecID | Y | 执行编号 | ||
31 | LastPx | Y | 成交价格 | ||
32 | LastQty | Y | 成交数量 | ||
152 | CashOrderQty | N | 金额 | ||
664 | ConfirmID | N | 约定号 | ||
8911 | ExpirationDays | N | 期限,单位为天数,转融通证券出借填写 | ||
8906 | ExpirationType | N | 期限类型,转融通证券出借填写 |
表 20 成交申报响应消息(Trade Capture Report Ack)(续)
Tag | 域名 | 必选 | 说明 |
8908 | ShareProperty | N | 股份性质 |
541 | MaturityDate | N | 购回交易日期 |
8907 | ExpirationExecInst | N | 到期续做方式,质押式报价回购填写 |
423 | PriceType | N | 价格类型 |
10183 | PledgeeType | N | 质权人类型 |
1126 | OrigTradeID | N | 初始交易交易所成交申报编号 |
10182 | OrigTradeReportID | N | 初始交易客户成交申报编号 |
1125 | OrigTradeDate | N | 初始交易日期 |
544 | CashMargin | N | 融资融券信用标识 |
880 | TrdMatchID | N | 交易编号,跨交易日唯一 |
58 | Text | N | 备注 |
10.3.6.4 成交确认消息(MsgType=AE)
成交确认消息是对协议配对模式下成交申报配对成交时的回报。成交确认消息(Trade Capture Report)的格式见表 21。
表 21 成交确认消息(Trade Capture Report)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=AE | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | Y | 应用标识 |
1003 | TradeID | Y | 交易所为成交申报分配的唯一 ID |
571 | TradeReportID | Y | 客户成交申报编号,同一交易单元一个交易日内申报的成交申报的 客户成交申报编号不得重复 |
522 | OwnerType | Y | 成交申报所有者类型 |
828 | TrdType | Y | 成交申报业务类别 |
829 | TrdSubType | N | 成交申报子业务类别 |
856 | TradeReportType | Y | 成交申报类型 |
487 | TradeReportTransType | Y | 成交申报事务类别 2=Replace,成交申报成功 |
1123 | TradeHandlingInstr | N | 成交申报模式 |
60 | TransactTime | N | 成交确认时间 |
组件<Instrument> | Y | ||
48 | SecurityID | Y | 证券代码 |
22 | SecurityIDSource | Y | 证券代码源 |
组件结束 |
表 21 成交确认消息(Trade Capture Report)(续)
Tag | 域名 | 必选 | 说明 | ||
组件<RootParties> | Y | ||||
1116 | NoRootPartyIDs | Y | 参与人代码个数 | ||
🡪 | 1117 | RootPartyID | Y | 参与人代码 | |
1118 | RootPartyIDSourc e | Y | 参与人代码源 | ||
1119 | RootPartyRole | Y | 参与人代码角色 | ||
组件结束 | |||||
组件<TrdCapRptSideGrp> | Y | ||||
552 | NoSides | Y | side 个数 | ||
🡪 | 54 | Side | Y | 买卖方向 | |
组件<Parties> | Y | ||||
453 | NoPartyIDs | Y | 参与人代码个数 | ||
🡪 | 448 | PartyID | Y | 参与人代码 | |
447 | PartyIDSour ce | Y | 参与人代码源 | ||
452 | PartyRole | Y | 参与人代码角色 | ||
组件结束 | |||||
组件结束 | |||||
17 | ExecID | Y | 执行编号 | ||
31 | LastPx | Y | 成交价格 | ||
32 | LastQty | Y | 成交数量 | ||
152 | CashOrderQty | N | 金额 | ||
664 | ConfirmID | N | 约定号 | ||
8911 | ExpirationDays | N | 期限,单位为天数,转融通证券出借填写 | ||
8906 | ExpirationType | N | 期限类型,转融通证券出借填写 | ||
8908 | ShareProperty | N | 股份性质 | ||
541 | MaturityDate | N | 购回交易日 | ||
8907 | ExpirationExecInst | N | 到期续做方式,质押式报价回购填写 | ||
423 | PriceType | N | 价格类型 | ||
544 | CashMargin | N | 融资融券信用标识 | ||
1125 | OrigTradeDate | N | 初始交易日期 | ||
880 | TrdMatchID | N | 交易编号,跨交易日唯一 | ||
58 | Text | N | 备注 |
10.3.7 投票业务类
10.3.7.1 投票消息(MsgType=U004)
投票消息提供了在投票期间输入投票的具体功能。投票消息的格式见表22。
表 22 投票消息
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=U004 | |
1180 | ApplID | Y | 应用标识 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
522 | OwnerType | Y | 投票所有者类型 |
组件<Parties> | Y | 参与方 | |
组件<Instrument> | Y | 证券定义 | |
60 | TransactTime | N | 订单发起时间 |
8547 | GeneralMeetingSeq | 股东大会编码,股东大会唯一序列号。 | |
8529 | VotingProposal | Y | 投票议案号 |
8530 | VotingSubProposal | N | 投票子议案号 |
8531 | VotingPreference | Y | 投票意向 |
8546 | VotingSegment | N | 分段统计段号,仅对沪港通港结算有效。 |
704 | LongQty | N | 总股份数量,仅对沪港通港结算有效。 |
组件<OrderQtyData> | N | 数量 | |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.7.2 投票执行报告消息(MsgType=U005)
投票执行报告消息将对投票消息作出响应。若未能通过有效性检查该投票将无效。投票执行报告消息的格式见表23。
表 23 投票执行报告消息
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=U005 | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | Y | 应用标识 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
522 | OwnerType | Y | 投票所有者类型 |
37 | OrderID | N | 交易所处理编号 |
17 | ExecID | Y | 执行编号 |
组件<Parties> | N | 参与方 | |
组件<Instrument> | Y | 证券定义 | |
150 | ExecType | Y | 执行类型,取值有: 0=请求接受 8=请求失败 |
103 | OrdRejReason | N | 投票请求拒绝时表示投票请求拒绝的原因 |
1328 | RejectText | N | 拒绝原因说明,执行类型为 8 时填写 |
表 23 投票执行报告消息(续)
Tag | 域名 | 必选 | 说明 |
60 | TransactTime | N | 请求接收时表示接受请求的时间,拒绝响应时无该字段 |
8529 | VotingProposal | Y | 投票议案号 |
8530 | VotingSubProposal | N | 投票子议案号或选举候选人 |
8531 | VotingPreference | Y | 投票意向 |
组件<OrderQtyData> | N | ||
38 | OrderQty | Y | 投票数量 |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.7.3 投资者服务密码激活消息(MsgType=U006)
投资者服务密码激活消息使投资者可以通过交易系统激活投资者在互联网投票系统申请的密码;密码激活成功后,投资者可以继续在互联网投票系统使用其申请的密码进行登录并投票。本消息被SZ证券交易所定义为密码服务消息。
投资者服务密码激活消息的格式见表24。
表 24 投资者服务密码激活消息
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=U006 | |
1180 | ApplID | Y | 应用标识 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
522 | OwnerType | Y | 投票所有者类型 |
组件<Instrument> | Y | 证券定义 | |
组件<Parties> | Y | 参与方 | |
60 | TransactTime | N | 订单发起时间 |
8539 | ValidationCode | Y | 校验号码 |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.7.4 投资者服务密码挂失消息(MsgType=U007)
投资者服务密码挂失消息使投资者可以通过交易系统挂失投资者在互联网投票系统申请的密码;密码挂失成功后,系统将注销原有用户信息,投资者若想使用密码服务,应重新申请服务密码并激活密码。本消息被SZ证券交所定义为密码服务执行报告。
服务密码挂失注销后投资者方可重新申领。投资者服务密码挂失消息的格式见表25。
表 25 投资者服务密码挂失消息
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=U007 | |
1180 | ApplID | Y | 应用标识 |
表 25 投资者服务密码挂失消息(续)
Tag | 域名 | 必选 | 说明 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
522 | OwnerType | Y | 投票所有者类型 |
组件<Instrument> | Y | 证券定义 | |
组件<Parties> | Y | 参与方 | |
60 | TransactTime | N | 订单发起时间 |
8539 | ValidationCode | Y | 校验号码 |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.7.5 投资者服务密码激活执行报告消息(MsgType=U008)
投资者服务密码激活执行报告消息将对投资者服务密码激活消息作出响应。如果未能通过有效性检查该密码将不会被激活。
投资者服务密码激活执行报告消息的格式见表26。
表 26 投资者服务密码激活执行报告消息
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=U008 | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | Y | 应用标识 |
522 | OwnerType | Y | 所有者类型 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
37 | OrderID | N | 交易所处理编号 |
17 | ExecID | Y | 执行编号 |
组件<Instrument> | Y | 证券定义 | |
组件<Parties> | N | 参与方 | |
150 | ExecType | Y | 执行类型,取值有: 0=请求接受 8=请求失败 |
103 | OrdRejReason | N | 请求拒绝时表示请求拒绝的原因 |
1328 | RejectText | N | 拒绝原因说明,执行类型为 8 时填写 |
60 | TransactTime | N | 请求接收时表示接受请求的时间,拒绝响应时无该字段 |
8539 | ValidationCode | Y | 密码激活或重置校验号 |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.7.6 投资者服务密码挂失执行报告消息(MsgType=U009)
投资者服务密码挂失执行报告消息将对投资者服务密码挂失消息作出响应。如果未能通过有效性检查该密码将不会被挂失。
投资者服务密码挂失执行报告消息的格式见表27。
表 27 投资者服务密码挂失执行报告消息
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=U009 | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | Y | 应用标识 |
522 | OwnerType | Y | 所有者类型 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
37 | OrderID | N | 交易所处理编号 |
17 | ExecID | Y | 执行编号 |
组件<Instrument> | Y | 证券定义 | |
组件<Parties> | N | 参与方 | |
150 | ExecType | Y | 执行类型,取值有: 0=请求接受 8=请求失败 |
103 | OrdRejReason | N | 请求拒绝时表示请求拒绝的原因 |
1328 | RejectText | N | 拒绝原因说明,执行类型为 8 时填写 |
60 | TransactTime | N | 请求接收时表示接受请求的时间,拒绝响应时无该字段 |
8539 | ValidationCode | Y | 密码激活或重置校验号 |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.8 注册业务类
10.3.8.1 注册类消息概述
注册类消息是交易客户方申请或变更其证券账号交易权利的指令,是进行证券交易前的准备。注册类消息支持指定交易、转托管、国债回购登记/注销等业务。
10.3.8.2 注册消息(MsgType=U001)
注册消息中的注册指令(DesignationInstruction),用于指明注册业务的类别:指定交易登记、指定交易撤消、转托管、国债回购登记、国债回购注销。
指定交易注册消息用于 SH 证券交易所的全面指定交易模式,由交易客户方发出,用以将证券账号与参与者业务单元进行关联或撤消关联。
转托管注册消息用于 SZ 证券交易所的账号托管模式,由交易客户方发出,用以变更账号持股与托管参与者业务单元间的指定关系。
在转托管注册消息中,若无证券代码,表示该证券账号在该参与者业务单元下的所有证券都应转至新的参与者业务单元;若无数量,表示该证券账号在该参与者业务单元下的该证券的全部持有量都转至转入参与者业务单元。
国债回购登记/注销注册消息由交易客户方发出,用以为证券账号申请或注销进行国债回购业务的权利。
注册消息通过指定注册类型来确定注册消息是新注册请求还是注册撤单,注册撤单由交易客户方发出,用以撤消之前的注册请求。
注册消息的格式见表 28。
表 28 注册
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=U001 | |
1180 | ApplID | Y | 应用标识 |
522 | OwnerType | Y | 注册所有者类型 |
41 | OrigClOrdID | N | 原始交易客户方(券商)订单编号,指示被撤消订单的 ClOrdID |
37 | OrderID | N | 订单编号,交易服务方(交易所)的唯一订单标识 |
11 | ClOrdID | Y | 交易客户方(券商)订单编号 |
8502 | DesignationInstruction | Y | 注册指令: 1=指定交易登记 2=指定交易撤消 3=转托管 4=国债回购登记 5=国债回购注销 |
8527 | DesignationTransType | N | 注册类型: 1=新注册请求(New) 3=注册撤单(Cancel) |
组件<Parties> | N | 参与方 | |
组件<Instrument> | N | 证券定义 | |
60 | TransactTime | Y | 事务发起时间 |
组件<OrderQtyData> | N | 数量 | |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.8.3 注册执行报告消息(MsgType=U002)
注册执行报告消息由交易服务方发出,用以回应注册消息。注册执行报告消息的格式见表 29。
表 29 注册执行报告
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=U002 | |
10179 | ReportIndex | Y | 回报记录号 |
1180 | ApplID | Y | 应用标识 |
522 | OwnerType | Y | 注册所有者类型 |
37 | OrderID | N | 订单编号,交易服务方(交易所)的唯一订单标识 |
11 | ClOrdID | N | 交易客户方(券商)订单编号 |
41 | OrigClOrdID | N | 原始交易客户方(券商)订单编号,指示被撤消订单的 ClOrdID |
17 | ExecID | N | 执行编号,交易服务方赋予的唯一执行标识(或称成交编号) |
150 | ExecType | Y | 执行类型 |
39 | OrdStatus | N | 订单状态 |
103 | OrdRejReason | N | 订单拒绝原因 |
1328 | RejectText | N | 拒绝原因说明,执行类型为 8 时填写 |
表 29 注册执行报告(续)
Tag | 域名 | 必选 | 说明 |
8502 | DesignationInstruction | Y | 注册指令: 1=指定交易登记 2=指定交易撤消 3=转托管 4=国债回购登记 5=国债回购注销 |
8527 | DesignationTransType | Y | 注册类型 1=New 表示新注册请求 3=Cancel 表示注册撤单 |
组件<Parties> | N | 参与方 | |
组件<Instrument> | N | 证券定义 | |
60 | TransactTime | Y | 事务发起时间 |
组件<OrderQtyData> | N | 数量 | |
58 | Text | N | 备注 |
标准消息尾 | Y |
10.3.9 保证金查询业务类
10.3.9.1 保证金查询消息
交易客户方可以通过申报保证金查询消息向交易服务方查询当前可用资金,该消息主要用于期权业
务。
10.3.9.2 保证金查询消息(MsgType=CH/U008)
消息类型 U008 在 SH 证券交易所定义为密码激活执行报告,在 SZ 证券交易所定义为保证金查询,
SH 证券交所保证金查询业务消息类型为 CH。
SH 证券交易所保证金消息(Margin Query)的格式见表 30。
表 30 保证金查询消息(Xxxxxx Xxxxx)
Tag | 域名 | 必选 | 说明 | |
标准消息头 | Y | MsgType=CH | ||
1635 | MarginReqmtInqID | Y | 交易客户方(券商)查询申请内部编号 | |
组件<Parties> | N | |||
453 | NoPartyIDs | N | 参与人代码个数 | |
🡪 | 448 | PartyID | N | 参与人代码 |
452 | PartyRole | N | 参与人代码角色 | |
组件结束 |
SZ 证券交易所保证金消息(Margin Query)的格式见表 31。
表 31 保证金查询消息(Xxxxxx Xxxxx)
Tag | 域名 | 必选 | 说明 | |
标准消息头 | Y | MsgType=U008 | ||
1180 | ApplID | Y | 应用标识 042=期权集中竞价交易询价 | |
60 | TransactTime | N | 申报发起时间 | |
11 | ClOrdID | Y | 客户查询编号 | |
组件<Parties> | Y | |||
453 | NoPartyIDs | Y | 参与人代码个数 | |
🡪 | 448 | PartyID | Y | 参与人代码 |
447 | PartyIDSource | Y | 参与人代码源 | |
452 | PartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
58 | Text | N | 备注 |
10.3.9.3 保证金查询结果消息(MsgType=CJ/U009)
消息类型 U009 在 SH 证券交易所定义为密码挂失执行报告,在 SZ 证券交易所定义为保证金查询结果,SH 证券交易所查询响应报告消息类型为 CJ。表示交易服务方收到保证金查询消息后发送保证金查询结果消息。
SH 证券交易所所保证金查询结果消息(Margin Query Result)的格式见表 32。
表 32 保证金查询结果消息(Margin Query Result)
Tag | 域名 | 必选 | 说明 | |
标准消息头 | Y | MsgType=CJ | ||
1635 | MarginReqmtInqID | Y | 交易客户方(券商)查询申请内部编号 | |
102 | CxlRejReason | N | 查询失败时,填写请求拒绝的理由 | |
8541 | TransactTimeOnly | N | 查询时间 | |
组件<Parties> | Y | |||
453 | NoPartyIDs | Y | 参与人代码个数 | |
🡪 | 448 | PartyID | Y | 参与人代码 |
452 | PartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
组件<MarginAmt> | N | |||
1643 | NoMarginAmt | Y | 查询结果总记录数 | |
🡪 | 1645 | MarginAmt | Y | 金额 |
1644 | MarginAmtType | Y | 金额类型 | |
组件结束 |
SZ 证券交易所保证金查询结果消息(Margin Query Result)的格式见表 33。
表 33 保证金查询结果消息(Margin Query Result)
Tag | 域名 | 必选 | 说明 | |
标准消息头 | Y | MsgType=U008 | ||
1180 | ApplID | Y | 应用标识 042=期权集中竞价交易询价 | |
60 | TransactTime | N | 申报发起时间 | |
11 | ClOrdID | Y | 客户查询编号 | |
17 | ExecID | Y | 执行编号 | |
150 | ExecType | Y | 执行类型 0=New 表示请求接受 8=Reject 表示请求失败 | |
103 | OrdRejReason | N | 拒绝原因代码,执行类型为 8 时填写 | |
1328 | RejectText | N | 拒绝原因说明,执行类型为 8 时填写 | |
组件<Parties> | Y | |||
453 | NoPartyIDs | Y | 参与人代码个数 | |
🡪 | 448 | PartyID | Y | 参与人代码 |
447 | PartyIDSource | Y | 参与人代码源 | |
452 | PartyRole | Y | 参与人代码角色 | |
组件结束 | ||||
组件<MarginItems> | N | |||
10186 | NoMarginItems | Y | 保证金条目个数 | |
🡪 | 10187 | MarginItem | Y | 保证金条目类别 1=保证金可用余额 2=保证金总金额 |
10188 | MarginAmount | Y | 保证金金额 | |
组件结束 | ||||
58 | Text | N | 备注 |
10.3.10 行情
10.3.10.1 证券信息请求消息(MsgType=e)
证券信息请求用于交易客户方向交易服务方提出有关证券信息的请求,通过此信息,可以得到一条或多条有关证券信息消息。
证券信息请求消息包含一个订阅请求类型(SubscriptionRequestType)域,通过该域的不同取值告知对方所请求的是何种类型:
a) 0-表示请求人只要求快照或当前状态;
b) 1-表示请求人要求快照+更新(若状态发生变化);
c) 2-表示请求人要求撤销处于等待中的证券信息状态快照或更新请求。证券信息请求消息的格式见表34。
表 34 证券信息请求(Security Status Request)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=e | |
324 | SecurityStatusReqID | N | 证券信息请求编号 |
组件<Instrument> | Y | 证券定义 | |
15 | Currency | N | 币种 |
263 | SubscriptionRequestType | Y | 订阅请求类型 |
336 | TradingSessionID | N | 交易盘标识 |
625 | TradingSessionSubID | N | 交易盘子标识,如: A 股市场 B 股市场 中小企业市场基金市场 国债市场 其他债券市场债券回购市场国际板市场 创业板市场 |
标准消息尾 | Y |
证券信息广播消息包含证券相关信息,市场交易信息等。证券信息广播消息的格式见表 35。
表 35 证券信息广播(Security Status)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=f | |
组件<Instrument> | Y | 证券定义 | |
324 | SecurityStatusReqID | N | 证券信息请求编号 |
561 | RoundLot | N | 交易单位(该证券订单数量的单位量,即最终的订单数量=订单数量×交易单位) |
8507 | IndustryClassification | N | 行业种类 |
15 | Currency | N | 币种 |
8508 | ShareFaceValue | N | 股票面值 |
8509 | OutStandingShares | N | 总发行量 |
8510 | PublicFloatShareQuantity | N | 流通股数 |
8511 | PreviousYearProfitPerShare | N | 上年每股利润 |
8512 | CurrentYearProfitPerShare | N | 本年每股利润 |
136 | NoMiscFees | N | 杂项费用类别数 |
表 35 证券信息广播(Security Status)(续)
Tag | 域名 | 必选 | 说明 | |
🡪 | 139 | MiscFeeType | N | 杂项费用类别 3=佣金(Local Commission) 4=经手费(Exchange Fees) 5=印花税(Stamp) 6=证管费(Levy) 7=其它(Other) 13=过户费(TransferFee) |
🡪 | 137 | MiscFeeAmt | N | 杂项费用金额 |
225 | IssueDate | N | 上市日期 | |
541 | MaturityDate | N | 到期/交割日 | |
111 | MaxFloor | N | 每笔限量 | |
8513 | BidLotSize | N | 买数量单位(买订单数量应为此域值的整数倍) | |
8514 | AskLotSize | N | 卖数量单位(卖订单数量应为此域值的整数倍) | |
8515 | PriceTickSize | N | 价格档位 | |
8517 | AuctionPriceLimit | N | 集合竞价限价参数 | |
8518 | ContinuousTradePriceLimit | N | 连续竞价限价参数 | |
8516 | PriceLimitType | N | 限价参数类型 | |
8519 | DailyPriceUpLimit | N | 涨幅价格(最高价) | |
8520 | DailyPriceDownLimit | N | 跌幅价格(最低价) | |
326 | SecurityTradingStatus | N | 交易状态(含停牌标志) 2=停牌(Trading Halt) 3=恢复(Resume) 101=首日上市 102=增发股份上市 103=正常状态 104=上网定价发行 105=上网竞价发行 106=国债挂牌分销 | |
8521 | SecurityProperties | N | 证券属性 N=正常 S=ST 股 P=PT 股 H=SH 证券交易所证券在 SZ 证券交易所代理 T=代办转让证券 Z=SZ 证券交易所证券在SH 证券交易所代理 L=上市开放型 LOF 基金 D=上市开放低风险收益型 LOF 基金 F=非交易型开放式基金 E=交易型开放式指数基金(ETF) |
表 35 证券信息广播(Security Status)(续)
Tag | 域名 | 必选 | 说明 | ||
O=仅提供净值揭示服务的开放式基金 B=仅在协议交易平台挂牌交易的证券 | |||||
292 | CorporateAction | N | 除权除息标志 A=除股息(Ex-Dividend) B=除分配(Ex-Distribution) C=除权(Ex-Rights) D=新股(New) E=除利息(Ex-Interest) N=正常(Normal) | ||
8522 | NoIndicesParticipated | N | 所属指数数量 | ||
🡪 | 8528 | Participatingindex ID | N | 所属指数代码 | |
🡪 | 8523 | IndexinclusionInd icator | N | 纳入指数计算标志 Y=纳入该指数计算 N=暂停纳入该指数计算 | |
159 | AccruedInterestAmt | N | 每百元债券应计利息 | ||
8534 | WarrantStyle | N | 行权方式代码 A=美式权证 E=欧式权证 B=百慕大式权证 | ||
8535 | WarrantPutOrCall | N | 认购认沽标志 C=认购 P=认沽 | ||
8536 | WarrantClearingType | N | 权证结算方式 S=证券结算 C=现金结算 | ||
231 | ContractMultiplier | N | 行权比例 | ||
916 | StartDate | N | 对权证表示行权开始日期 | ||
917 | EndDate | N | 对权证表示行权结束日期 | ||
309 | UnderlyingSecurityID | N | 基础证券代码(权证、ETF) | ||
8537 | NAV | N | T-1 日基金的单位净值 | ||
42 | OrigTime | Y | 数据生成时间 | ||
10201 | ChannelNo | Y | 频道代码 | ||
48 | SecurityID | Y | 证券代码 | ||
22 | SecurityIDSource | Y | 证券代码源 | ||
291 | FinancialStatus | N | 证券状态 | ||
10202 | NoSwitch | N | 开关个数 | ||
🡪 | 10203 | SecuritySwitchT ype | Y | 开关类别 1=融资买入 |
表 35 证券信息广播(Security Status)(续)
Tag | 域名 | 必选 | 说明 | |
2=融券卖出 3=申购 4=赎回 5=认购 6=转股 7=回售 8=行权 10=买开仓 11=卖开仓 12=黄金ETF 实物申购 13=黄金ETF 实物赎回 14=预受要约 15=解除要约 18=转股撤单 19=回售撤单 20=质押 21=解押 22=表决权 23=股票质押式回购 24=实时分拆 25=实时合并 26=备兑开仓 27=做市商报价 28=港股通整手买 29=港股通整手卖 30=港股通零股买 31=港股通零股卖 | ||||
10204 | SecuritySwitchS tatus | Y | 开关状态 Y 表示开 N 表示关 | |
标准消息尾 | Y |
10.3.10.3 证券行情快照消息(MsgType=W)
每条行情快照消息包含一个产品的所有行情条目。每个行情条目就是某个产品的买、卖、成交、开盘、结算、买卖方均衡、指数、最高、最低、交易量等。
行情快照消息用于定期或者不定期地发送行情,可用 RefreshIndicator 字段来区分重复内容的快照数据和带有新数据的快照数据。
证券行情快照消息的格式见表 36。
表 36 证券行情快照
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=W | |
1180 | ApplID | N | 消息的应用标识,可省略 |
1181 | ApplSeqNum | N | 消息的应用编号,可省略 |
963 | MDReportID | N | 交易所行情信息编号 |
1187 | RefreshIndicator | N | 用以标识消息中是否有新的行情数据,取值: 1=有 0=无 |
42 | OrigTime | Y | 数据生成时间 |
10201 | ChannelNo | Y | 频道代码 |
1500 | MDStreamID | Y | 行情类别 010=现货(股票,基金,债券等)集中竞价交易快照行情 020=质押式回购交易快照行情 030=债券分销快照行情 040=期权集中竞价交易快照行情 060=以收盘价交易的盘后定价交易快照行情 061=以成交量加权平均价交易的盘后定价交易快照行情 630=港股实时行情 900=指数快照行情 910=成交量统计指标快照行情 |
75 | TradeDate | N | 订单申报日期(仅日期) |
8541 | TransactTimeOnly | N | 预留时间字段 |
55 | Symbol | N | 证券名称 |
48 | SecurityID | N | 证券代码 |
22 | SecurityIDSource | N | 证券代码源 |
461 | CFICode | N | CFICode 值,CFI 的编码应符合 GB/T 35964-2018 的规定 |
8503 | NumTrades | N | 成交笔数 |
44 | Price | N | 转融通费率 |
271 | MDEntrySize | N | 转融通申报总量 |
580 | NoDates | N | 期限 |
1020 | TradeVolume | N | 成交数量 |
8506 | TotalLongPosition | N | 总持仓量 |
387 | TotalVolumeTraded | Y | 成交总量 |
8504 | TotalValueTraded | N | 成交金额 |
140 | PrevClosePx | N | 昨日收盘价,可省略 |
10207 | StockNum | N | 统计量指标样本个数 |
268 | NoMDEntries | N | 行情条目个数 |
表 36 证券行情快照(续)
Tag | 域名 | 必选 | 说明 | |
🡪 | 269 | MDEntryType | N | 行情条目类别 0=买入(Bid) 1=卖出(Offer) 2=成交价(Trade) 3=指数(Index Value) 4=今开盘价(Opening Price) 5=今收盘价(Closing Price) 6=结算价(Settlement Price) 7=最高价(Trading Session High Price) 8=最低价(Trading Session Low Price) x=最近集合竞价 x1=升跌一 x2=升跌二 x3=买入汇总(总量及加权平均价) x4=卖出汇总(总量及加权平均价) x5=股票市盈率一 x6=股票市盈率二 x7=基金T-1 日净值 x8=基金实时参考净值(包括ETF 的 IOPV) x9=权证溢价率 xa=昨日收盘指数 xb=开盘指数 xc=最高指数 xd=最低指数 xe=涨停价,999999999.9999 表示无涨停价格限制 xf=跌停价,-999999999.9999 表示无跌停价格限制 xg=合约持仓量 xh=按盘价 xi=参考价 v=ETF 申购/赎回的单位参考净值(IPOV) u=权证总行权数量 t=权证总创设数量 s=权证总注销数量 |
🡪 | 270 | MDEntryPx | N | 行情条目价格 |
🡪 | 271 | MDEntrySize | N | 行情条目数量,数量的单位对股票为股,基金为份,债券与回购为 手,权证为份 |
🡪 | 290 | MDEntryPosition No | N | 行情条目买卖盘序号(MDEntryType 为 0 或 1 时有效) |
🡪 | 1023 | MDPriceLevel | N | 买卖盘档位 |
表 36 证券行情快照(续)
Tag | 域名 | 必选 | 说明 | ||
从 1 开始 | |||||
🡪 | 346 | NumberOfOrders | N | 价位总委托笔数为 0 表示不揭示 | |
🡪 | 73 | NoOrders | N | 价位揭示委托笔数为 0 表示不揭示 | |
🡪 | 🡪 | 38 | OrderQty | N | 订单数量 |
8538 | TradingPhaseCode | N | 交易阶段代码第 1 位: S=启动(开市前) O=开盘集合竞价 T=连续竞价 B=休市 C=收盘集合竞价 E=已闭市 H=临时停牌 A=盘后交易 V=波动性中断 P=表示临时停牌 U=收盘集合竞价 M=表示可恢复交易的熔断(盘中集合竞价) N=表示不可恢复交易的熔断 第 2 位: 0=正常状态 1=全天停牌 第 3 位:‘0’表示不限制开仓,‘1’表示限制备兑开仓,‘2’表示卖出开仓,‘3’表示限制卖出开仓、备兑开仓,‘4’表示限制买入开仓,‘5’表示限制买入开仓、备兑开仓,‘6’表示限制买入开仓、卖出开仓,‘7’表示限制买入开仓、卖出开仓、备兑开仓 第 4 位:‘0’表示此产品在当前时段不接受进行新订单申报,‘1’ 表 示此产品在当前时段可接受进行新订单申报。 | ||
1494 | NoComplexEventTimes | N | VCM 冷静期个数 0 或 1 1 表示当前处于触发 VCM 的冷静期,下面的时间是冷静期的开始结束时间 | ||
🡪 | 1495 | ComplexEventSta rtTime | Y | 冷静期开始时间 | |
🡪 | 1496 | ComplexEventEn dTime | Y | 冷静期结束时间 | |
标准消息尾 | Y |
MDEntryDate 和 MDEntryTime 用于发布当前行情的日期和时间。对于指数发布,可以用相应的域表示前收盘指数、今开盘指数、今成交金额、最高指数、最低指数、最新指数、成交股数等。
10.3.10.4 证券逐笔委托行情(MsgType=UA201)
交易服务方向市场揭示交易客户申报的每笔有效的订单。证券逐笔委托行情消息的格式见表 37。
表 37 证券逐笔委托行情
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=UA201 | |
10201 | ChannelNo | Y | 频道代码 |
1181 | ApplSeqNum | Y | 消息记录号 从 1 开始计数 |
1500 | MDStreamID | Y | 行情类别 011=现货(股票,基金,债券等)集中竞价交易逐笔行情 021=质押式回购交易逐笔行情 041=期权集中竞价交易逐笔行情 051=协议交易逐笔意向行情 052=协议交易逐笔定价行情 071=转融通证券出借逐笔行情 |
48 | SecurityID | Y | 证券代码 |
22 | SecurityIDSource | Y | 证券代码源 |
44 | Price | Y | 委托价格 |
38 | OrderQty | Y | 订单数量 |
54 | Side | Y | 买卖方向 1=买 2=卖 G=借入 F=出借 |
40 | OrdType | N | 订单类别 1=市价 2=限价 U=本方最优 |
664 | ConfirmID | N | 定价行情约定号 ConfirmID 为空表示是意向行情否则为定价行情 |
8911 | ExpirationDays | N | 期限,单位为天数 |
8906 | ExpirationType | N | 期限类型 |
60 | TransactTime | Y | 委托时间 |
10184 | Contactor | N | 联系人 |
10185 | ContactInfo | N | 联系信息 |
10.3.10.5 证券逐笔成交行情(MsgType=UA202)
交易服务方向市场揭示交易客户产生的每笔成交。证券逐笔成交行情消息的格式见表 38。
表 38 证券逐笔成交行情
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=UA201 | |
10201 | ChannelNo | Y | 频道代码 |
1181 | ApplSeqNum | Y | 消息记录号 从 1 开始计数 |
1500 | MDStreamID | Y | 行情类别 011=现货(股票,基金,债券等)集中竞价交易逐笔行情 021=质押式回购交易逐笔行情 041=期权集中竞价交易逐笔行情 051=协议交易逐笔意向行情 052=协议交易逐笔定价行情 071=转融通证券出借逐笔行情 |
10116 | BidApplSeqNum | N | 买方委托索引 从 1 开始计数,0 表示无对应委托 |
10117 | OfferApplSeqNum | N | 卖方委托索引 从 1 开始计数,0 表示无对应委托 |
48 | SecurityID | Y | 证券代码 |
22 | SecurityIDSource | Y | 证券代码源 |
31 | LastPx | N | 成交价格 |
32 | LastQty | Y | 成交数量 |
150 | ExecType | Y | 执行类型 4=Cancelled,主动或自动撤单执行报告 F=Trade,成交执行报告 |
60 | TransactTime | Y | 成交时间 |
10.3.10.6 快照行情频道统计(MsgType=UA004)
每个快照行情频道都会定期发送快照行情频道统计消息。快照行情频道统计消息的格式见表 39。
表 39 快照行情频道统计
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=UA004 | |
10201 | ChannelNo | Y | 频道代码 |
1181 | ApplSeqNum | Y | 消息记录号 从 1 开始计数 |
表 39 快照行情频道统计(续)
Tag | 域名 | 必选 | 说明 | |
42 | OrigTime | Y | 数据生成时间 | |
10201 | ChannelNo | Y | 频道代码 | |
10208 | NoMDStreamID | Y | 行情类别个数 | |
🡪 | 1500 | MDStreamID | Y | 行情类别 |
🡪 | 10207 | StockNum | N | 证券只数 |
🡪 | 8538 | TradingPhaseCod e | Y | 闭市状态第 0 位: T=连续竞价(全部证券尚未闭市) E=已闭市(全部证券已闭市) |
10.3.10.7 公告(MsgType=B)
公告消息的格式见表 40。
表 40 公告
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=B | |
42 | OrigTime | N | 公告时间 |
10201 | ChannelNo | Y | 频道代码 |
1472 | NewsID | N | 唯一标识 空串表示公告概要,公告概要会重复发送。可通过公告概要确定公告是否有遗漏或是修改 |
148 | Headline | Y | 公告标题 |
10209 | RawDataFormat | Y | 二进制数据格式 |
95 | RawDataLength | Y | 二进制数据长度 |
96 | RawData | Y | 二进制数据 |
10.3.11 市场控制
10.3.11.1 市场参数请求消息(MsgType=BI)
市场参数请求消息用于接入方向交易所发送市场参数请求,获取当前市场相关控制参数,交易所应以市场参数消息作为请求的响应。
市场参数请求消息的格式见表 41。
表 41 市场参数请求
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=BI | |
335 | TradSesReqID | Y | 交易盘请求编号 |
336 | TradingSessionID | N | 交易盘标识 |
表 41 市场参数请求(续)
Tag | 域名 | 必选 | 说明 |
625 | TradingSessionSubID | N | 交易盘子标识,如: A 股市场 B 股市场 中小企业市场基金市场 国债市场 其他债券市场债券回购市场国际板市场 创业板市场 |
207 | SecurityExchange | N | 交易场所代码 |
338 | TradSesMethod | N | 交易盘交易方法 1=电子交易系统 2=喊价交易(Open Outcry) 3=双方(Two Party) |
339 | TradSesMode | N | 交易盘交易模式 1=系统测试 2=模拟交易 3=产品(正常交易) |
263 | SubscriptionRequestType | Y | 订阅请求类型 |
标准消息尾 | Y |
10.3.11.2 市场参数消息(MsgType=BJ)
市场参数消息用于交易所向交易客户方发送市场状态、时段信息,用以交易客户方控制交易。市场参数消息的格式见表 42。
表 42 市场参数
Tag | 域名 | 必选 | 说明 | |
标准消息头 | Y | MsgType=BJ | ||
335 | TradSesReqID | N | 交易盘请求编号 | |
396 | NoTradingSessions | Y | 交易盘个数 | |
🡪 | 336 | TradingSessionID | Y | 交易盘标识 |
表 42 市场参数(续)
Tag | 域名 | 必选 | 说明 | |
🡪 | 625 | TradingSessionSub ID | N | 交易盘子标识,如: A 股市场 B 股市场 中小企业市场基金市场 国债市场 其他债券市场债券回购市场国际版市场 创业板市场 如果市场参数消息没有交易盘子标识(TradingSessionSubID),则表 示所有市场参数相同。 |
🡪 | 207 | SecurityExchange | N | 交易场所代码 |
🡪 | 338 | TradSesMethod | N | 交易盘交易方法 1=电子交易系统 2=喊价交易(Open Outcry) 3=双方(Two Party) |
🡪 | 339 | TradSesMode | N | 交易盘交易模式 1=系统测试 2=模拟交易 3=产品(正常交易) |
🡪 | 325 | UnsolicitedIndicat or | N | 主动发送标识 |
🡪 | 340 | TradSesStatus | Y | 交易盘状态 0=未知状态(Unknown) 1=停盘(Halted) 2=开盘(Open) 3=闭盘(Closed) 4=预开盘(Pre-Open) 5=预闭盘(Pre-Close) 7=挂起(Suspend) 11=正常交易(Trading) 21=中断(Break) |
🡪 | 567 | TradSesStatusRejR eason | N | 交易盘状态请求拒绝原因 |
🡪 | 341 | TradSesStartTime | N | 交易盘开始时间 |
🡪 | 342 | TradSesOpenTime | N | 交易盘开盘时间 |
🡪 | 343 | TradSesPreCloseTi me | N | 交易盘预关闭时间 |
表 42 市场参数(续)
Tag | 域名 | 必选 | 说明 | |
🡪 | 344 | TradSesCloseTime | N | 交易盘关闭时间 |
🡪 | 345 | TradSesEndTime | N | 交易盘结束时间 |
🡪 | 387 | TotalVolumeTrade d | N | 总成交量 |
🡪 | 58 | Text | N | 说明正文 |
🡪 | 354 | EncodedTextLen | N | 编码文本长度 |
🡪 | 355 | EncodedText | N | 编码文本 |
标准消息尾 | Y |
10.3.11.3 市场实时状态(MsgType=h)
市场实时状态用于交易所向交易客户方发送市场状态,用以交易客户方控制交易。市场实时状态的格式见表 43。
表 43 市场实时状态
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=h | |
335 | TradSesReqID | N | 交易盘请求编号 |
396 | NoTradingSessions | Y | 交易盘个数 |
42 | OrigTime | Y | 数据生成时间 |
10201 | ChannelNo | Y | 频道代码 |
1301 | MarketID | Y | 市场代码 |
1300 | MarketSegmentID | Y | 市场板块代码,预留 |
336 | TradingSessionID | Y | 交易会话 ID |
625 | TradingSessionSubID | N | 交易会话子 ID 当 MarketID 为 HKEX,TradingSessionID 为 1 时,交易会话子 ID 取值如下: 0=全日收市 1=输入买卖盘(开盘集合竞价时段) 2=对盘(开盘集合竞价时段) 3=持续交易 4=对盘(收盘集合竞价时段) 5=输入买卖盘(收盘集合竞价时段) 7=暂停 100=未开市 101=对盘前(开盘集合竞价时段) 102=Exchange Intervention 103=收市 |
表 43 市场实时状态(续)
Tag | 域名 | 必选 | 说明 |
104=取消买卖盘 105=参考价定价(收盘集合竞价时段) 106=不可取消(收盘集合竞价时段) 107=随机收市(收盘集合竞价时段) | |||
340 | TradSesStatus | N | 交易会话状态,预留 |
341 | TradSesStartTime | N | 交易会话起始时间,预留 |
345 | TradSesEndTime | N | 交易会话结束时间,预留 |
834 | ThresholdAmount | N | 每日初始额度 |
708 | PosAmt | N | 日中剩余额度 额度不可用时,发布固定值 0.0000 |
10210 | AmountStatus | N’ | 额度状态 |
11 数据字典
以下列出会话层消息和应用层消息中用到的数据域,数据类型格式见 6.1.1,数据字典见表 44。
表 44 数据字典
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
6 | AvgPx | 成交平均价 | Price | 订单所有成交的平均成交价 |
7 | BeginSeqNo | 起始消息序号 | SeqNum | 重发消息区的起始消息序号 |
8 | BeginString | 起始串 | String | 起始串,指示会话层协议版本,如 FIXT.1.1 |
9 | BodyLength | 消息体长度 | Length | 消息体长度,不可加密,消息的第二个域 |
10 | CheckSum | 校验和 | String | 校验和,不可加密,消息最后一个域 |
11 | ClOrdID | 交易客户方订单编号 | String | 由交易客户方(券商)赋予的订单编号,对相应券商(SenderCompID)在订单交易时期内应保证唯一。对跨日订单,可以在该域内 嵌入交易日期 |
14 | CumQty | 累计执行数量 | Qty | 订单所有成交的成交总股数 |
15 | Currency | 币种 | Currency | 价格的货币单位,可以缺省,但最好给出 |
16 | EndSeqNo | 结束消息序号 | SeqNum | 重发消息区的结束消息序号 BeginSeqNo=EndSeqNo,表明重发一条消息 EndSeqNo=“0”,表明重发起始消息序号后的 所有消息 |
17 | ExecID | 执行编号 | String | 由交易服务方(即交易所)赋予的执行编号,在订单交易时期内应保证唯一。对跨日订单, 可以在该域内嵌入交易日期(或称成交编号) |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
18 | ExecInst | 执行指令 | MultipleValueStri ng | 交易所订单处理指令 G=All or none - AON |
22 | SecurityIDSource | 证券代码源 | String | 证券代码来源或代码集合,如果消息中使用了 SecurityID 域则也应有 SecurityIDSource域,取值: 4=ISIN(ISIN 组织) 101=SH 证券交易所 102=SZ 证券交易所 103=XG 联合交易所 105=外汇交易中心 106=BJ 证券交易所 108=全国股转公司 (200+自行内部使用) |
23 | IOIID | 客户意向申报编 号 | String | 客户意向申报编号 |
26 | IOIRefID | 原 意 向 申 报 IOIID | String | 原意向申报 IOIID 撤销意向申报时使用 |
27 | IOIQty | 意向申报数量 | Qty | 意向申报数量 |
28 | IOITransType | 意向申报类型 | char | 意向申报类型 N=意向申报 C=意向申报撤单 |
31 | LastPx | 上一成交价格 | Price | 订单最近一个成交的成交价 |
32 | LastQty | 上一成交数量 | Qty | 订单最近一个成交的股数 |
34 | MsgSeqNum | 消息序号 | SeqNum | 消息序号 |
35 | MsgType | 消息类型 | String | 消息类型,不可加密,消息的第三个域。自定义消息类型以“U”开头,如 U1, U2 等。消息类型取值: 0=心跳(Heartbeat) 1=测试请求(Test Request) 2=重发请求(Resend Request) 3=会话拒绝(Reject) 4=序号重设(Sequence Reset) 5=注销(Logout) 8=执行报告(Execution Report) 9=撤单拒绝(Order Cancel Reject) A=登录(Logon) D=新订单(Order – Single) E=新订单清单(Order – List) |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
F=撤单(Order Cancel Request) G=修改单(Order Cancel/Replace Request) H=订单状态请求(Order Status Request) e=证券信息请求(Security Status Request) f=证券信息广播(Security Status) BI= 市场参数请求( Trading Session List Request) BJ=市场参数(Trading Session List) U001=注册指令 U002=注册指令执行报告 U003=证券行情广播 U004=投票 U005=投票响应 其中SZ 证券交易所STEP 交易数据接口使用的消息类型(MsgType)字段与SH 证券交易所有四个差异,具体如下所示: U006,在 SZ 证券交易所表示:密码服务消息,在 SH 证券交易所表示:密码激活;U007,在 SZ 证券交易所表示:密码服务执行报告,在 SH 证券交易所表示:密码挂失;U008,在 SZ 证券交易所表示:保证金查询,在 SH证券交易所表示:密码激活执行报告;U009,在 SZ 证券交易所表示:保证金查询结果,在 SH 证券交易所表示:密码挂失执行报告。 U010=资金前端控制响应 U101= 回 报 同 步 消 息 ( Report Synchronization)(SZ 证券交易所) U102=平台状态消息(Platform State Info) (SZ 证券交易所) U103=回报结束消息(Report Finished)(SZ 证券交易所) U104=平台信息消息(Platfrom Info)(SZ 证券交易所) U106=分区序号同步 ExecRptSync(SZ 证券交易所) U107=分区序号同步响应 ExecRptSyncRsp (SH 证券交易所) U108=执行报告分区信息 ExecRptInfo(SH 证券交易所) |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
U109=平台状态 PlatformState(SH 证券交易所) U110= 分 区 执 行 报 告 结 束 ExecRptEndOfStream(SH 证券交易所) UA201=证券逐笔委托行情 UA202=证券逐笔成交行情 UA004=快照行情频道统计 | ||||
36 | NewSeqNo | 新消息序号 | SeqNum | 新消息序号 |
37 | OrderID | 订单编号 | String | 由交易服务方(交易所)赋予的订单编号,在交易日内应保证唯一。对跨日订单,可以 在该域内嵌入交易日期 |
38 | OrderQty | 订单数量 | Qty | 订单中的证券数量 |
39 | OrdStatus | 订单状态 | char | 订单当前状态,取值: 0=新(New) 1=部分成交(Partially filled) 2=已成交(Filled) 3=当天完成(Done for day) 4=已撤消(Canceled) 6=待撤消(Pending Cancel) 7=已终止(Stopped) 8=已拒绝(Rejected) 9=已延缓(Suspended) A=待处理(Pending New) B=已计算(Calculated) C=已过期(Expired) D=已接受(Accepted for bidding) E=待替换(Pending Replace) Z=非交易订单已接收(Non-trading order has been received) |
40 | OrdType | 订单类型 | char | 订单类型,取值: 1=市价(Market) 2=限价(Limit) 3=止损(Stop) 4=止损限价(Stop limit) 6=含或不含(With or without) 7=限价或更好价(Limit or better) 8=限价含或不含(Limit with or without) 9=基于基价(On basis) D=上次报价(Previously quoted) |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
E=上次显示指定的(Previously indicated) G=外汇互换(Forex–Swap) I=当日有效限价,剩余部分在收市结束时变为 市 价 ( Funari (Limit Day Order with unexecuted portion handled as Market On Close. E.g. Japan)) J=执行转市价,如果订单部分执行,所有剩余部分立即变成为市价(Market If Touched (MIT)) K=市价订单未执行部分转现价,(Market with Leftover as Limit (market order then unexecuted quantity becomes limit order at last price)) L=上次基金定价,历史价格(Previous Fund Valuation Point (Historic pricing) (for CIV)) M=下次基金定价, 预期价格( Next Fund Valuation Point –(Forward pricing) (for CIV)) P=挂钩(Pegged) T=冰山(Iceberg) U=本方最优 V=对方最优 W=最优五档 X=协议交易(Block Trade) Y=协商交易(Negotiated Trade) Z=非交易订单(Non-Trading Order) | ||||
41 | OrigClOrdID | 原始交易客户方 订单编号 | String | 之前相关订单的 ClOrdID,用于撤单或修改 单 |
42 | OrigTime | 数据生成时间 | UTCTimestamp | 数据生成时间,原有订单请求接收时间 |
43 | PossDupFlag | 可能重复标志 | Boolean | 指示该消息序号的消息可能重复发送,取值: Y=可能重复 N=首次发送 |
44 | Price | 价格 | Price | 每股价格 |
45 | RefSeqNum | 关联消息序号 | SeqNum | 消息的关联消息序号 |
48 | SecurityID | 证券代码 | String | 证券代码,应在 SecurityIDSource 中指明代 码源 |
49 | SenderCompID | 发送方代码 | String | 发送方代码 |
50 | SenderSubID | 发送方子标识符 | String | 发送方子代码(如交易员) |
52 | SendingTime | 发送时间 | UTCTimestamp | 消息发送时间 |
54 | Side | 买卖方向 | char | 订单买卖方向,取值: |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
1=买入(Buy) 2=卖出(Sell) F=表示融入或出借 G=表示融出或借入 D=申购 E=赎回 | ||||
55 | Symbol | 证券名称 | String | 行情滚动屏上显示的证券名称 |
56 | TargetCompID | 接收方代码 | String | 接收方代码 |
57 | TargetSubID | 接收方子标识符 | String | 接收方的人员代码 |
58 | Text | 文本 | String | 自由格式文本串 |
59 | TimeInForce | 订单有效时间类型 | char | 订单有效时间类型,取值范围: 0=当日有效(GFD) 1=取消前有效(GTC) 2=At the Opening 开盘有效(OPG) 3=即时否则取消(IOC) 4=全额即时(FOK) 6=指定日期前有效(GTD) 7=At the Close 收盘有效 A=Good For Time 合适时间有效 |
60 | TransactTime | 事务时间 | UTCTimestamp | 订单或执行的创建时间 |
66 | ListID | 订单清单编号 | String | 交易客户方对批量订单的编号,日内唯一,如果跨日订单要保证唯一,可以在订单清单 编号中加入日期 |
67 | ListSeqNo | 订单清单序号 | int | 订单清单中单个订单的序号 |
68 | TotNoOrders | 全部订单数 | int | 指示在同一 ListID 下所有消息中的订单总 数,用以支持消息分割 |
73 | NoOrders | 订单个数 | NumInGroup | 订单个数 |
75 | TradeDate | 交易日期 | 订单申报日期(仅日期) | |
77 | PositionEffect | 开仓平仓 | char | 开仓/平仓,取值: C=平仓 O=开仓 |
89 | Signature | 数字签名 | data | 数字签名 |
90 | SecureDataLen | 密文数据长度 | Length | 加密数据块长度 |
91 | SecureData | 密文数据 | data | 加密数据块 |
93 | SignatureLength | 数字签名长度 | Length | 数字签名域的字节数 |
95 | RawDataLength | 无格式数据长度 | Length | 无格式数据的字节数 |
96 | RawData | 无格式数据 | data | 无格式的数据,可以是位图、WORD 文档 |
97 | PossResend | 可能重发标志 | Boolean | 指示该消息可能发送过(使用不同的消息序 号),取值: |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
Y=可能重发 N=首次发送 | ||||
98 | EncryptMethod | 加密方法 | int | 加密方法,取值: 0=无加密或其他加密方法(None/other) 1=PKCS 加密方法 (私有) 2=DES 加密方法 (ECB 模式) 3=PKCS/DES 加密方法 (私有) 4=PGP/DES 加密方法 5=PGP/DES-MD5 加密方法 6=PEM/DES-MD5 加密方法 |
99 | StopPx | 止损价格 | Price | 止损价格 |
102 | CxlRejReason | 撤单拒绝原因 | int | 撤单拒绝原因,取值: 0=撤单太晚(Too late to cancel) 1=未知订单(Unknown order) 2=自选原因(Broker / Exchange Option) 3=正在撤消(Order already in Pending Cancel or Pending Replace status) 4=不能群组撤单( Unable to process Order Mass Cancel Request) 5=订单时间不匹配(OrigOrdModTime did not match last TransactTime of order) 6=收到重复单(Duplicate ClOrdID received) 99=其他(other) |
103 | OrdRejReason | 订单拒绝原因 | int | 订单拒绝原因,取值: 0= 券商/ 交易所选项( Broker /Exchange option) 1=证券代码非法(Unknown symbol) 2=交易关闭(Exchange closed) 3=订单超过限价(Order exceeds limit) 4=订单太迟(Too late to enter) 5=未知订单(Unknown Order) 6= 重 复 订 单 ( Duplicate Order (e.g. dupe ClOrdID)) 7=与口头报单重复(Duplicate of a verbally communicated order) 8=失效订单(Stale Order) 9=Trade Along required 10=无效账户(Invalid Investor ID) 11=不支持的订单特征( Unsupported order |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
characteristic) 12=监查选择原因(Surveillence Option) 13=数量错误(Incorrect quantity) 14= 数 量 分 配 错 误 ( Incorrect allocated quantity) 15=未知账号(Unknown account(s)) 99=其他(other) 100=参与者业务单元代码非法 101=委托日期非法 102=证券停牌 103=买订单数量不是SJSXX.XXBLDW 的整数倍;或 104=卖订单数量不是 SJSXX.XXSLDW 的整数倍;或 105=订单数量超出 SJSXX.XXMBXL 的限值; 106=委托价格不是SJSXX.XXJGDW 的整数倍 107=证券账户含有非数字字符 108=非法的委托业务 109=测试环境正式用户不允许报单 110=WTCLBZ 没有填‘z’ 111=交易期间测试用户不允许报单 112=该参与者业务单元无权经营该种证券 113=该证券账户无权交易该种证券 114=该证券在当前时间不可交易 115=参与者业务单元被禁买或禁卖 116=证券账户被禁买或禁卖 117=参与者业务单元资金可用量不足 118=该委托记录标有 DELETE 标记 119=回购卖空 120=参与者业务单元卖空 121=股东卖空 122=总量超限 123=价格过高 124=价格过低 125=价格错误 126=数量非法 127=数量超限 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
128=重复申购 129=账户非法 130=转股禁止 131=回售禁止 132=非质押物 133=持股超限 134=参与者业务单元无此业务权限 135=开放式基金申购禁止 136=开放式基金赎回禁止 137=权证行权禁止 138=ETF 申购禁止 139=ETF 赎回禁止 140=ETF 全额现金替代申购禁止 141=ETF 申购时投资者篮子股份不足 142=ETF 赎回时基金篮子股份不足 143=ETF 申购现金替代比例超限 144=ETF 全额现金替代申购单个投资者超限 145=ETF 全额现金替代申购单个代办证券公司超限 146=该证券禁止融资买入 147=该证券禁止融券卖出 148=无效业务类别 149=买卖业务禁止 150=申报市价委托时因无法成交而导致交易主机生成的自动撤单记录 151=ETF 赎回时当日赎回总量超过限制 152=ETF 申购时当日申购总量超过限制 203=无效证券代码(Invalid stock id) 204=非交易时间(This stock is not in trading hours) 213=证券被挂起(Stock is suspended) 214= 该股票不参与集合竞价( Orders not accepted for this stock during open period) 215=无效账号(Invalid client account) 216= 该账号未指定在你参与者业务单元 (Your firm does not own this account) 217=账号已挂起(Account is suspended) 218=无效价格(Invalid price) 219=申报价不能为零(Price may not be 0 for |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
a limit order) 220=最小价格步长是(Minimum price Step is…) 222=价格超出范围(Price is out of range) 224=无效数量(Invalid quantity) 225=申报数量应大于 0 (Quantity must be greater than 0) 227=申报数量不符最小步长(Invalid quantity for minstep) 228=申报量应不大于( Order quantity must not be more than) 229= 超 出 限 量 ( Holding limit would be exceeded) 231=余额不足( Insufficient account balance for sell order) 234=股票持有量超出限量(Holdings limit on stock would be exceeded) 235=Unable to find base stock for rights 243=机构账号不能买卖此证券 244=S 账号不能买入 245=不能撤消指定(有卖空股票) 246=不能撤消指定(有委托) 247=不能撤消指定(公司卖空) 248=SH 中央登记结算公司不允许撤消指定 271=该账号已指定在你参与者业务单元 272=未做指定不能交易 401=无效操作员代码(Invalid trader id) 403=无效申报序号(Invalid order number) 404=他人申报(Not your order) 405=账号不同(Account differ) 406=股票不同(Stock differ) 407=买卖不同(Buy Sell differ) 1100=委托号太大(Weituo number too large) 1101=记录不匹配(Record not match) 1102=委托失败(Weituo faulted) 1000=非法状态(Invalid status) 1021=记录号出错(Rec-num error) 1022=证券账号错误(ACC error) 1023=证券代码错误(STOCK error) |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
1024=买卖标志错误(B/S error) 1025=价格错误(PRICE error) 1026=数量错误(QTY error) 1027=日期字段错误(Field Date Error) 2001=日期出错(Date error) 2002=时间出错(Time error) 2003=券商ref 字段数据错误(Brok-ref error) 2004=账号出错(Account error) 2005=买卖出错(B、S error) 2006=代码出错(Stock error) 2007=价格出错(Price error) | ||||
107 | SecurityDesc | 证券描述 | String | 证券描述信息,在 STEP 中用以描述证券的 英文简称 |
108 | HeartBtInt | 心跳间隔 | int | 心跳间隔(单位:秒) |
110 | MinQty | 最小成交数量 | Qty | 最小成交数量 |
111 | MaxFloor | 每笔限量 | Qty | 每笔限量 |
112 | TestReqID | 测试请求标识符 | String | 用于测试请求消息,将包含在回应的心跳消 息中 |
115 | OnBehalfOfCompI D | 最初发送方标识符 | String | 用于经第三方发送消息,指明原始发送方公司代码,SenderCompID 域指明第三方公司代 码 |
116 | OnBehalfOfSubID | 最初发送方子标 识符 | String | 用于经第三方发送消息,指明原始发送方交 易员代码 |
117 | QuoteID | 报价标识 | String | 报价标识 |
122 | OrigSendingTime | 原始发送时间 | UTCTimestamp | 收到重发请求后,将订单重发时,记录的原 始消息发送时间 |
123 | GapFillFlag | 缺口填补标志 | Boolean | 用于序号重设消息,指示是否填补缺口,取值: Y=序号重设-缺口填补消息,消息序号域有 效(Gap Fill message, MsgSeqNum field valid) N=序号重设-重设消息,消息序号域无效 (Sequence Reset, ignore MsgSeqNum) |
126 | ExpireTime | 订单有效时间 | UTCTimestamp | 订单有效时间 |
128 | DeliverToCompID | 最终接收方标识符 | String | 用于经第三方发送消息,指明最终接收方公 司代码,TargetCompID 域指明第三方公司代码 |
129 | DeliverToSubID | 最终接收方子标 识符 | String | 用于经第三方发送消息,指明最终接收方人 员代码 |
131 | QuoteReqID | 报价请求 ID | String | 报价请求 ID |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
132 | BidPx | 买报价 | Price | 买报价 |
133 | OfferPx | 卖报价 | Price | 卖报价 |
134 | BidSize | 买数量 | Qty | 买数量 |
135 | OfferSize | 卖数量 | Qty | 卖数量 |
136 | NoMiscFees | 杂项费用类别数 | NumInGroup | 杂项费用重复组重复次数 |
137 | MiscFeeAmt | 杂项费用金额 | Amt | 杂项费用金额 |
139 | MiscFeeType | 杂项费用类别 | String | 指明杂项费用的费用类型有效取值: 1=监管费用(Regulatory (e.g. SEC)) 2=税(Tax) 3=佣金(Local Commission) 4=经手费(Exchange Fees) 5=印花税(Stamp) 6=证管费(Levy) 7=其它(Other) 8=价格附加值(Markup) 9=消费税(Consumption Tax) 10=每次交易(Per transaction) 11=转换费(Conversion) 12=代理费(Agent) 13=过户费(TransferFee) |
140 | PrevClosePx | 昨日收盘价 | Price | 昨日收盘价 |
141 | ResetSeqNumFlag | 序号重设标志 | Boolean | 指示会话连接双方是否要重设序号 Y=Yes , 需 要 重 设 序 号 ( reset sequence numbers) N=No |
142 | SenderLocationID | 发送方方位标识 符 | String | 消息发起方人员所在地点 |
143 | TargetLocationID | 接收方方位标识 符 | String | 消息接收方人员所在地点 |
144 | OnBehalfOfLocatio nID | 最初发送方方位 标识符 | String | 用于经第三方发送消息,指明消息原始发起 方人员所在地点 |
145 | DeliverToLocationI D | 最终接收方方位 标识符 | String | 用于经第三方发送消息,指明消息最终接收 方人员所在地点 |
146 | NoRelatedSym | 证券个数 | NumInGroup | 指示重复的证券个数 |
148 | Headline | 公告标题 | String | 公告标题 可能包含中文字符,表示最多 128 个字节 |
150 | ExecType | 执行类型 | char | 执行报告的类型,与 OrdStatus 配合使用,取 值: |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
0=新(New) 3=当天完成(Done for day) 4=已撤消,沪港通业务表示港股自动撤单 (Canceled) 5=已替换(Replaced) 6=待撤消(Pending Cancel) 7=已终止(Stopped) 8=已拒绝(Rejected) 9=已延缓(Suspended) A=待处理(Pending New) B=已计算(Calculated) C=已过期(Expired) D=主动发送(Restated) E=待替换(Pending Replace) F=成交或部分成交(Trade (partial fill or fill)) G=成交修改(Trade Correct) H=成交撤消(Trade Cancel) I=订单状态(Order Status) K=交易且交收( Trade has been released to clearing) | ||||
151 | LeavesQty | 剩余数量 | Qty | 订单仍开放(可以撮合)部分的股数 |
152 | CashOrderQty | 订单现金金额 | Amt | 上证 LOF 认购金额 |
159 | AccruedInterestAmt | 应计利息 | Amt | 每百元债券应计利息 |
167 | SecurityType | 证券类别 | String | 指示证券类别,在 STEP 中未使用 |
203 | CoveredOrUncover ed | 备兑标签 | int | 备兑标签,衍生品交易填写 0=Covered,表示备兑仓 1=UnCovered,表示普通仓 |
207 | SecurityExchange | 交易场所代码 | Exchange | 符合 GB/T 23696 标准,其中: XSHG=SH 证券交易所 XSHE=SZ 证券交易所 |
225 | IssueDate | 上市日期 | UTCDate | 上市日期 |
231 | ContractMultiplier | 转换折合比例 | Percentage | 债券折合成回购标准券的比例 权证行权比例 |
263 | SubscriptionReques tType | 订阅请求类型 | char | 订阅请求类型,取值范围: 0=快照(Snapshot) 1= 快 照 + 预 定 更 新 ( Snapshot+Updates (Subscribe)) 2=忽略前快照+非预定更新(Disable previous Snapshot + Update Request (Unsubscribe)) |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
268 | NoMDEntries | 行情条目个数 | NumInGroup | 行情条目个数 |
269 | MDEntryType | 行情条目类别 | char | 行情条目类别 0=买(Bid) 1=卖(Offer) 2=最新价(Trade) 3=指数(Index Value) 4=今开盘价(Opening Price) 5=今收盘价(Closing Price) 6=结算价(Settlement Price) 7=最高价(Trading Session High Price) 8=最低价(Trading Session Low Price) |
270 | MDEntryPx | 行情条目价格 | Price | 行情条目中的价格 |
271 | MDEntrySize | 行情条目数量 | Qty | 行情条目中的数量 |
272 | MDEntryDate | 行情条目日期 | UTCDate | 行情条目中的日期 |
273 | MDEntryTime | 行情条目时间 | UTCTimeOlny | 行情条目中的时间 |
275 | MDMkt | 行情条目市场 | Exchange | 行情条目中的市场(交易所),GB/T 23696 标准,其中: XSHG=SH 证券交易所 XSHE=SZ 证券交易所 |
290 | MDEntryPositionN o | 行情条目买卖盘 序号 | int | 行情条目买卖盘序号(MDEntryType 为 0/1 时有效) |
291 | FinancialStatus | 证券状态 A=上市公司早间披露提示 B=上市公司午间披露提示 最多可同时揭示 八种状态,以空格分隔 | String | 证券状态 A=上市公司早间披露提示 B=上市公司午间披露提示 最多可同时揭示八种状态,以空格分隔 |
292 | CorporateAction | 股东大会决议 | MultipleValueStri ng | 股东大会决议,如除权除息等有效取值: A=除股息(Ex-Dividend) B=除分配(Ex-Distribution) C=除权(Ex-Rights) D=新股(New) E=除债券利息(Ex-Interest) N=正常(Normal) |
297 | QuoteStatus | 报价状态 | int | 报价状态 0=Accepted,接受 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
5=Rejected,拒绝 | ||||
300 | QuoteRejectReason | 意向申报拒绝原 因代码 | int | 意向申报拒绝原因代码,正数 |
305 | UnderlyingSecurityI DSource | 基础证券代码源 | String | 基础证券代码源,取值同 SecurityIDSource |
309 | UnderlyingSecurityI D | 基础证券/期权序 列代码 | String | 权证、ETF、其它衍生产品的基础证券代码, 参见 SecurityID (48)域 |
324 | SecurityStatusReqI D | 证券信息请求编 号 | String | 证券信息请求的唯一编号 |
325 | UnsolicitedIndicator | 主动发送标识 | Boolean | 用于表示消息是主动发送或是响应请求而被动发送 有效取值: Y=消息主动发送 N=消息被动发送 |
326 | SecurityTradingStat us | 交易状态 | int | 交易状态,取值: 2=停牌(Trading Halt) 3=恢复(Resume) 101=首日上市 102=增发新股 103=正常状态 104=上网定价发行 105=上网竞价发行 106=国债挂牌分销 |
335 | TradSesReqID | 交易盘请求编号 | String | 交易盘请求消息的唯一编号 |
336 | TradingSessionID | 交易盘标识 | String | 交易盘标识,取值示例(CLOSE、OPEN、 BREAK1 、 TRADING1 、 BREAK2 、 TRADING2) |
338 | TradSesMethod | 市场交易方法 | int | 市场交易方法 1=电子交易系统 2=喊价交易(Open Outcry) 3=双方(Two Party) |
339 | TradSesMode | 市场交易模式 | int | 市场交易模式 1=系统测试 2=模拟交易 3=产品(正常交易) |
340 | TradSesStatus | 交易盘状态 | int | 交易盘状态 0=未知状态(Unknown) 1=停盘(Halted) 2=开盘(Open) |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
3=闭盘(Closed) 4=预开盘(Pre-Open) 5=预闭盘(Pre-Close) 7=挂起(Suspend) 11=正常交易(Trading) 21=中断(Break) | ||||
341 | TradSesStartTime | 交易盘开始时间 | UTCTimestamp | 交易盘开始时间 |
342 | TradSesOpenTime | 交易盘开盘时间 | UTCTimestamp | 交易盘开盘时间 |
343 | TradSesPreCloseTi me | 交易盘预关闭时 间 | UTCTimestamp | 交易盘预关闭时间 |
344 | TradSesCloseTime | 交易盘关闭时间 | UTCTimestamp | 交易盘关闭时间 |
345 | TradSesEndTime | 交易盘结束时间 | UTCTimestamp | 交易盘结束时间 |
346 | NumberOfOrders | 行情条目笔数 | int | 行情条目笔数 |
347 | MessageEncoding | 消息编码类型 | String | 消息中编码域的字符编码类型(非 ASCII 码)取值范围: ISO-2022-JP(符合 ISO 2022 编码标准,for using JIS) EUC-JP(for using EUC) Shift_JIS(for using SJIS) UTF-8(Unicode 字符编码,for using Unicode) GBK(GBK 汉字编码标准,中国大陆、新加坡使用) BIG5(BIG5 汉字编码标准,中国港澳台使 用) |
354 | EncodedTextLen | 编码文本长度 | Length | EncodedText 域的字节数. |
355 | EncodedText | 编码文本 | data | Text 域的编码形式,使用 MessageEncoding 域指明的编码方式,如果使用,应同时使用 Text 域(用 ASCII 码) |
369 | LastMsgSeqNumPr ocessed | 最近处理消息序 号 | SeqNum | 最新一次接收并处理的消息序号,可以在每 条消息中都给出,利于对方了解情况 |
370 | OnBehalfOfSending Time | 最初发送时间 | UTCTimestamp | 已过期取消 |
371 | RefTagID | 相关域号 | int | 所引用的 Tag |
372 | RefMsgType | 相关消息类型 | String | 所引用消息的类型 |
373 | SessionRejectReaso n | 会话拒绝原因 | int | 用于会话消息拒绝,指示拒绝原因,取值: 0=存在无效的域号 1=该消息中必选的域丢失 2=该消息中出现未曾定义的域 3=未定义域号 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
4=域未赋值 5=域取值错误(范围溢出) 6=取值格式错误 7=解密错误 8=签名错误 9=公司标识符错误 10=发送时间精度错误 11=无效的消息类型 12=XML 验证错误(XML Validation error) 13=同一域多次出现(非重复组) 14=有序的域出现次序错误 15=重复组域次序错误 16=重复组重复次数错误 17=非data 数据域中出现域界定符<SOH> | ||||
378 | ExecRestatementRe ason | 重述原因 | int | 交易服务方主动发出的执行报告中给出主动执行原因,取值: 0=GT Corporate action 1=GT renewal / restatement (no corporate action) 2=口头更改(Verbal change) 3=订单重新定价(Repricing of order) 4=经纪人选择权(Broker option) 5=部分订单量拒绝,如交易所发起部分拒绝 ( Partial decline of OrderQty (e.g. exchange-initiated partial cancel)) 6= 因交易停止而取消( Cancel on Trading Halt) 7= 因系统故障而取消( Cancel on System Failure) 8=市场/交易所选择权( Market (Exchange) Option) 101=国债回购到期反向成交( Repurchase Settlement) 20106=字段取值错误 20107=不支持的消息类型 29999=其他 |
381 | GrossTradeAmt | 成交金额 | Amt | 成交金额:CumQty × AvgPx(Currency 单位) |
383 | MaxMessageSize | 最大消息长度 | Length | 单条消息的最大字节数 |
384 | NoMsgTypes | 消息类型个数 | NumInGroup | 重复组中 MsgType 的个数 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
385 | MsgDirection | 消息方向 | char | 指明消息方向取值范围: S=发送(Send) R=接收(Receive) |
386 | NoTradingSessions | 交易盘个数 | NumInGroup | 指示重复的交易盘个数 |
387 | TotalVolumeTraded | 成交数量 | Qty | 交易成交数量,成交总量 |
394 | BidType | 报价类型 | int | 报价请求的类型编码,取值范围: 1=非公开模式( “Non Disclosed”Style (e.g. US/European)) 2= 公 开 模 式 ( “Disclosed”Style (e.g. Japanese)) 3=无出价处理(No Bidding Process) |
396 | NoTradingSessions | 交易盘个数 | NumInGroup | 交易盘个数 |
423 | PriceType | 价格类型 | int | 价格类型代码,取值: 1=百分比(Percentage) 2=每单位,每股或每合约(per unit (i.e. per share or contract)) 3=固定数量,绝对值(Fixed Amount (absolute value)) 4= 折 扣 - 低 于 标 准 百 分 点 ( discount – percentage points below par) 5= 补 贴 - 高 于 标 准 百 分 点 ( premium – percentage points over par) 6= 与基准利率相差的点数( basis points relative to benchmark) 7=三个月国债期货合同和三个月境外美元期货合同的价格差(XXX price) 8=三个月国债期货合同和三个月境外美元期 货合同的收益差(XXX yield) |
434 | CxlRejResponseTo | 撤单拒绝类型 | char | 在撤单拒绝消息中,指示是撤单还是修改单 1=撤单 2=修改单 |
447 | PartyIDSource | 参与方代码源 | char | 指示 PartyID 的代码源,如果有 PartyID 则该域应出现,取值依赖于 PartyRole 1) PartyRole=“Investor ID”,股票(equity) 1=韩国投资者编号(Korean Investor ID) 2= 台湾 QFII ( Taiwanese Qualified Foreign Investor ID QFII / FID) 3= 台 湾 交 易 账 户 ( Taiwanese Trading |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
Account) 4=马来西亚中央登记号(Malaysian Central Depository (MCD) number) 5=中国投资者编号(Chinese Investor ID) 2) 其它情况/通常情况 B=SWIFT 银行代码(BIC (Bank Identification Code—Swift managed) code ) C= 通用市场 参与者标识符 ( Generally accepted market participant identifier (e.g. NASD mnemonic)) D= 私有自定义代码( Proprietary/Custom code) E=ISO 国家地区代码(ISO Country Code) F=交割机构地址(Settlement Entity Location) | ||||
448 | PartyID | 参与方代码 | String | 参与方代码,结合 PartyIDSource 和PartyRole |
452 | PartyRole | 参与方角色 | int | 指定参与方角色,取值: 1=券商(Executing Firm) 2=信用经纪人(Broker of Credit) 3=客户编号(Client ID) 4=清算公司(Clearing Firm) 5=投资者编号(Investor ID) 6=介绍公司(Introducing Firm) 7=订单输入公司(Entering Firm) 8=卖空交易出借股票公司(Locate/Lending Firm (for short-sales)) 9=基金管理人客户编号(Fund manager Client ID (for CIV)) 10=结算地(Settlement Location) 11= 订单发起交易员( Order Origination Trader) 12=交易员(Executing Trader) 13=订单发起公司(Order Origination Firm) 14=不记名清算公司(Giveup Clearing Firm) 15=相应的清算公司(Correspondent Clearing Firm) 16=执行系统(Executing System) 17=对方券商(Contra Firm) 18=对方清算公司(Contra Clearing Firm) 19=资助公司(Sponsoring Firm) |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
20=对手公司(Underlying Contra Firm) 21=清算机构(Clearing Organization) 22=交易所(Exchange) 24=客户账户(Customer Account) 25=对应清算机构( Correspondent Clearing Organization) 26=对应经纪人(Correspondent Broker) 27= 买 卖 方 , 收 发 方 ( Buyer/Seller (Receiver/Deliverer)) 28=托管人(Custodian) 29=中间机构(Intermediary) 30=代理人(Agent) 31=子托管人(Sub custodian) 32=受益人(Beneficiary) 33=当事人(Interested party) 34=监管机构(Regulatory body) 35=流动性提供者(Liquidity provider) 36=录入交易员(Entering Trader) 37=对方交易员(Contra Trader) 38=投资账户(Position Account) 39=对方投资者编号(Contra Investor ID) 40=转入券商(Transfer to Firm) 4000+=保留给连接双方自定义用 4001=本方营业部代码 4002=对方营业部代码 | ||||
453 | NoPartyIDs | 参与方个数 | NumInGroup | 参与方个数 |
454 | NoSecurityAltID | 备选证券代码个 数 | NumInGroup | 备选证券代码个数 |
455 | SecurityAltID | 备选证券代码 | String | 备选证券代码,需要与 SecurityAltIDSource 域配合使用 |
456 | SecurityAltIDSourc e | 备选证券代码源 | String | 备选证券代码源,如果有 SecurityAltID 则该域应出现, 有效取值与证券代码源(SecurityIDSource)相 同。 |
460 | Product | 证券粗类别 | int | 指示证券类别,在 STEP 中未使用 |
461 | CFICode | CFICode 证券类 别 | String | CFI 编 码 , CFI 的 编 码 应 符 合 GB/T 35964-2018 的规定 |
464 | TestMessageIndicat or | 测试标志 | Boolean | 测试标志,指明该会话是测试连接或正常运 行连接,用于防止意外 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
取值范围: Y=True N=False | ||||
487 | TradeReportTransT ype | 成交申报事务类 别 | String | 成交申报事务类别 |
516 | OrderPercent | 订单比例 | Percentage | 现未使用 |
522 | OwnerType | 订单所有者类型 | int | 订单所有者类型,取值 1=个人投资者发起 101=交易所发起 102=期权经营机构(包括其风险管理部门)发起 103=机构投资者发起 104=自营交易发起 105=流动性服务提供商发起 |
523 | PartySubID | 参与方子代码 | String | 参与方子代码 |
529 | OrderRestrictions | 订单限定 | String | 订单限定 |
537 | QuoteType | 报价类型 | int | 报价类型 |
541 | MaturityDate | 到期日期 | LocalMktDate | 购回交易日期 |
544 | CashMargin | 融资融券信用标 识 | char | 融资融券信用标识(SZ 证券交易所) |
552 | NoSides | side 个数 | NumInGroup | side 个数 |
553 | Username | 用户名 | String | 用户名或用户代码 |
554 | Password | 密码 | String | 密码 |
561 | RoundLot | 交易单位 | Qty | 该证券订单数量的单位量,即最终的订单数 量应为订单数量×交易单位 |
567 | TradSesStatusRejRe ason | 交易盘状态请求拒绝原因 | int | 交易盘状态请求拒绝原因: 1=未知或无效交易盘标识 99=其他 |
571 | TradeReportID | 客户成交申报编号 | String | 客户成交申报编号,同一交易单元一个交易日内申报的成交申报的客户成交申报编号不 得重复 |
572 | TradeReportRefID | 原客户成交申报 编号 | String | 原客户成交申报编号 |
580 | NoDates | 日期 | 转义用于期限 | |
625 | TradingSessionSubI D | 交易盘子标识 | String | 可选,用以对交易盘加以限定,取值可由相应市场自行定义: A 股市场 B 股市场 中小企业市场 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
基金市场国债市场 其他债券市场债券回购市场国际板市场 创业板市场 | ||||
627 | NoHops | 跳跃个数 | NumInGroup | 历史跳跃信息重复组,记录消息经第三方发送的历史,每次经第三方发送为一个跳跃,仅当 OnBehalfOfCompID 使用时有效,主要 用于跟踪消息的路径 |
628 | HopCompID | 跳跃公司代码 | String | 取 值 第 三 方 的 SenderCompID , 当 使 用 OnBehalfOfCompID 域时有效 |
629 | HopSendingTime | 跳跃发送时间 | UTCTimestamp | 取值用第三方的 SendingTime , 当使用 OnBehalfOfCompID 域时有效 |
630 | HopRefID | 跳跃参考消息序 号 | String | 取 值 第 三 方 的 MsgSeqNum , 当 使 用 OnBehalfOfCompID 域时有效 |
640 | Price2 | 价格 2 | Price | 报价回购业务购回价格 |
658 | QuoteRequestReject Reason | 报价拒绝原因 | int | 报价拒绝原因 |
664 | ConfirmID | 约定号 | String | 约定号 |
693 | QuoteRespID | 报价响应编号 | String | 交易所意向申报响应编号(SZ 证券交易所) |
694 | QuoteRespType | 报价响应类型 | int | 响应类型,预留,FIX 取值 1=Hit/Lift 2=Counter 3=Expired 4=Cover 5=Done Away 6=Pass |
704 | LongQty | 总股份数量 | Qty | 总股份数量,仅对沪港通港结算有效 |
708 | PosAmt | 日中剩余额度 | Amt | 日中剩余额度 |
747 | ExerciseMethod | 处理类别 | char | 期权业务处理类别 |
751 | TradeReportRejectR eason | 成交申报被拒绝 原因 | int | 成交申报被拒绝原因代码 |
762 | SecuritySubType | 证券子类别 | String | 证 券 子 类 别 , 与 CFICode ( 461 ) 或 SecurityType(167)共同描述证券类别,如果使用,应同时使用 CFICode 或SecurityType |
790 | OrdStatusReqID | 订单状态请求编 号 | String | 订单状态请求唯一标识,在返回的执行报告 消息中需包含此编号 |
802 | NoPartySubIDs | 参与方子代码个 | NumInGroup | 指示重复的参与方子代码个数 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
数 | ||||
803 | PartySubIDType | 参与方子代码类型 | int | 参与方子代码 PartySubID (523) 的类型,取值范围: 1=公司(Firm) 2=个人(Person) 3=系统(System) 4=Application 5=合法全名(Full legal name of firm) 6=通信地址,含街道地址、区域、邮政编码 ( Postal address (inclusive of street address, location, and postal code)) 7=电话号码(Phone number) 8=电子信箱(Email address) 9=Contact name 10=结算证券账号(Securities account number (for settlement instructions)) 11= 结算注册号( Registration number (for settlement instructions and confirmations)) 12= 结算注册地址( Registered address (for confirmation purposes)) 13=Regulatory status ( for confirmation purposes) 14= 结 算 注 册 名 ( Registration name (for settlement instructions)) 15=结算现金账号(Cash account number (for settlement instructions)) 16=银行代码(BIC code) 17=CSD participant/member code (e.g. Euroclear , DTC , CREST or Kassenverein number) 18=注册地址(Registered address) 19=基金/账户名(Fund/account name) 20=电报挂号(Telex number) 21=传真号(Fax number) 22=证券账户名(Securities account name) 23=现金账户名(Cash account name) 24=部门(Department) 25=Location / Desk 26=Position Account Type |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
828 | TrdType | 成交申报业务类 别 | int | 成交申报业务类别 |
829 | TrdSubType | 成交申报子业务 类别 | int | 成交申报子业务类别 |
834 | ThresholdAmount | 每日初始额度 | PriceOffset | 每日初始额度 |
845 | DiscretionPrice | 转为限价订单的 价格 | Price | 对应申报市价转限价的订单,这里填写转为 限价订单的价格 |
856 | TradeReportType | 成交申报类型 | int | 成交申报类型 |
880 | TrdMatchID | 交易编号 | String | 交易编号,跨交易日唯一 |
891 | MiscFeeBasis | 杂项费用单位 | int | 杂项费用单位,取值范围: 0=绝对值(Absolute) 1=每单位(Per unit) 2=百分比(Percentage) |
914 | AgreementID | 合同编号 | String | 约定购回业务合同编号 |
916 | StartDate | 起始日期 | LocalMktDate | 合约或事件的起始日期,如行权起始日期 |
917 | EndDate | 结束日期 | LocalMktDate | 合约或事件的结束日期,如行权结束日期 |
921 | StartCash | 初始交易金额 | Amt | 初始交易金额 |
922 | EndCash | 购回交易金额 | Amt | 购回交易金额 |
939 | TrdRptStatus | 成交申报状态 | int | 成交申报状态 |
963 | MDReportID | 行情信息编号 | int | 交易所行情信息编号 |
1003 | TradeID | 成交申报 ID | String | 交易所为成交申报分配的唯一 ID |
1020 | TradeVolume | 成交数量 | Qty | 成交数量 |
1023 | MDPriceLevel | 买卖盘档位 | int | 买卖盘档位 |
1080 | RefOrderID | 订单编号参考值 | String | 交易所订单编号参考值 |
1090 | MaxPriceLevels | 最大价格等级 | int | 最多成交价位数,最大价格等级(沪港通) 0 表示不限制成交价位数,增强现价盘(沪港通) 1 表示竞价现价盘(沪港通) 缺省值为 0 |
1093 | LotType | 订单数量类型 | char | 订单数量类型 |
1116 | NoRootPartyIDs | 参与人代码个数 | NumInGroup | 参与人代码个数 |
1117 | RootPartyID | 参与人代码 | String | 参与人代码 |
1118 | RootPartyIDSource | 参与人代码x | xxxx | 参与人代码源 |
1119 | RootPartyRole | 参与人代码角色 | int | 参与人代码角色 |
1123 | TradeHandlingInstr | 成交申报模式 | char | 成交申报模式 1=Two-Party Report,成交报告 2=One-Party report for matching,协议配对 |
1125 | OrigTradeDate | 初始交易日期 | LocalMktDate | 初始交易日期 |
1126 | OrigTradeID | 初始交易交易所 | String | 初始交易交易所成交申报编号 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
成交申报编号 | ||||
1166 | QuoteMsgID | 客户报价消息编 号 | String | 客户报价消息编号 |
1180 | ApplID | 应用标识 | String | 应用标识 |
1181 | ApplSeqNum | 消息的应用编号 | SeqNum | 消息的应用编号 |
1187 | RefreshIndicator | 更新标识 | Boolean | 用以标识消息中是否有新的行情数据 |
1300 | MarketSegmentID | 市场板块代码 | String | 市场板块代码,预留 |
1301 | MarketID | 市场代码 | Exchange | 市场代码,预留 |
1328 | RejectText | 拒绝原因说明 | String | 拒绝原因说明 |
1362 | XxXxxxx | 冻结/解冻数量个 数 | int | 冻结/解冻数量个数 |
1365 | FillQty | 冻结/解冻数量 | Qty | 冻结/解冻数量 |
1443 | FillLiquidityInd | 冻结/解冻标志 | int | 冻结/解冻标志 |
1408 | DefaultCstmApplVe rID | 本次会话中,FIX消息的缺省自定义应用版本 | String | 本次会话中,FIX 消息的缺省自定义应用版本。本标签是对 tag1137+tag1407 的进一步约束。 填写为 STEP1.20_SZ_n.xy 其中 n.xy 为数据接口规范版本,具体参见 STEP 交易数据接口规范首页中的版本号,如数据接口规范版本为(Ver1.00)时,本标签填写为:STEP1.20_SZ_1.00;如数据接口规范版本为(Ver1.01) 时, 本标签填写为: STEP1.20_SZ_1.01。 |
1472 | NewsID | News 唯一标识 | String | News 唯一标识 |
1494 | NoComplexEventTi mes | VCM 冷静期个数 | NumInGroup | VCM 冷静期个数 |
1495 | ComplexEventStart Time | 冷静期开始时间 | UTCTimeOnly | 冷静期开始时间 |
1496 | ComplexEventEndT ime | 冷静期结束时间 | UTCTimeOnly | 冷静期结束时间 |
1500 | MDStreamID | 行情流 ID | String | 行情流 ID |
1635 | MarginReqmtInqID | 查询申请编号 | String | 交易客户方(券商)查询申请内部编号 |
1643 | NoMarginAmt | 查询结果总记录 数 | int | 查询结果总记录数 |
1644 | MarginAmtType | 金额类型 | int | 金额类型,取值 22=MarginAmt 当前的取值为总金额。 101=MarginAmt 当前的取值为可用金额。 |
1645 | MarginAmt | 金额 | Amt | 金额 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
8500 | OrderEntryTime | 订单申报时间 | UTCTimestamp | 订单申报时间 |
8501 | AccountSecPosition | 持有数量 | Qty | 持有数量 |
8502 | DesignationInstructi on | 注册指令 | char | 注册指令: 1=指定交易登记 2=指定交易撤消 3=转托管 4=国债回购登记 5=国债回购注销 |
8503 | NumTrades | 成交笔数 | int | 成交笔数 |
8504 | TotalValueTraded | 成交金额 | Amt | 成交金额 |
8505 | LastPriceChange | 价格变化 | Priceoffset | 价格变化 |
8506 | TotalLongPosition | 合约持仓量 | Qty | 合约持仓量 |
8507 | IndustryClassificati on | 行业种类 | String | 左边第一位为字母,其余两位数字或空格, 详见《上市公司行业分类指引》的大类划分 |
8508 | ShareFaceValue | 股票面值 | Price | 股票面值 |
8509 | OutStandingShares | 总发行量 | Qty | 总发行量 |
8510 | PublicFloatShareQu antity | 流通股数 | Qty | 流通股数 |
8511 | PreviousYearProfitP erShare | 上年每股利润 | Price | 上年每股利润 |
8512 | CurrentYearProfitPe rShare | 本年每股利润 | Price | 本年每股利润 |
8513 | BidLotSize | 买数量单位 | Qty | 买订单数量应为此域值的整数倍 |
8514 | AskLotSize | 卖数量单位 | Qty | 卖订单数量应为此域值的整数倍 |
8515 | PriceTickSize | 价格档位 | Price | 价格的最小变动单位,买卖订单价格应为此 域值的整数倍 |
8516 | PriceLimitType | 限价参数类型 | char | ‘0’:表示集合竞价限价参数和连续竞价限价参数为价格; ‘1’:表示集合竞价限价参数和连续竞价限价 参数为比例 |
8517 | AuctionPriceLimit | 集合竞价限价参 数 | float | 集合竞价限价参数 |
8518 | ContinuousTradePri ceLimit | 连续竞价限价参 数 | float | 连续竞价限价参数 |
8519 | DailyPriceUpLimit | 涨幅价格 | Price | 为当日涨幅限制的价格上限 |
8520 | DailyPriceDownLi mit | 跌幅价格 | Price | 为当日跌幅限制的价格下限 |
8521 | SecurityProperties | 证券属性 | char | N=正常 S=ST 股 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
P=PT 股 H=SH 证券交易所证券在 SZ 证券交易所代理 T=代办转让证券 Z=SZ 证券交易所证券在SH 证券交易所代理 L=上市开放型 LOF 基金 D=上市开放低风险收益型LOF 基金 F=非交易型开放式基金 | ||||
8522 | NoIndicesParticipat ed | 所属指数数量 | NumInGroup | 所属指数数量 |
8523 | IndexinclusionIndic ator | 纳入指数计算标 志 | Boolean | Y=纳入该指数计算 N=暂停纳入该指数计算 |
8524 | PERatio1 | 市盈率一 | float | 市盈率一 |
8525 | PERatio2 | 市盈率二 | float | 市盈率二 |
8526 | NonTradingOrdTyp e | 非交易业务订单类型 | String | G=新股增发 IN=上网IPO 申购 IE=市值配售 IPO 申购 IS=老股东增发 IPO 申购 NS=市值配售放弃认购 CV=可转换债券转股 CR=可转换债券回售 EC=ETF 申购 ER=ETF 赎回 EM=ETF 保证金申购 ES=ETF 保证金补券 EZ=ETF 申购赎回资金回报 OS=开放式基金认购 OC=开放式基金申购 OR=开放式基金赎回 OL=开放式基金撤销 OD=开放式基金分红选择 OF=开放式基金份额转入 OT=开放式基金份额转出 OV=开放式基金基金转换 RI=配股行权 WE=权证行权 WW=权证创设 WC=权证注销 BD=质押券入库 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
BW=质押券出库 PS=无股份冻结质押 PF=股份质押且冻结 RP=无股份冻结解押 RF=股份解押且解冻 PO=预受要约 CO=解除预受要约 QBD=报价入库 QBW=报价出库 | ||||
8527 | DesignationTransTy pe | 注册指令类型 | int | 注册指令类型,取值范围: 1=新注册请求(New) 3=注册撤单(Cancel) |
8528 | ParticipatingIndexI D | 所属指数代码 | String | 证券所属指数的证券代码 |
8529 | VotingProposal | 投票议案号 | int | 投票议案号,取值范围:0-999 |
8530 | VotingSubProposal | 投票子议案号 | int | 投票子议案号,取值范围:0-99 |
8531 | VotingPreference | 投票意向 | char | 投票意向,取值范围: 1=同意 2=反对 3=弃权 |
8532 | DividendSelect | 分红选择方式 | char | 分红选择方式,取值范围: C=现金(领取现金分红) U=份额(转申购) |
8533 | DestSecurity | 转入基金代码 | String | 开放式基金基金转换时转入的产品代码 |
8534 | WarrantStyle | 行权方式代码 | char | 行权方式代码 A=美式权证 E=欧式权证 B=百慕大式权证 |
8535 | WarrantPutOrCall | 认购认沽标志 | char | 认购认沽标志 C=认购 P=认沽 |
8536 | WarrantClearingTyp e | 权证结算方式 | char | 权证结算方式 S=证券结算 C=现金结算 |
8537 | NAV | T-1 日基金的单 位净值 | float | T-1 日基金的单位净值 |
8538 | TradingPhaseCode | 产品所处的交易 阶段代码 | String | 产品所处的交易阶段代码 |
8539 | ValidationCode | 校验号码 | int | 校验号码(目前用于密码激活服务,对应投 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
资者在互联网投票系统中申请服务密码时系 统分配的校验号码) | ||||
8540 | ReqID | 业务请求类型 | String | BII=意向申报 BPT=定向申报 BQT=定价申报 QNE=报价回购 QCA=报价回购提前购回 RNE=初始交易 RNR=购回交易 |
8541 | TransactTimeOnly | 预留时间 | UTCTimestamp | 预留时间 |
8546 | VotingSegment | 分段统计段号 | String | 分段统计段号 |
8547 | GeneralMeetingSeq | 股东大会编码 | String | 股东大会编码 |
8560 | GateWayPBU | 交 易 网 关 登 录 PBU | String | 交易网关登录(订阅)PBU |
8561 | NoGateWayPBUs | 交 易 网 关 登 录 PBU 数量 | int | 交易网关登录(订阅)PBU 数量 |
8562 | BeginReportIndex | 分区执行报告起 始序号 | String | 分区执行报告起始序号 |
8563 | EndReportIndex | 分区执行报告最 大序号 | String | 分区执行报告最大序号 |
8902 | NoSecurity | 成份股记录数 | int | 成份股记录数 |
8903 | DeliveryQty | 股份交付数量 | Qty | 股份交付数量 |
8904 | SubstCash | 现金替代金额 | Amt | 现金替代金额 |
8906 | ExpirationType | 期限类型 | int | 期限类型 1 表示固定期限 |
8907 | ExpirationExecInst | 到期续做方式 | String | 到期续做方式,质押式报价回购填写 |
8908 | ShareProperty | 股份性质 | String | 股份性质,预留 |
8909 | BidPositionEffect | 买开平仓标志 | String | 买开平仓标志,衍生品报价填写 |
8910 | OfferPositionEffect | 卖开平仓标志 | String | 卖开平仓标志,衍生品报价填写 |
8911 | ExpirationDays | 期限 | int | 期限,单位为天数 |
8912 | TrdAckStatus | 成交申报响应状 态 | int | 成交申报响应状态 |
8934 | VersionCode | 版本代码 | String | 版本代码 |
8935 | UserNum | 用户数目 | int | 用户数目 |
10076 | ResendStatus | 重传状态 | int | 重传状态 |
10077 | ResendType | 重发种类 | int | 重发种类 |
10082 | OrigTradeReportID | 初始交易客户成 交申报编号 | String | 初始交易客户成交申报编号 |
10086 | NoMarginItems | 保证金条目个数 | int | 保证金条目个数 |
表 44 数据字典(续)
Tag | 域名 | 域中文名 | 数据类型 | 说明 |
10087 | MarginItem | 保证金条目类别 | int | 保证金条目类别 |
10088 | MarginAmount | 保证金金额 | Amt | 保证金金额 |
10089 | IMCRejectText | 国际市场互联对方市场拒绝原因 说明 | String | 国际市场互联对方市场拒绝原因说明 |
10116 | BidApplSeqNum | 买方委托索引 | SeqNum | 买方委托索引 |
10117 | OfferApplSeqNum | 卖方委托索引 | SeqNum | 卖方委托索引 |
10179 | ReportIndex | 回报记录号 | String | 回报记录号 |
10183 | PledgeeType | 质权人类型 | int | 质权人类型 |
10184 | Contactor | 联系人 | String | 联系人 可能包含中文字符,表示最多 12 个字节 |
10185 | ContactInfo | 联系信息 | String | 联系信息 可能包含中文字符,表示最多 30 个字节 建议格式为:01 移动电话(个人)、02 家 庭电话(个人)、03 工作单位电话(个人)、 04 联系电话、05 传真、06 电子邮箱 |
10201 | ChannelNo | 频道代码 | int | 频道代码 |
10202 | NoSwitch | 开关个数 | NumInGroup | 开关个数 |
10203 | SecuritySwitchType | 开关类别 | int | 开关类别 |
10204 | SecuritySwitchStatu s | 开关状态 | Boolean | 开关状态 |
10205 | EndOfChannel | 频道结束标志 | Boolean | 频道结束标志 |
10207 | StockNum | 统计量指标样本 个数 | int | 统计量指标样本个数 |
10208 | NoMDStreamID | 行情类别个数 | NumInGroup | 行情类别个数 |
10209 | RawDataFormat | 二进制数据格式 | String | 二进制数据格式,取值为 TXT、PDF、DOC 等等 |
10210 | AmountStatus | 额度状态 | char | 额度状态 1=额度不可用 2=额度可用 |
附 录 A
图A.1是证券交易数据交换协议应用环境的参考实例。
在该参考实例中证券交易数据交换协议用于市场参与者内部系统与市场参与者协议转换系统间的连接、交易所交易系统与采用STEP开放接口的市场参与者系统间的连接,同时也支持外部交易所接口系统与外部交易所的连接。
图 A.1 应用环境实例
附 录 B
B.1.1 消息序号
任何一条消息都被分配有一个消息序号来唯一标识,消息序号在每次会话过程中从 1 开始,在整个会话过程中连续递增,直到该会话过程全部结束。通过监视消息序号的连续性可以知道交换中的消息缺口,并做出反应,使得连接双方数据同步。
连接双方都明确确定相互独立的消息序号,参与连接的任何一方负责维护自己发送的消息序号,并监视接收的消息序号以保证消息缺口的发现和处理。
B.1.2 心跳
在消息交换的空闲期间,连接双方将会产生有规则的心跳消息。通过心跳消息可以监控通讯连接的状态。心跳间隔时间由会话发起人在登录时确定。在发送任何消息后,应立即重新设置心跳间隔计时器。心跳间隔时间应该得到连接双方的确认,由登录发起人给出并得到登录接受方的确认。连接双方使用相同心跳间隔时间。
B.1.3 缺口填补
由于协议是基于乐观的消息传输模式,消息在传输过程中可能存在丢失,而这种消息丢失发送方不能检测,因此接收方应负责检测消息的缺口并处理。有两种处理方法:接收方发现缺口后向发送方请求发送缺口消息及其后的所有消息;接收方发现缺口后,保存已收到消息,并向发送方请求重复发送缺口消息。
B.1.4 消息重复发送
响应一个重发请求而重复发送消息时,或者不确定对方是否收到某消息而重复发送该消息时,应在该消息内加上可能重复标志(PossDupFlag=Y)。如何处理该消息则是接收方的事情。由于当生成有此类可能重复发送的消息时,仍使用该消息的原来序号,但某些信息可能会改变,如原始时间、发送时间、正文长度、可能重复标志等,所以应重新计算校验和。
B.1.5 消息重新发送
基于应用层的可能重发,如发送的订单在相当长的时间内没有确认,或者怀疑其根本未曾发送过,可以通过设置可能重新发送标志来重新发送(PossibleResend=Y),并使用新的消息序号。接收方应用层收到该类消息后,应通过查询消息内的域(如订单编号等)来确定此前是否收到此条消息。该类消息应确定包含相同的正文数据,同样,由于某些信息可能会改变,所以应重新计算校验和。
B.1.6 消息确认
由于协议是基于乐观的消息传输模式,通过监视消息序号发现缺口,不支持对每个消息收发的确认。但大量消息收发的确认可在应用层定义。在应用层接受和拒绝是允许的,如订单的确认。
会话过程的数据交换可以这样描述:连接双方各有一个连续的消息序号随消息传送,而交易期间可以多次断开并重新连接,其断开可以是外因引起,也可以是连接双方根据系统来统一制定何时断开并重新连接。一次会话连接通常不应超过24小时,当然,如需要保持24小时以上的连接,则需要发送一条含有序号重设标志的登录消息来建立新的起始消息序号。
FIX连接分为三个部分:登录、消息交换、注销。
FIX会话包含一个或多个FIX连接,即一个FIX会话可以跨越多个登录。
B.2.2 登录
登录连接包含三个步骤:建立电信通讯连接、连接双方的确认/认证、消息传输同步的初始化。连接是连接会话的发起方与接收方建立电信通讯连接。
认证是发起方发送登录消息(Logon),接收方认证发起方身份的合法性。登录消息应包括认证的必要数据,如用户名、密码等。如果发起方身份通过认证,则接收方发送一个登录消息作回应。如果认证失败,会话接收方则在发送一个含失败说明的注销消息(Logout)后关闭连接。不过发送注销消息并非是必要的,因为在某些情况下往往会引起其他问题。在发起方收到接收方的登录消息之后即可认为会话连接建立完成。会话发起方可以紧随登录消息之后开始发送其他消息。
通常在登录后或者刚发送完测试请求消息(TestRequest)后延迟等待一段时间,然后再发送新的消息,使得连接双方能有效控制重发请求。否则可能会导致一方会针对对方的每一条新消息发出重发请求。
初始化是指在身份通过认证之后,发起方和接收方应首先同步消息序号,然后才能相互发送新的信息。同步消息序号通过消息序号域(MsgSeqNum)来确定,将登录消息里的消息序号(MsgSeqNum)与内部监控的下一个预期的消息序号进行比较就能发现消息的消息序号缺口。同样,发起方通过将接收方发送的登录消息里的消息序号(MsgSeqNum)与下一个预期的消息序号进行比较也能发现消息的缺口。
B.2.3 消息交换
在以上初始化完成之后,可以开始进行信息交换。所有有效消息的格式将在“会话消息”和“应用消息”部分中详细叙述。
B.2.4 注销
会话的正常结束是通过连接双方互相发送注销消息(Logout)完成的。若结束时没有收到回送的注销消息(Logout),则把对方视作已注销。除此之外的其它方式的会话结束视为非正常,并应按错误来处理。
在发送注销消息(Logout)之前,应发送测试请求消息(TestRequest)以要求对方的心跳信息,这有助于保证不出现消息序号缺口。
在结束会话之前,注销消息(Logout)的发起方应该等待对方回送的注销消息(Logout),这样给接收方一个填补缺口的机会。待重发请求的信息全部收到后,接收方才可发送应答的注销消息(Logout)。如果接收方在一定时间内没有答复,那么会话就可以立即中断。
B.2.5 消息恢复
以下描述了有关恢复消息的具体方法。
每一方应该维护两个消息序号,一个为了发送,一个为了接收。
当接收进来的消息序号与预期的消息序号不相符合时,需进行修正处理。但需要注意的是,如果接 收进来的是序号重设-重设(SeqReset-Reset)消息则不需要修正处理,因为处理该消息时不必考虑它的 消息序号。如果接收的消息的消息序号比预期的消息序号小,而且没有设置可能重复标志(PossDupFlag),那么表明发生了严重的错误。因此应立即结束会话,并开始进行人工干预。如果接收进来的消息序号比 预期的大,那么表明有消息被遗漏,应通过发送重发请求申请填补缺口。
当收到重发请求时,重发人可以作出的回应为以下三种之一:
a) 作为正常回应,重发人按顺序发送被请求的消息,这些消息的消息序号仍为原消息序号,并且将可能重复的标志(PossDupFlag)置位为“Y”。
b) 作为正常回应,重发人发送序号重设-缺口填补(SeqReset-GapFill)消息,可能重复标志
(PossDupFlag)置位为“Y”,以表示删除过时或多余的消息。
c) 作为非正常回应,重发人发送序号重设-重设(SeqReset-Reset)消息,可能重复的标志
(PossDupFlag)置位为“Y”,以强制消息序号同步。
在缺口填补过程中,不需要重新发送某些会话消息。取而代之的是一种特殊的序号重设-缺口填补
(SeqReset-GapFill)消息。不需要重新发送的会话消息是:登录、注销、重发请求、心跳、测试请求、序号重设-重设(SeqReset-Reset)和序号重设-缺口填补(SeqReset-GapFill)。这样会话拒绝消息便成为了唯一可能被重新发送的会话消息。
会话过程中应监视接收进来的消息以便发现由于疏漏而被对方重新发送了的会话消息(设置了可能重复标志(PossDupFlag)的)。当收到这些消息以后,处理时,只要确保它们具有消息序号的完整性即可,而忽略对它们的业务或应用的处理。
如果碰到多个连续的不需要重发的会话消息,则只需发送一个序号重设-缺口填补(SeqReset-GapFill)消息取而代之。该序号重设-缺口填补消息的消息序号是下一个预期的消息序号。序号重设-缺口填补
(SeqReset-GapFill)消息的新消息序号(NewSeqNo)为本连续会话消息段中最大消息序号+1。
在缺口被填补完成之后,交换引擎应将无序的消息暂时保存为有序的排列并按顺序对它们进行处理。这样防止出现对 n->m,n->m+1,n->m+2,…的重发请求,从而导致了大量的可能重复(PossDupFlag=‘Y’)标记。
检验消息序号的连续在会话过程管理中是必不可少的部分。不过,针对消息类型的不同,处理消息序号流的差异也就不同。表 B.1 列出了当进来的消息序号大于预期消息序号时而应采取的措施。
表 B.1 缺口填补处理措施
消息类型 | 针对消息序号错误所采取的措施 |
登录 | 永远是连接双方发送的第一条消息,用于认证和连接。如果发现登录消息中有 缺口,则应在回送登录确认消息之后立即发送重发请求。 |
注销 | 如果发现有缺口,应发送重发请求消息以重新接收所有丢失的消息,然后再发 送注销消息作为对注销请求的确认。注意严禁在有缺口情况下结束会话。并由注销的最初发起人负责结束会话,因此注销发起人有责任回应所有的重发请求。 |
重发请求 | 首先处理完对方的重发请求,随后发送自己的重发请求以填补消息序号错误而 发现的消息缺口。 |
序号重设-重设 | 可以忽略消息序号错误。因为在序号重设-重设(SeqReset-Reset)消息中的新 消息序号(NewSeqNo)强制为下一发送消息的消息序号。 |
表 B.1 缺口填补处理措施(续)
消息类型 | 针对消息序号错误所采取的措施 |
序号重设-缺口填补 | 应立即向对方发送重发请求。但是,重要的是要确保没有无意间跳过任何消息,这意味着缺口填补消息应按次序被接收到,如果次序不对,那么表示出现了非 正常的情况。 |
所有其它信息 | 执行正常的缺口填补。 |
附 录 C
C.1 会话消息概述
会话消息涉及标准的使用机制,将在以下各节中予以介绍,并定义会话消息格式。连接双方均可生成会话消息。
C.2 心跳消息(MsgType=0)
心跳消息用于监控通信连接的状况,并可确认是否接收到最后一条消息。
当连接的任何一方在([HeartBtInt]秒,心跳间隔)时间内没有发送任何数据的时候,将产生一个心跳消息并传送出去。当连接的任何一方在([HeartBtInt]+[合理传输时间])时间内都没有收到任何有关的数据的时候,将产生一个测试请求消息并传送出去。如果在此之后的([HeartBtInt]+[合理传输时间])时间内,仍没有收到心跳消息,那么可认为此次连接失败,而且需开始实施修正操作。如果 HeartBtInt被设置为零,那么将不会定期生成心跳消息。并且不论 HeartBtInt 取值多少,任何一方都可发送测试请求消息,接收方由此将强行生成心跳消息。
因对方的测试请求消息而产生的心跳(Heartbeat)消息应包括对方测试请求消息中的测试请求标识符(TestReqID)。这有利于确定该心跳消息是响应测试请求而产生的,而不是由于超时而产生的。
心跳消息格式见表 C.1。
表 C.1 心跳(Heartbeat)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=0 | |
112 | TestReqID | N | 测试请求标识符,如是对测试请求而响应的心跳消息,则应包含本 域。 |
标准消息尾 | Y |
C.3 登录消息(MsgType=A)
登录消息能证实用户是否已建立与对方系统的连接。登录消息应是在会话开始时的连接双方发送的第一个消息。
HeartBtInt 域用来声明产生心跳的时间间隔(连接双方 HeartBtInt 取相同的值)。连接双方事先约定取值,由登录发起方产生并得到接收方的确认响应。
在接收登录消息时,接收方将验证发起方身份的合法性,并且同样发出登录消息以确认连接请求已被接受。同样,确认登录消息也可以被发起方使用以验证连接了身份合法的接收方。
接收方应在收到登录消息之后,立即做开始消息处理的准备。发起方可以选择在接收到确认登录消息之前开始消息传输。不过本文件规定:在有关密钥确认的登录消息收到之后,才实施正常的消息交换。
确认登录消息还可被用于密钥相互确定。如果认为当前会话密钥强度较弱,需要更换密钥,那么就
可通过发回带有新密钥的登录消息来建议使用更强的会话密钥。当然,这仅仅对允许密钥相互确认的加密协议有意义。
登录消息还可以用来指明最大消息长度(MaxMessageSize),也可以用来指明发送和接受时所支持的消息类型。
登录消息格式见表 C.2。
表 C.2 登录(Logon)
Tag | 域名 | 必选 | 说明 | |
标准消息头 | Y | MsgType=A | ||
98 | EncryptMethod | Y | 加密方法(不可加密) | |
108 | HeartBtInt | Y | 心跳间隔 | |
95 | RawDataLength | N | 无格式数据长度,用于认证 | |
96 | RawData | N | 无格式数据,用于认证 | |
141 | ResetSeqNumFlag | N | 序号重设标志 | |
383 | MaxMessageSize | N | 最大消息长度,单条消息的最大字节数 | |
384 | NoMsgTypes | N | 消息类型个数 | |
🡪 | 372 | RefMsgType | N | 消息类型 |
🡪 | 385 | MsgDirection | N | 消息方向 |
464 | TestMessageIndicator | N | 测试标志,指明该会话是测试连接或正常运行连接,用于防止意外 | |
553 | Username | N | 用户名 | |
554 | Password | N | 密码 | |
标准消息尾 | Y |
C.4 测试请求消息(MsgType=1)
测试请求消息能强制对方发出心跳消息。测试请求消息的作用是检查对方消息序号和检查通信线路的状况。对方用带有测试请求标识符(TestReqID)的心跳作应答。
测试请求标识符(TestReqID)用以指明对方生成心跳消息是响应测试请求而非正常超时引起的。对方发送心跳消息作为应答时,将测试请求标识符(TestReqID)包括在消息中。任何字符串都可以用作测试请求标识符(TestReqID)(可使用时间戳(timestamp)。
测试请求消息格式见表 C.3。
表 C.3 测试请求(Test Request)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=1 | |
112 | TestReqID | Y | 测试请求标识符 |
标准消息尾 | Y |
C.5 重发请求消息(MsgType=2)
重发请求消息由接收方发出,目的是向发送方申请某些消息重复发送。此功能用于:发现消息序号缺口、接收方丢失了消息和在初始化过程中也可能使用。
重发请求消息能被用来请求重新发送单个消息、一系列的消息或在某一特定消息之后的所有消息。当重复发送消息的时候,发送方将考虑消息类型;如:在重复发送系列中有一条会话消息,由于过
期而不再有效,发送方不需要重复传输这条消息。因此,当发送方不重复发送某消息时,序号重设-缺口填补(SeqReset-Gap Fill)消息将被用来跳过消息。
重发请求消息有以下三种表示方式:
——请求重发一条消息:起始消息序号(BeginSeqNo)=结束消息序号(EndSeqNo)
——请求重发某个范围内的消息:起始消息序号(BeginSeqNo)=该范围中的第 1 条消息,结束消息序号(EndSeqNo)=该范围中的最后一条消息序号
——请求重发某一特定消息之后的所有的消息:起始消息序号(BeginSeqNo)=该范围中的第 1 条消息,结束消息序号(EndSeqNo)=0(无限大)
重发请求消息的格式见表 C.4。
表 C.4 重发请求(Resend Request)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=2 | |
7 | BeginSeqNo | Y | 起始消息序号 |
16 | EndSeqNo | Y | 结束消息序号 |
标准消息尾 | Y |
C.6 会话拒绝消息(MsgType=3)
当接收方收到一条消息时,由于违反了会话机制而造成不能适当地处理该消息,应该发出会话拒绝消息。如:当收到一条消息,这条消息虽成功地通过了解密、校验和和正文长度检验,但却被发现带有无效的数据(如:消息类型(MsgType)=&),此时应发出拒绝消息。
被拒绝的消息应该写入日志。
接收方应该忽略任何被歪曲,不能被解析,或数据完整性核对失败的消息。立即对下一个有效的 STEP 消息进行处理将会发现消息缺口,并且,将产生重发请求。在交换引擎内应能够识别这种无限重发循环。
产生和收到会话拒绝消息意味着出现了严重错误,可能发送方或接收方的应用存在逻辑错误。
如果要重新传输拒绝消息,那么应赋予该消息一个新的消息序号,并设置可能重发标志(PossResend)为 Y。
无论何时,应在正文域里尽可能描述拒绝原因。
如果所收到的应用层消息遵循了会话机制,那么可以开始在业务层处理该消息。如果在处理过程中,发现违反业务规则,那么应该发出业务层的“拒绝”消息。很多业务层的消息都有指定的“拒绝”消息,此时这些消息可以发挥作用。其它无对应会话拒绝消息的,则均可通过业务“拒绝”消息进行拒绝。
会话拒绝消息格式见表 C.5。
表 C.5 会话拒绝(Reject)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=3 | |
45 | RefSeqNum | Y | 关联消息序号,即被拒绝的消息序号 |
371 | RefTagID | N | 相关错误域号 |
372 | RefMsgType | N | 相关错误消息类型 |
表 C.5 会话拒绝(Reject)(续)
Tag | 域名 | 必选 | 说明 |
373 | SessionRejectReason | N | 会话拒绝原因编号 |
58 | Text | N | 文本,可解释拒绝的原因 |
354 | EncodedTextLen | N | 编码文本长度 |
355 | EncodedText | N | 编码文本(非ASCII 码) |
标准消息尾 | Y |
会话拒绝原因见表 C.6。
表 C.6 会话拒绝原因
会话拒绝原因 |
0=存在无效的域号 |
1=该消息中必选的域丢失 |
2=该消息中出现未曾定义的域 |
3=未定义域号 |
4=域未赋值 |
5=域取值错误(范围溢出) |
6=取值格式错误 |
7=解密错误 |
8=签名错误 |
9=公司标识符错误 |
10=发送时间精度错误 |
11=无效的消息类型 |
12=XML 验证错误(XML Validation error) |
13=同一域多次出现(非重复组) |
14=有序的域出现次序错误 |
15=重复组域次序错误 |
16=重复组重复次数错误 |
17=非 data 数据域中出现域界定符<SOH> |
99=其他 |
C.7 序号重设消息(MsgType=4)
C.7.1 序号重设消息由发送方发出,用于告知接收方下一个消息的消息序号。
C.7.2 序号重设消息有两种模式:
a) 序号重设-缺口填补(SeqReset-Gap Fill)。
b) 序号重设-重设(SeqReset-Reset)。序号重设-重设通常在灾难恢复情况下使用。
C.7.3 当需要支持24小时的连接并用序号重设标志(ResetSeqNumFlag)来建立新的一套消息序号的时候,关于连接双方的序号重设时间和发起方另行确定,但序号重设的发起方不同于登录过程的发起方。其处理过程如下:
a) 其中一方先发送测试请求(TestRequest)。
b) 在收到心跳消息后,确认没有消息序号缺口后,发起方发送一条登录消息,在该消息中应附有设为 Y 的序号重设标志(ResetSeqNumFlag),并且它的消息序号(MsgSeqNum)为 1。
c) 接收方则应该发送一条登录消息作回应,其中序号重设标志(ResetSeqNumFlag)为 Y,消息序号(MsgSeqNum)为 1。
d) 此后,连接双方发送出的消息的消息序号应从 2 开始。需要注意的是一旦发起方发送附有序号重设标志(ResetSeqNumFlag)的登录消息,那么接收方应服从该请求,并且,“昨天”传送的消息不可能再重发。
C.7.4 如果不遵守以上的处理规则应立即中断连接,并手工设置干预。
C.7.5 序号重设消息两种模式表示:
a) 当 GapFillFlag=Y 时,该消息为序号重设-缺口填补(SeqReset-Gap Fill)。
b) 当 GapFillFlag=N 或没有设置时,该消息为序号重设-重设(SeqReset-Reset)。序号重设消息能在下列情况下使用:
a) 在重新发送的处理过程中,发送方可以选择不发送某个消息(例如一个会话消息)。序号重设
-缺口填补(SeqReset-Gap Fill)能被用来填补那条消息。
b) 在重新发送的处理过程中,有大量的会话消息不需要发送,这样产生的消息序号缺口也可以由序号重设-缺口填补(SeqReset-Gap Fill)消息来填补。
c) 在应用层失败的情况下,有必要通过发送序号重设-重设(SeqReset-Reset)在发送和接收的连接双方进行强制消息序号同步。
C.7.6 在任何情况下,序号重设消息都指定了NewSeqNo(新的消息序号),并重设该值为下一个将被传送消息的消息序号。
C.7.7 序号重设两种模式下的注意事项:
a) 序号重设-缺口填补(SeqReset-Gap Fill)
1) 如果缺口填补标志(GapFillFlag)域被设置为 Y,那么消息序号(MsgSeqNum)域取值应遵循消息序号规则,即:序号重设-缺口填补(SeqReset-Gap Fill)消息的消息序号
(MsgSeqNum)应对应缺口范围内第一条消息的消息序号,因为对方正准备接收这个消息序号的消息。
2) 序号重设-缺口填补(SeqReset-Gap Fill)只能增加消息序号。
3) 如果收到的序号重设-缺口填补(SeqReset-Gap Fill)消息试图使下一个预期的消息序号变小,那么此消息应被作为错误消息拒绝接受。
b) 序号重设-重设(SeqReset-Reset)
1) 如果缺口填补标志(GapFillFlag)域没有出现( 或被设为 N),即为序号重设-重设
(SeqReset-Reset)消息,那么有可能是此序号重设-重设(SeqReset-Reset)消息的目的是恢复混乱顺序的消息。此时消息头里的消息序号(MsgSeqNum)应忽略。
2) 序号重设-重设(SeqReset-Reset)仅用于无法用序号重设-缺口填补(SeqReset-Gap Fill)进行恢复的灾难情况。注意使用序号重设-重设(SeqReset-Reset)可能会造成消息丢失。
c) 禁止在重发请求的正常回应中使用序号重设-重设(SeqReset-Reset)(应使用序号重设-缺口填补(SeqReset-Gap Fill))。
C.7.8 序号重设消息格式见表C.7。
表 C.7 序号重设(Sequence Reset)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=4 | |
123 | GapFillFlag | N | 缺口填补标志 |
36 | NewSeqNo | Y | 新消息序号 |
标准消息尾 | Y |
C.8 注销消息(MsgType=5)
注销消息是发起或确认会话终止的消息。未经注销消息交换而断开连接,一律视为非正常的断开。在最后终止会话之前,注销的发起人应该等待连接对方确认注销消息。这使得连接对方有了实施任
何有必要的缺口填补的机会。如果连接对方没有在适当的时间间隔里作回应,那么会话就可以终止。注销发起人在发送注销消息之后不应发送任何消息,除非接收到连接对方发出的重发请求消息。注销消息格式见表 C.8。
表 C.8 注销(Logout)
Tag | 域名 | 必选 | 说明 |
标准消息头 | Y | MsgType=5 | |
58 | Text | N | 文本 |
354 | EncodedTextLen | N | 编码文本长度 |
355 | EncodedText | N | 编码文本(非ASCII 码) |
标准消息尾 | Y |
附 录 D
例如定义一重复组,见表D.1。
表D.1 重复表实例
454 | NoSecurityAltID | N | 备选证券代码个数 | |
🡪 | 455 | SecurityAltID | N | 🡪 |
🡪 | 456 | SecurityAltIDSource | N | 🡪 |
可能的应用表示为:
454=2<SOH>455=600600<SOH>456=101<SOH>455=000001<SOH>456=102<SOH>
附 录 E
以下为计算校验和的代码段:
char *GenerateCheckSum( char *buf, long bufLen )
{
static char tmpBuf[ 4 ]; long idx;
unsigned int cks;
for( idx = 0L, cks = 0; idx < bufLen; cks += (unsigned int)buf[ idx++ ] ); sprintf( tmpBuf, “%03d”, (unsigned int)( cks % 256 ) );
return( tmpBuf );
}