编辑: 人间点评 | 2019-08-01 |
0.10 版 目录
1 FIX 概论说明.2 1.1 FIX 资料型态说明.2 1.2 电文格式说明.2 1.3 讯息表头及表尾内容.3 1.3.1 讯息表头.3 1.3.2 讯息表尾.5
2 期交所 FIX 讯息类别.6 2.1 期货商发动的 FIX 讯息类别
6 2.2 期交所发动的 FIX 讯息类别
6 2.3 一般讯息流程.7
3 本电文与 FIX 4.
2、FIX 4.4 标准主要差异.9 3.1 新增 ExecType(150)类别.9 3.2 委托或成交回报相关栏位使用说明
9 3.3 使用者自定栏位与讯息.10 3.4 委托回报无 Pending 讯息.12 3.5 使用 FIX Email MsgType:C 进行额交易
12 4 连线子系统
19 4.1 登入讯息(Logon)MsgType:A
19 4.2 登出讯息(Logout)MsgType:5.20 4.3 心跳讯息(Heartbeat)MsgType:0.21 4.4 测试请求讯息(Test Request)MsgType:1
21 4.5 重发请求讯息(Resend Request)MsgType:2
22 4.6 Session 拒绝讯息(Reject session-level)MsgType:3
22 4.7 序号重设讯息(Sequence Reset Gap Fill)MsgType:4.23
5 线上交易子系统
25 5.1 业务检核失败讯息(Business Message Reject) MsgType:j
25 5.2 单式委托输入讯息(New Order Single)MsgType:D.26 5.3 复式委托输入讯息(New Order Multileg)MsgType:AB 或UAB.28 5.4 委托删单请求讯息(Order Cancel Request)MsgType:F.32 5.5 单式委托改量(价)请求讯息(Order Cancel Replace Request)MsgType:G
34 5.6 复式委托改量(价)请求讯息(Multileg Order Cancel Replace Request)MsgType:AC
1 或UAC
37 5.7 委托状态查询讯息(Order Status Request)MsgType:H
40 5.8 委托/成交接收回报讯息(Execution Report)MsgType:8
41 5.9 删单改量(价)错误回报讯息(Order Cancel Reject)MsgType:9.48 5.10 询价输入讯息(Quote Request)MsgType:R
50 5.11 询价接收回报讯息(Quote Request Report)MsgType:U080
50 5.12 询价输入错误回报讯息(Quote Request Reject)MsgType:AG 或UAG.51 5.13 报价输入讯息(Quote)MsgType:S.52 5.14 报价删单讯息(Quote Cancel)MsgType:Z
54 5.15 报价查询讯息(Quote Status Request)MsgType:a.56 5.16 报价查询回报讯息(Quote Status Report)MsgType:AI 或UAI.57 5.17 交易状态查询讯息(Trading Session Status Request)MsgType:g.58 5.18 交易状态回报讯息(Trading Session Status)MsgType:h.58 5.19 通知与回覆讯息( Email)MsgType:C
59 6 讯息代码
60 6.1 Session 拒绝讯息错误讯息代码.60 6.2 应用层错误讯息代码.60
2 1 FIX 概论说明 台湾期货交易所(以下简称期交所)为能与国际市场接轨,并增加客户 在期货与选择权市场的交易方式,提供依国际标准 Financial Information eXchange (FIX) Protocol (简称 FIX 协定)之TCP/IP 交易网路,且采用非同步 方式来进行委托与回报,为使期货商与期交所之业务能顺利的透过 FIX 协定 连线方式进行委托与回报业务,期交所系参考 FIX 4.4 与FIX4.2 的标准(详 细内容可至 http://www.fixprotocol.org/specifications/下载),特订定本规作为 期货商电脑 FIX 连线施行之依. 1.1 FIX 资料型态说明 FIX 协定之资料型态系由几个类型所组成.除 data 类型外,其他类 型均是以 ASCII 码表示. data 类型并无固定的格式, data 类型的栏位 会紧接在一个表示资料长度栏位之后,资料长度的值会代表此 data 类型 资料所使用到的位元数. UTCTimestamp 资料类型是以格林威治标准时间显示(GMT)其格式为: YYYYMMDD-HH:MM:SS (秒) 或YYYYMMDD-HH:MM:SS.sss (毫秒). A. YYYYMMDD-HH:MM:SS 其有效值为:YYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60. B. 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 (显示毫秒). 1.2 电文格式说明 每一笔讯息皆可分为三个部分.第一部份为讯息表头,每一笔讯息都必需有 这个部份,包括了讯息种类、讯息送出时间及讯息发送单位代号与讯息接收单位 代号…等必要栏位.第二部份为讯息本文,系视业务之需要放置相关资料栏位. 第三部份为讯息表尾 , 每一笔讯息都有一笔长度为
3 位元的检查码(CheckSum). 讯息表头的前三个栏位的位置与讯息表尾最后一个栏位的位置是不能改变,而其 他讯息栏位顺序则可任意置换.
3 1.3 讯息表头及表尾内容 1.3.1讯息表头 每一笔 Session 或应用讯息皆有一个讯息表头,该讯息表头指明讯息类型、 讯息本文长度、发送目的地的单位代号、讯息序号、发送起始单位代号和发送时 间. 讯息表头格式如下表: FIX4.2 Tag FIX4.4 Tag Field Name Data Type FIX Req'
d TAIFEX Req'
d
8 8 BeginString String Y Y
9 9 BodyLength String Y Y
35 35 MsgType String Y Y
49 49 SenderCompID String Y Y
50 50 SenderSubID String N Y
56 56 TargetCompID String Y Y
34 34 MsgSeqNum int Y Y
43 43 PossDupFlag Boolean N N
97 97 PossResend Boolean N N
52 52 SendingTime UTCTimestamp Y Y
122 122 OrigSendingTime UTCTimestamp N N
57 57 TargetSubID String N Y 1. 讯息的第一个栏位是不可加密的 BeginString 其值请填 FIX.4.4 或FIX.4.2. 2. 第二个栏位是 BodyLength,其值是计算讯息长度栏位后至 CheckSum 栏 位之前的位元数总长度.
4 3. 讯息的第三个栏位为 MsgType,此栏位是用来说明此讯息的类型. 4. SenderCompID 填FcmNo(申请线路表单上之期货商代号)+SessionID.例如: SenderCompID 填F987000001 表示 FcmNo 为F987000 , 而SessionID 为001. 5. SenderSubID 填此次委托之期货商代号.例如:F987123 6. TargetCompID 填TAIFEX_XX . 若XX 为10 表选择权正常交易时段(第2码为 0),若XX 为20 表期货正常交易时段(第2码为 0),若XX 为11 表 选择权盘后交易时段(第2码为 1),若XX 为21 表期货盘后交易时段(第2码为 1). 7. 任何一笔讯息都会被分配一笔讯息序号(MsgSeqNum)来做为唯一之识别 使用,连线双方之讯息序号系为相互独立,参与连线的任何一方负责维 护自己发送的讯息序号,并监控接收的讯息序号以确保讯息的正确性. 而在初次建立连线过程时,讯息序号预设会从
1 开始编号,直到全部结 束为止,整个委托或回报过程中双方之讯息序号皆会是连续递增.经过 监控讯息序号的连续性来知道委托或回报中的讯息是否有缺少,如讯息 序号不如预期即须做出适当之处理,来让连线双方的资料无异. 8. 讯息表头有两个栏位可用於讯息重发: A. 当重复发送讯息并使用原来的讯息序号来发送时,将可能重复发送 标志(PossDupFlag)设置为 Y. B. 当重新发送讯息但使用新的讯息序号来发送时,将可能重新发送标 志(PossResend)设置为 Y. 9. SendingTime 为GMT Format 之讯息传送时间. 10. 如有重新送讯息发生时,则OrigSendingTime 需填原始讯息时间. 11. TargetSubID:交易盘别(1 码),期货商进行交易时请填
4、结算会员接收 回报时请填 8. 例1: 期货商分公司F123161透过总公司F123160申请的FIX连线(FIX Socket ID 为001),进行期货市场选择权作业,当期货商下单时,SenderCompID表示FIX连线的期商,SenderSubID则表示实际接受客户委托下单的期货 商. Tag Direction SenderCompI D (tag 49) SenderSubID (tag 50) TargetCompI D (tag 56) TargetSubID (tag 57) FCM ? TAIFEX F123160001 F123161 TAIFEX_10
4 TAIFEX ? FCM TAIFEX_10
4 F123160001 F123161 例2:
5 期货商总公司F123160的投资人使用总公司申请的FIX连线(FIX Socket ID为002),进行期货市场期货作业,当期货商下单时,SenderCompID表示FIX连线的期商,SenderSubID则表示实际接受客户委托下单的期货 商. Tag Direction SenderCompI D (tag 49) SenderSubID (tag 50) TargetCompI D (tag 56) TargetSubID (tag 57) FCM? TAIFEX F123160002 F123160 TAIFEX_20
4 TAIFEX ? FCM TAIFEX_20
4 F123160002 F123160 1.3.2讯息表尾 讯息表尾格式如下表: FIX4.2 Tag FIX4.4 Tag Field Name Data Type FIX Req'
d TAIFEX Req'
d
10 10 CheckSum String Y Y CheckSum 是把每个字元的二进位元值,从最前端栏位开始相加,一直加到 CheckSum 栏位之前的值,然后取除以
256 之余数. CheckSum 的sample code 如下: 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 );
}
6 2 期交所 FIX 讯息类别 2.1 期货商发动的 FIX 讯息类别 讯息类别 MsgType (tag 35) 讯息名称 备注 4.2 4.4 Session Level Message A Logon 登入讯息
0 Heartbeat 心跳讯息
1 Test Request 测试请求讯息
2 Resend Request 重送请求讯息
3 Reject C Session Level Session 拒绝讯息
4 Sequence Reset 序号重设讯息
5 Logout 登出讯息 Application Message D New Order Single 单式委托输入讯息 G Order Cancel/Replace Request 单式委托改量(价)请求讯息 F Order Cancel Request 委托删单请求讯息 H Order Status Request 委托状态查询讯息 UAB AB New Order Multileg 复式委托输入讯息 UAC AC Multileg Order Cancel Replace Request 复式委托改量(价)请求讯息 R Quote Request 询价输入讯息 S Quote 报价输入讯息 Z Quote Cancel 报价删单讯息 a Quote Status Request 报价查询讯息 g Trading Session Status Request 交易状态查询讯息 C Email 通知与回覆讯息 2.2 期交所发动的 FIX 讯息类别
7 讯息类别 MsgType (Tag 35) 讯息名称 备注 4.2 4.4 Session Level Message A Logon 登入讯息
0 Heartbeat 心跳讯息
1 Test Request 测试请求讯息
2 Resend Request 重送请求讯息
3 Reject C Session Level Session 拒绝讯息
4 Sequence Reset 序号重设讯息
5 Logout 登出讯息 Application Message
8 Execution Report 委托成交接收回报讯息
9 Order Cancel Reject 删单改量(价)错误回报讯息 j Business Message Reject 业务检核失败讯息 U080 Quote Request Report 询价接收回报讯息 UAG AG Quote Request Reject 询价输入错误回报讯息 UAI AI Quote Status Report 报价查询回报讯息 h Trading Session Status 交易状态回报讯息 C Email 通知与回覆讯息 2.3 一般讯息流程 本章节说明期货商传送讯息至期货交易所后,预期各项回覆讯息的流程 说明. 期货商 期货交易所 备注 Logon 登入讯息 Logon 登入成功 Logout 登入失败 New Order Single 单式委托输入讯息 Reject C Session FIX tag 验证错误 Execution Report: ExecType(150) =
8 OrdStatus (39) =
8 ExecTransType(20) =
0 委托失败
8 期货商 期货交易所 备注 Execution Report: ExecType(150) =
0 OrdStatus (39) =
0 ExecTransType(20) =
0 委托成功 Execution Report: ExecType(150) =F OrdStatus (39) =
1 ExecTransType(20) =
0 部份委托成功 Order Cancel/Replace Request 单式委托改量(价)委 托讯息 Reject C Session FIX tag 验证错误 Cancel Reject 改量失败 Execution Report: ExecType(150) =
5 OrdStatus (39) =
0 ExecTransType(20) =
0 改量成功 Order Cancel Request 委托删单请求讯息 Reject C Session FIX tag 验证错误 Cancel Reject 删单失败 Execution Report: ExecType(150) =
4 OrdStatus (39) =
4 ExecTransType(20) =
0 删单成功 Order Status Request 委托状态查询讯息 Reject C Session FIX tag 验证错误 Execution Report: ExecTransType(20) =
3 查询成功 Receive Exection Report 成交回报接收 Execution Report: ExecType(150) =
1 OrdStatus (39) =
2 ExecTransType(20) =
0 全部成交 期货交易所主动传送 Business Message Reject 业务检核失败讯息 期货交易所未提供该项讯息类 别Logout 登出讯息 Logout 登出
9 3 本电文与 FIX 4.
2、FIX 4.4 标准主要差异 交易所目前采用 FIX 4.
2、FIX 4.4 为主要标准,但仍有些许部分,为与 现行交易系统配合 , 需修改调整符合现况 , 在此说明本规与 FIX 4.2 、 FIX 4.4 间之主要差异,使证券、期货商能更迅速的建置相关系统. 3.1 新增 ExecType(150)类别 在委托回报/成交回报(Execution Report)中,需依栏位 OrdStatus(39)与ExecType(150)来判断此次回报的目的,并新增 ExecType(150)类别:n (新增 并成交)、M(改价)、m(改价)、I(查询),各栏位值说明如下: ExecType(150........