Taiwan Corporation

FIX/FAST Market Information Transmission System Connection Operating Handbook

Prepared by the Stock Exchange Corporation

March 2018

Version: V2.14

1

Version Update Log

Code Descriptions Version Date 1 Initial version 1.0 2012/3/14 Addition of Password Changing Rules for Data Users. 2 1.1 2012/09/06 Addition of Resend Message transmission format for Data Users. Addition of a List of Newly Compiled TWSE 3 1.2 2012/11/01 Index Codes. Following the rules change of securities codification, amending convertible corporate 4 1.3 2013/01/08 bonds, exchangeable corporate bonds, and exchangeable financial bonds codes. Addition of “TWSE RA Taiwan Employment Creation 99 Return Index” and “TWSE RA 5 1.4 2013/04/15 Taiwan Corporate Operation 101 Return Index” in Appendix 5 Newly added "FORMOSA Stock Index Code" in Appendix 4, newly added "FORMOSA Stock 6 Total Return Index Code" in Appendix 5, newly 1.5 2014/03/10 added "FORMOSA Stock Index Taiwan TWSE Taiwan Index Series Code” in Appendix 6. Newly added "TWSE High Compensation 100 Index Code" in Appendix 4, Newly added "TWSE High Compensation 100 Total Return 7 1.6 2014/6/17 Index Code" in Appendix 5, Newly added "TWSE High Compensation 100 Index TWSE Taiwan Index Series Code" in Appendix 6. With the revision of "Principles for the Assignment of Ticker Symbols in the Republic of China Securities Markets," Open-end Callable 8 Bull and Bear Contracts, Leveraged ETFs, 1.7 2014/07/18 Inverse ETFs, and Futures Trust ETFs are added to Appendix: Principles for Assignment of Ticker Symbols. FIX/FAST 9 2.0 2015/3/19 FIX/FAST Revised version 1. Adjust the definition and description of the d1 format of the "Trading Currency Code" field. 2. Review Appendix 4 "Rules for Assignment of 10 2.1 2015/06/01 Ticker Symbols", to remove "Foreign Stocks". 3. Update Appendix 6 "Index Code Table" and "Appendix 8 "Newly Compiled Taiwan Index

2

Code Table", to add "TWSE Electronics Daily Return Leveraged 2X Index" and "TWSE Electronics Daily Return Inverse -1X Index". 4. Add Appendix 9 "Trading Currency Code Table" 5. Revise f1 format, add definition and description of Entire Market Halt. 1. Review X1/X2 format, add the disclosure for the price and volume of transactions before opening and just before closing in preliminary calculation, and the price and volume in five ticks for buying and selling. 11 2. Update Appendix 6 "Index Code Table", 2.2 2015/06/29 Appendix 7 "Return Index Code Table" and Appendix 8 "Newly Complied Taiwan Index Table" to add " TWSE Corporate Governance 100 Index ", and remove " Taiwan RAFI® CO101 Index ". 1. Update Appendix 8 “Newly Compiled Taiwan Index Code Table”, add “TAIEX Total Daily Return Leveraged 2X Index” and “TAIEX Total Daily Return Inversed -1X Index”. 2. Review d1 format, add fields such as eligible for day-trading flag (可現股當沖註記), exempt short 12 2.3 2015/10/19 selling flag (豁免平盤下融券賣出註記), exempt securities lending flag (豁免平盤下借券賣出註 記), matching time, price upper limit, price lower limit and expiration date. 3. Adjust X1/X2 format, add disclosure open and close flag. Update Appendix 6 “Index Code Table”, Appendix 7 “Return Index Code Table” and 13 Appendix 8 “Newly Compiled Taiwan Index 2.4 2015/12/28 Code Table” and add “TWSE TAIEX Small-Cap 300 Sub-Index”. 14 Update Appendix 8 “Newly Compiled Taiwan 2.5 2016/01/28

3

Index Code Table” and add "Finance Leveraged 2X Index " and “Finance Inverse-1X Index.” Coordinating with the securities abbreviation bytes expansion program, update the Field 15 2.6 2016/06/27 Description of the "Full Name of Call (Put) Warrant at the TWSE (d2)" Due to adding a new Index of “TIP TAIEX+ 16 Dividend Appreciation 150 Index”, appendix 6, 7, 2.7 2016/7/11 and 8 will be updated accordingly. Due to adding a new Index of “TIP TAIEX+ 17 Dividend Appreciation 100 Index”, appendix 6, 7, 2.8 2016/8/1 and 8 will be updated accordingly. Due to adding 6 new Indices of “TIP TAIEX+ Blue Chip 30 Index”, ” TIP TAIEX+ Industry Elite 30 Index”, ” TIP TAIEX+ IT Elite 30 Index”, ” TIP TAIEX+ Low Volatility Select 30 18 Index”, ” TIP TAIEX+ Low Beta 100 Index”, 2.9 2016/12/16 and ” TIP TAIEX+ Blue Chip 30 Index Daily Return Inverse -1X Index”, appendix 6, 7, and 8 of TWSE-Compiled Index Table will be updated accordingly. (Implemented in January 2017) Due to adding 6 new Indices of “TIP TAIEX+ Small/Mid-Cap Select 50 Index”, and ” TIP TAIEX+ Small/Mid-Cap Alpha Momentum 50 19 2.10 2017/03/27 Index”, appendix 6, 7, and 8 of TWSE-Compiled Index Table are updated accordingly. (Implemented in March 2017) Due to adding 2 new Indices of “TIP TAIEX+ Customized High Dividend Minimum Variance Index”, and ” TIP Taiwan Market Biotechnology and Medical Care Index”, appendix E of 20 2.11 2017/07/10&31 TWSE-Compiled Index Table are updated accordingly (Implemented in July 10, 2017). Due to ETF product code expansion, revising appendix B of Stock Coding Rules (Implemented in

4

July 31, 2017). Due to adding a new Index of “TIP TAIEX+ Industry Elite 30 Index Daily Return Inverse -1X Index”, 21 appendix E of TWSE-Compiled Index Table is 2.12 2017/09/11 updated accordingly (Implemented in September 11, 2017). Due to adding 2 new Indices of “TIP Customized Domestic Demand High Yield Total Return Index”, and “FTSE4Good TIP Taiwan ESG Total Return 22 2.13 2017/12/11 & 18 Index” in the file spec., appendix 6, 7, and 8 are updated accordingly (Implemented in December 12, 2017). Due to “Principles for Assignment of Ticker Symbols in the Republic of China Securities Markets” revised, the appendix B was updated accordingly. 1.Certificates of payment for shares, certificates of entitlement to new shares, certificates of entitlement 23 2.14 2017/3/12 to new shares from convertible bonds: A single English letter, from X to Z, is added following the four-digit ticker symbol. 2.Preferred stocks: An English letter, from A to W, is added following the four-digit ticker symbol.

5

Table of Content ONE. Introduction ...... 7 1. FIX Transmission Protocol Standard ...... 7 2. FAST Transmission Protocol Standard ...... 8 3. FIX/FAST Market Information Transmission System Connection Operating Handbook 8 TWO. Basic Architecture ...... 8 1. Connection Network Architecture ...... 8 2.System Architecture ...... 9 THREE. Information transmission Protocol ...... 10 1. Network Transmission Protocol ...... 10 2. Socket Communication Processing Layer (Socket Level Message, SLM) ...... 10 3. Data Protocol of data format and body - FIX (Financial Information eXchange) 13 FOUR. Real-Time DAP-RT Information Transmission Service ...... 15 FIVE. DAP-RB Market Information Resend Service ...... 16 1. Logon Operation Processes ...... 16 2. Search Resend Operation Process ...... 18 3. Logout Operation Process ...... 19 4. Heartbeat Message Transmission Process ...... 20 SIX. Description of Message Format and Template ...... 22 1 Standard Header and Trailer ...... 22 2. Management Message ...... 25 3. Application Message: ...... 37 SEVEN Appendixes ...... 84 1. Supplementary Descriptions and Examples of Display ...... 84 2. Alternative Site Backup Plan ...... 88 3. Industry Category Code Table ...... 89 4. Rules for Assignment of the Ticker Symbols ...... 90 5. Securities Category Code Table ...... 94 6. Index Code Table ...... 95 7. Return Index Code Table ...... 100 9. Trading Currency Code Table ...... 104 10. TWSE FIX/FAST Message Transmission Table ...... 106

6

ONE. Introduction

In light of the worldwide development of security trade programs and the trend of using high-speed quotes for online ordering, the Taiwan Stock Exchange Corporation (hereinafter referred to as “TWSE”) seeks to install the “FIX/FAST Market Information Transmission System” applicable to the transmission of real-time securities market information and related statistics to upgrade the efficiency and quality of data transmission. Application message format and template adopt the FIX transmission protocol message format and the binary compression technology of FAST (FIX

Adapted for STreaming) message-oriented data flow, with code compilation of high compression ratio and processing efficiency characteristics. This is expected to link the global securities trade market with the FIX/FAST transmission protocol standard.

This Connection Operating Handbook is prepared with reference to the FIX 4.4 (or updated version) standard and the FAST 1.1 subject to revision and announcement by the TWSE where necessary.

Reference Links: 1. FIX Transmission Protocol Standard http://www.fixprotocol.org/specifications/ The FIX Protocol Standard Version 4.4 The FIX Protocol Standard Version 5.0 Service Pack 2 User can register at the website and download the complete document files of FIX specification in various versions. http://www.fixprotocol.org/FIXimate3.0/?language=en&version=FIX.4.4 http://fixwiki.fixprotocol.org/fixwiki/FIXwiki http://btobits.com/fixopaedia/index.html

7

2. FAST Transmission Protocol Standard http://www.fixprotocol.org/fastspec FAST Specification Version 1.1 Referenced sample program codes for compression and decompression: Java : http://www.openfast.org/ C++ : http://www.quickfast.org/ Information Source: http://en.wikipedia.org/wiki/FAST_protocol

3. FIX/FAST Market Information Transmission System Connection Operating Handbook Users may download the FIX/FAST Information Transmission System Connection Operating Handbook from the official website of TWSE at http://www.twse.com.tw. Please visit the home page of the website, and click to select “Products and Services”  “Service for Securities Dealers”  “Computer Department/Operation Department”

TWO. Basic Architecture 1. Connection Network Architecture

TWSE TCP/IP securities trade information network architecture uses the private line implemented with NGSDH as its backbone from Chung Hwa Telecom. The connections between the User end (Securities dealers/Information service suppliers) and the TWSE are setup with point-to-point static IP address, featuring high efficiency and security. Physical lines applied by the information user end are using TCP/IP Transmission Protocol.

Users may make inquiry for the TWSE TCP/IP securities trade informaiton network, FIX/FAST information lines application, change procedure and application form at the official website of the TWSE. Please visit the official website at http://www.twse.com.tw and enter the home page, then click to select “Products and Services”  “Service for securities dealers”  “Computer Department/Operation Department” to inquire the related documents and description.

8

2.System Architecture

MDS Information ProcessingMD ProgramS 資訊處理程式

DAP-RT DAP-RT DAP-RB DAP-RB

Multicast Multicast TCP TCP

資Information訊用戶 User端 End

(1). MDS (Market Data Server, hereinafter referred to as "MDS"):

This TWSE end server is responsible for compressing market information into FAST

data stream, and transmitting to each DAP-RT and DAP-RB. (2). DAP-RT (Data Access Point Real-Time, hereinafter referred as "DAP")

The TWSE end server is responsible for receiving compressed FAST market data

from the MDS end, using Multicast transmission protocol, and transmitting to each

information user end in real-time.

9

(3). DAP-RB (Data Access Point Re-Build, hereinafter referred as "DAR"):

The TWSE end server is responsible for receiving and storing MDS end compressed

FAST market information, and transmitting non-real-time FAST market information

with TCP connection upon resend demand initiated by the information user.

THREE. Information transmission Protocol 1. Network Transmission Protocol Transmission protocol of the “FIX/FAST Information Transmission System" is mainly divided into Real-time and Resend transmissions. Real-time market data transmission uses Multicast mode in order to transmit application message promptly and in real-time. Resend information searched by the user end uses TCP/IP connection transmission in order to maintain data integrity. 2. Socket Communication Processing Layer (Socket Level Message, SLM) The Socket Communication Processing Layer falls between AP and communication network, and is responsible for adding the Header, Trailer delimiters and Preamble Message to the FAST data for conversion to Socket Communication Processing Layer Message. Socket Layer on the receiving end must remove the Header, Trailer delimiters of SLM and decompress the FAST data back to FIX message format in accordance with the content of Preamble Message.

10

SLM is shown as the following table: Delimiter Message Length Preamble Message delimiter 2 bytes 2 bytes 6 bytes n bytes 2 bytes Management Message: Length of Sequene # + represented in FIX format. 0xFEFE (Preamble + Control flag + 0xEFEF Application Message: message) Template ID represented in FAST format.

(1). Head delimiter

Start delimiter, with length of 2 bytes, with hex decimal value of 0xFEFE. (2). Message Length

Length of message, including 6 bytes of Preamble Message and variable length of

FIX or FAST Message. (3). Preamble

Preamble Message, with length of 6 bytes, can be divided into three fields. (4). Sequence number:

Application message sequence number, 4 bytes in length, indicates the sequence

number of the application message, in order to ensure the continuity of the

application message. Receiving end can use this sequence number field to determine

whether if there are skipped numbers during the receiving process. (5). Control flag

Control flag of application message, with length of 1 byte, using 8 bits to represent

each different function as described in the following: 1. Backup center flag:

Backup center flag is marked with bit 7, if it is 1, then it represents that the message

is from the TWSE primary center, if it is 0, then it is from backup center.

11

2. Last message flag:

Last message flag is marked with bit 6, if it is 1, then it represents that the protocol

message has transmitted the last message. 3. Reset:

Reset flag is marked with bit 5, if it is 1, reprents the receiving end must follow the

FAST Specification to execute reset action prior to decode the FAST message, then

proceed with decoding action, if it is 0, then it is not required to execute a reset. 4. Other:

bit 4 to bit 0 are reserved flags, all 0s in transmission.

Functions are represented as following: 7(MSB) 6 5 4 3 2 1 0(LSB) BackUp EOD Reset NULL NULL NULL NULL NULL Last Backup center Reset message Reserved Reserved Reserved Reserved Reserved flag flag flag (6). Template ID

Application message template number, with length of 1 byte, indicates the

template number of the application message, information user can use this number

to correspond the FAST application message format. If the number is 255 (Hex

0xff), it represents the FIX management message format. (7). message

message, with variable length, is in FAST application message format or FIX

management message format. 12

(8). Tail delimiter

Tail delimiter, with length of 2 bytes, has a hex decimal value of 0xEFEF. 3. Data Protocol of data format and body - FIX (Financial Information eXchange) FIX Data format in this specification is not fixed in length, all data is formatted and transmitted following the specification; to enable both transmission and receiving ends can decipher the format accurately. (1). Fixed Data Field

FIX data format includes a Standard Header, Body and Standard Trailer. Each data

is formed by a series of =, separated by SOH. First three fields in

front of Header and Trailer tag of the FIX Data Format are fixed fields, with

position of other fields may not be fixed, as illustrated in the following table. Data Field Code Field Name Data Type Data Type (Tag no.) Standard Header BeginString String Y 8 String Y 9 BodyLength String Y 35 MsgType Sequence of the other fields of the Header may not be fixed. Body Sequence of the fields entered in accordance with actual situation may not be fixed. Standard Trailer 10 CheckSum String Y

(2). Delimiter: (ASCII “SOH”, Hex 0x01)

All fields in the standard FIX data are separated by delimiters. Use ASCII "SOH"

(Hex value is 0x01, represents in this specification) as delimiter, all data

starts with “8=FIX.4.4”, ended with “10=n”.

This specification uses FAST data streaming compression technology. When FAST

data is compiled, FIX Tag and ASCII "SOH" delimiter will not be transmitted. If 13

the receiving end needs to decode back to FIX format, it is necessary to add FIX

Tag and ASCII "SOH" delimiter on its own.

Sample format is as following:

8=FIX.4.49=8935=A34=149=MDSC56=XT

AI52=2014062710134115098=0108=1095=5

>553=BRK01554=12345610=101 (3). Data Sequence Numbers

FIX Header data sequence numbers in the specification use continuous increment

number starts from 1, to be used in continuous checking during data transmission.

Please refer to "Data format and Template Description" chapters for detail

specifications. (4). Field Priority

Each FIX data includes necessary, unnecessary, and conditional fields (necessity is

determined by the existence and value of the other fields). (5). User Defined Fields

TWSE uses the FIX4.4 defined fields as the standard. If the FIX4.4 defined fields

cannot satisfy the business requirement of the system, TWSE shall define User

Defined Fields in reference to the FIX 5.0 (or updated version). All other data fields

shall be defined with Tag greater than 10000.

14

FOUR. Real-Time DAP-RT Information Transmission Service FIX/FAST real-time market information transmission service provides three transmission channels to transmit stocks, warrants and other (application messages of instruments other than stocks and warrants) market information. The real-time market information transmission service uses non-connection-oriented Multicast protocol, one-way information transmission from the TWSE end to the client. Since there may be data loss and non-sequential transmission conditions taking place during transmission with the Multicast protocol, each transmission channel will transmit identical market information through dual Multicast groups. Information user end shall decide receiving information through one or two Multicast groups based on their own requirements.

Stocks Real-Time Warrants Real-Time Other Real-Time 股票Information即時資 訊 權證Information即時資 訊 其它Information即時資 訊

Dual Dual Dual multicast IP multicast IP multicast IP

Information資訊用 User戶 End

In case no information is transmitted within a time interval (10 seconds), the TWSE will send a Heartbeat message as a reference message for the information user end to evaluate the market information network transmission condition. If the User end does not receive any message during the HeartBtInt + reasonable transmission time (20% HeartBtInt) means the market information transmission network may have abnormal connection conditions, but does not mean the TWSE end market information system failure. It will depend on the network condition during that time or the user end receiving capability.

15

資User訊用 en戶d 端 證TWSE交所 end端

(一(1)) 證The 交TWSE所 End端 will在 心send跳 a Heartbeat訊息 間message隔時 in case間 no(1 informati0秒)內on is沒 有傳 transmitted within the Heartbeat Message Interval Time (10 seconds). 送任何資料的時候,會主動傳送一筆心跳訊息。

(二(2)) 若If the資 user訊 end用 does戶 not端 receive在心 any跳 message訊息 during間隔 the時 Heartbeat間內 Message都沒 有收 Interval Time means the market information transmission network may have abnormal connection. 到任何訊息時,表示 行情傳輸網路可能發生連線異常。

FIVE. DAP-RB Market Information Resend Service FIX/FAST information resend service is to process the search resend request from the user end, to provide the user end's designated market information format and defined scope of search, and to perform resend operation of all market information of stocks, warrants and other instruments (other application messages of instruments other than stocks and warrants). Search resend uses TCP connection to transmit non-real-time market information. There are a total of three sessions for the connection, and each uses network communication port 18001, 18002 and 18003 to transmit all market information of stocks, warrants and other instruments. When the information end-user is making connection, it is necessary to use network communication port 18001, 18002 and 18003 to receive all market information of stocks, warrants and other instruments. Market information resend operations include: Logon, Information Resend, Logout operations, and Heartbeat message transmission.

1. Logon Operation Processes Establish FIX/FAST connection including establishing communication layer connection and logon verification. (1) Establish communication layer connection between the user end and the TWSE end. (2) After the line is connected, the user end enters logon message to the TWSE end for verification. (3) Logon Verification: 1. Verification Passed: verified both the user end account and the password are

16

correct, and the TWSE end replies the logon message to the user end. After receiving the successfully logon message from the TWSE end, the user end may start search resend service. 2. Verification Failed: TWSE replies the logon with Reject-Session Level message to the user end and disconnects the connection. The number of logon error will be accumulated after each logon failure and connection will be disconnected. (4) If no logon message is entered within 60 seconds after the connection, the TWSE end will automatically disconnect the connection, and then the user end needs to re-establish the connection. (5) After accumulated logon error reached 10 times on the day, the TWSE end will stop processing logon operations, the user end shall contact the TWSE end to understand the abnormal connection condition, and request a system reset.

User end 資訊用戶端 證TWSE交所 end端 (1) Establish communication layer connection between the user end and the TWSE(一 end.)資 訊用戶端與證交所端建立通訊層連線

(2)( After二) the連 line線 is connected,後資訊 the information用戶端 uUser傳 送end enters登入 logon訊 息 message into the給 TWSE證 end交 for所 verification.端進行 驗證。

(3) (1.三 Verification) 1.驗 Passed:證成 Replies功: the回 logon覆 message.登入 訊息

(3) 2. Verification(三) Failed: 2.驗 Replies證失 Reject敗-Session:回 Level覆 message and disconnects the connection 登入拒絕訊息並中斷連線。

(4) If no logon message is entered within 60 seconds after the connection, the (四TWSE)資 end訊 will用 automatically戶端若連 disconnect線後 the超 connection.過60秒 未傳送登入訊 息,證交所端主動中斷連線

(5) After accumulated logon error reached 10 times on the day, the TWSE end (五will)當 stop日 processing累計錯 logon誤 operation.次數到 達10次後,證交所端將不 再受理登入作業

17

2. Search Resend Operation Process (1) After completion of logon, end-user initiates transmission of Search Resend Request Message. (2) Resend Request Inspection 1. After the TWSE completed Resend Request Inspection, it starts transmitting resend market information. 2. In case the user end transmitted non-specification defined Search Resend Message, the TWSE will reply with Search Resend Rejection message, the number of logon error will be accumulated and the connection will be disconnected. (3) After accumulated logon error count reached 10 for the day, the TWSE end will stop processing logon operation, the user end shall contact the TWSE end to understand the abnormal connection condition, and request a system reset. 資訊User用 end戶 端 TWSE證交 end所 端

(一(1))資 The訊 user用 end戶 transmits端傳 Search送 Resend查詢 Request回補 Message需求 訊息

(2) 1. After the TWSE completed(二) Resend1. 證Request交 Inspection,所端 starts transmitting resend 完成market回 information.補需 求檢核後,開始傳送回補行情資訊。

(二(2) )2. In2 case.若 the 資user 訊end 用transmitted戶端 non若-specification傳送非 defined規範 Management定義之 管理 訊Message,息,證 the 交TWSE所 will端 reply會 with回 覆Search查 Resend詢回 Rejection補拒 message,絕訊 accumulates息,累 計 the number of errors and disconnects the connection 錯誤次數並中斷連線。

(三(3)) 當 日After累 the計 accumulated錯誤次 logon數 error到 達count1 reached0次後 10 times,證 for 交the day,所 the端 將不 TWSE end will stop processing logon operation. 再受理登入作業

18

3. Logout Operation Process

The TWSE will process logout operation at the information service closing time or upon

the user end's initiation of logout message. (1) At the information service closing time, the TWSE will transmit logout message to the user end. 1. User end replies with logout message to complete logout process. 2. In case the user end failed to reply with logout message for more than 60 seconds, the TWSE will disconnect connection. (2) User end's initiation of logout message to the TWSE end. 1. TWSE end will reply with logout message to the user end, and then disconnect connection. 資訊User用 end戶 端 TWSE證交 end所 端 (一(1)) At資 the訊 information服務 service時間 closing截 time,止 the時 TWSE,證 will 交transmit所 logout端會 message傳 送to the登 user出 訊 end. 息給資訊用戶端。

((1)一 1. ) User1 end.資 replies訊 with用 logout戶 message端回 to complete覆登 logout出 process.訊息 , 完成登出作業。

(1) 2. In case the user end failed to reply with logout message more than 60 seconds, the (一) 2.若資訊用TWSE戶 will端 disconnect超過 connection.60秒未 回覆登出訊息 ,證交所端主動中斷連線。

(2) User end's initiation of logout message to the TWSE end. (二)資訊用戶主動傳送登出訊息給證交所端

(二) (2)1. 1.證 TWSE交 end所 will端 reply會 with回 logout覆 登message出 to訊 the 息user 給end, 資then 訊disconnect.用戶 端後 ,中斷連線。

19

4. Heartbeat Message Transmission Process

Heartbeat Messages are transmitted bi-directionally between the TWSE end and the user

end to confirm the connections on both sides. If both of the TWSE end and the user end did

not receive any message during the HeartBtInt + reasonable transmission time (20%

HeartBtInt), the connection can be considered failed, and the connection can be disconnected

and reconnected again. (1) If the TWSE end does not transmit any messages after the HeartBtInt (10 seconds), a Heartbeat message will be initiated. (2) If the user end does not receive any message during the Heartbeat Message Interval Time, which means the connection may be failed and the connection can be disconnected and reconnected again. (3) Whether it is during the data transmission period, the user end is required to transmit a Heartbeat message during the Heartbeat Message Interval Time (10 seconds). (4) If the TWSE end does not receive any message during the Heartbeat Message Interval Time, it is determined that the information company has disconnected connection or offline. The TWSE will stop transmitting information and disconnect the connection.

20

資User訊 用end 戶 端 TWSE證交 end所 端 (一(1) )If 證the TWSE交所 end 端does 在not transmit心跳 any訊 message息間 after隔 the 時HeartBtInt間( (1010 seconds),秒)內 a Heartbeat沒有 傳 message will be initiated. 送任何資料的時候,會主動傳送一筆心跳訊息。

(2) If the user end does not receive any messages during the Heartbeat Message Interval Time, which that (二)means若 the資 connection訊用 may戶 be have端 failed在 心and the跳 connection訊息 can間 be disconnected隔時間 and reconnected內都沒 again.有 收 到任何訊息時,即表示此次連線可能中斷。

(3) The user end is required to transmit a Heartbeat message during the Heartbeat Message (三)資訊用戶端需Interval在心 Time跳 (10訊 seconds).息間 隔時間(10秒)內主 動傳送一筆心跳訊息。

(四(4)) If若 the TWSE證交 end所 does端 not 在receive心 any跳 message訊息 during間 the隔 Heartbeat時間 Message內都 Interval沒 有Time,收 it 到 is determined that the information company has disconnected connection or offline. The TWSE will 任何stop 訊transmi息tting時 information,即 判and disconnect定資訊 the connection.公司已 斷線或離線,證交 所端將停止傳送資料並中斷連線。

21

SIX. Description of Message Format and Template 1 Standard Header and Trailer

Each message shall contain the standard format of a header and trailer. If the message

format transmitted by the end-user is not supported by the definition in this handbook, the

TWSE end will reply with the reject session (Reject-Session Level). (1) Standard Header FIX Message Tag Field Name Req Description 8 BeginString Y Beginning String of the Message 9 BodyLength Y Length of the Message 35 MsgType Y Type of the Message 34 MsgSeqNum Y Sequence Number of the Message 49 SenderCompID Y Sender Code 52 SendingTime Y Transmission Time of the Message

56 TargetCompID Y Receiver Code 1. BeginString: It must be the first field of the message, please always enter FIX.4.4 for the value. 2. BodyLength: It must the second field of the message; the value is the total bit length from the field of BodyLength to the field before CheckSum. 3. MsgType: It must be the third field of the message for explaining the type of FIX message.

4. MsgSeqNum: Message sequence number of the application message, starts with 1. 5. SenderCompID: Sender Code. TWSE = XTAI; User end = MDSC (In accordance with ISO 10383 Market Identifier Code standard)

22

6. SendingTime: Transmission Time of the Message. The format is standard UTC format.

Year/month/day-hour:minute:second:millisecond (YYYYMMDD-HH:MM:SS.sss).

Valid value YYYY=0000-9999,MM=01-12,DD=01-31,HH=00-59,SS=00-59,

sss=000-999. 7. TargetCompID: Receiver Code.

TWSE = XTAI; User end = MDSC

(In accordance with ISO 10383 Market Identifier Code standard)

FAST Template

Tag Field Name Field Type Field Encoding Remarks

8 BeginString String constant FIX.4.4

9 BodyLength uInt32 -

35 MsgType String constant

34 MsgSeqNum uInt32 -

49 SenderCompID String default XTAI

52 SendingTime uInt64 -

56 TargetCompID String default MDSC

23

(2.) Standard Trailer FIX Message Tag Field Name Req Description 10 CheckSum Y Checking Code 1. Checksum Checking Function The equation of this code is adding the binary value of each field starting from the field of BeginString to the field before CheckSum. The sum total will be divided by 256 and the remainder is entered in the field of CheckSum as the value for confirmation. This value is converted to a 3-digit ASCII number for visibility in transmission. For example, when the checking mechanism of CheckSum gives the value of 274, it will be divided by 256. The remainder will be converted to a 3-digit ASCII number, 018. This value will be entered in the field of CheckSum. The Equation for the calculation of the confirmation code is shown below: 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 ); }

FAST Template

Tag Field Name Field Type Field Encoding Remarks

10 CheckSum String -

24

2. Management Message The Management message is the message transmitted for the TWSE end and the user end to perform Search Resend operation, including Messages of Logon, Heartbeat, Session Rejection, Logout, Search Resend Request and Search Resend Rejection. Management Message is transmitted by the TCP Connection, the TWSE end and the user end must following the SLM and FIX format specification, and the SLM Template ID is fixed at 255. Each Management Message FIX format is as following: (1) Logon Message This message is initiated by the user end and replied by the TWSE end. When the user end needs to establish connection, it must transmit the logon message to the TWSE end. The TWSE end will use the message to verify the user name and password in order to authenticate the ID of the user. Once verified, the TWSE end will reply Logon message to the user end for confirmation, and starts the information Resend operation.

FIX Message (MsgType 35=A) Tag Field Name Req Description Standard Header

98 EncryptMethod Y Encryption Method Setup 108 HeartBtInt Y Heartbeat Message Interval Time (Unit: Second) 553 Username N User End Username 554 Password N User End Password Standard Trailer 1. MsgType: A=Logon. 2. EncryptMethod: 0 = No Encryption currently. 3. HeartBtIt: 10 = Heartbeat Interval Time default setup is 10 seconds. During the period that no Application Message is transmitted, the TWSE will transmit one-way HeartBeat Message with default value of every 10 seconds. This value cannot be adjusted by the user end. 4. Username: Verification Code. This field is necessary when the message is sent from the user end. The password

25

shall be authenticated against the Username to ensure the line is used by the right information user end. This field will not be transmitted when the TWSE end replies the Logon Message,. 5. Password: Password to authenticate the Username This field is necessary when the message is sent from the user end. The password shall be authenticated against the Username to ensure the line is used by the right information user end.

This field will not be transmitted when the TWSE end replies the Logon Message,

FIX Message Example - User end Logon Message 8=FIX.4.4 9=82 35=A 34=1 49=MDSC 56=XTAI 52=20150109140413860 98=0 108=10 553=T0001L0 554=123456 10=006 - TWSE Reply Message

8=FIX.4.4 9=59 35=A 34=1 49=XTAI 56=MDSC 52=20150109140317336 98=0 108=10 10=142

26

(2) Session Reject Message

When the TWSE end receives a message that the field is not verified or not defined

in the Specification, a Session Reject Message will be transmitted and the

connection will be disconnected.

FIX Message (MsgType 35=3) Tag Field Name Req Description

Standard Header 45 RefSeqNum Y The Rejected Message Sequence Number 373 SessionRejectReason N Error Code 58 Text N Reasons of the Error Standard Trailer 1. MsgType: 3 = Session Rejected Message 2. RefSeqNum: Rejected Message Sequence Number. 3. RefMsgType: Rejected Message Type. 4. SessionRejectReason: Error Code. 00 = S-001-UNAUTHORIZED CLIENT ACCESS 5. Text: Description of the Reasons of the Error (no specific length).

FIX Message Example - Session Reject Message

8=FIX.4.4 9=96 35=3 34=1 49=XTAI 56=MDSC 52=20150109140957972 45=1 373=00

58=S-001-UNAUTHORIZED CLIENT ACCESS. 10=247

27

(3) Heartbeat Message

Heartbeat Message is used to confirm whether the connection is normal between

the TWSE end and the user end.

During the period the Message Research Resend, if the TWSE end did not transmit

any data within the Heartbeat Message Interval (10 seconds), the TWSE end will

initiate a Heartbeat Message to the user end to ensure the connection is normal. If the

user end did not receive any data within the Heartbeat Message Interval, meaning the

connection may have failed, the user end can initiate the connection to be

disconnected and reconnected again.

Whether it is during the data transmission period, the user end is required to

transmit a Heartbeat message during the Heartbeat Message Interval Time (10

seconds), to assure the TWSE that the user end is still connected. If the TWSE end

does not receive any message during the Heartbeat Message Interval Time, it is

determined that the information company has disconnected connection or offline.

The TWSE will stop transmitting information and disconnect the connection

FIX Message (MsgType 35=0) Tag Field Name Req Description Standard Header Standard Trailer

1. MsgType:0 = Heartbeat

FIX Message Example - The TWSE end transmits Heartbeat Message 8=FIX.4.4 9=47 35=0 34=3 49=XTAI 56=MDSC 52=20150109140336342 10=99 - The user end transmits Heartbeat Message 28

8=FIX.4.4 9=47 35=0 34=2 49=MDSC 56=XTAI 52=20150109140423392 10=100

29

(4) Logout Message

The TWSE end will automatically transmit a Logout Message to the user end

when the transmission of market information ends. Upon receiving the Logout

Message, the user end shall reply to confirm the Logout Message so that the TWSE

can confirm the connection has ended normally.

If the TWSE does not receive the Logout Message from the user end after

Timeout period (default value at 60 seconds), it will automatically disconnect the

connection.

FIX Message (MsgType 35=5) Tag Field Name Req Description Standard Header 58 Text Y Description of Logout Message Standard Trailer 1. MsgType: 5 = Logout Message 2. Text: Description of Logout Message (no specific length). User end Logout = LOGOUT. Resend Operation Ended = OUT OF SERVICE TIME. Resend Operation Interrupted = FORCE TO LOGOUT.

FIX Message Example - The user end transmits Logout Message 8=FIX.4.4 9=58 35=5 34=3 49=MDSC 56=XTAI 52=20150109140500957 58=BYE-BYE 10=007 - The TWSE replies to Logout Message 8=FIX.4.4 9=58 35=5 34=3 49=XTAI 56=MDSC 52=20150109140404425 58=LOGOUT. 10=27

30

(5) Resend Request Message

After completion of Logon, the user end is required to initiate transmission of

Resend Request Message. The TWSE will transmit the Resend market information

in accordance with the Message content after verified the message without error.

Otherwise, the number of errors will be accumulated and the connection will be

disconnected.

FIX Message (MsgType 35=V) Tag Field Name Req Description Standard Header 262 MDReqID Y Resend Request Code 1180 AppID Y AP Transmission Code for Resend Request AP Transmission Beginning Sequence Number for 1182 ApplBegSeqNum Y Resend Request AP Transmission Ending Sequence Number for 1183 ApplEndSeqNum Y Resend Request Standard Trailer 1. MsgType:V = Market Data Request. 2. MDReqID: Resend Request Code Coding Rule: YYYYMMDD-HH:MM:SS.sss (The time point of transmitting the request.) 3. AppID: AP Transmission Code for Resend Request 4. ApplBegSeqNum: AP Transmission Beginning Sequence Number for Resend Request. This Sequence Number must be greater than 0, smaller or equal to 99999999. 5. ApplEndSeqNum: AP Transmission Ending Sequence Number for Resend Request. This Sequence Number must be greater than 0, smaller or equal to 99999999, and,

31

greater than or equal to ApplBegSeqNum, and congruent with the conditions of App1EndSeqNum-App1BegSeqNum smaller than or equal to 5000. FIX Message Example - The user end transmits Resend Request Message 8=FIX.4.4 9=99 35=V 34=2 49=MDSC 56=XTAI 52=20150109140625524 262=20150109-14:06:25.524 1180=X1 1182=1 1183=10000 10=096

(6) Resend Completed Message

After completed the Resend operation, the TWSE will initiate the transmission of the

Resend Completed Message. The TWSE will transmit the Resend market

information in accordance with the Message content after verified the message

without error. Otherwise, the number of errors will accumulated and the connection

will be disconnected.

FIX Message(MsgType 35=8) Tag Field Name Req Description Standard Header

58 Text Y Resend Completed Message 262 MDReqID Y Resend Request Code Standard Trailer 1. MsgType:8 = Market Data Request. 2. Text: Resend Completed Message (no specific length). The transmitted Effective records replied by the TWSE to the user end. Message is as following: Effective records: (Effective records) 3. MDRegID: Resend Request Code. Coding Rule: YYYYMMDD-HH:MM:SS.sss (The time point of transmitting the request.)

32

FIX Message Example - The TWSE transmits Resend Completed Message 8=FIX.4.4 9=100 35=8 34=2 49=XTAI 56=MDSC 52=20150109140530287 58=Effective records:10000 262=20150109-14:06:25.524 10=19

(7) Resend Rejected Message

In case the user end transmitted non-specification defined Search Resend

Message, the TWSE will reply with Resend Rejection Message, the number of errors

will be accumulated and the connection will be disconnected. FIX Message (MsgType 35=Y) Tag Field Name Req Description Standard Header 262 MDReqID Y Resend Request Reject Code 281 MDReqRejReason Y Reason for Resend Request Reject 58 Text Y Description of the Error Message Standard Trailer 1. MsgType: Y = Market Data Request Reject. 2. MDReqID: Resend Request Reject Code Coding Rule: YYYYMMDD-HH:MM:SS.sss (The time point of transmitting the request.) 3. MDReqRejReason: Reason for Resend Request Reject. 00: Invalid requested AppID. 01: Invalid requested App1BegSeqNum. 02: Invalid requested App1EndSeqNum. 03: Invalid requested sequence range. 4. Text: Description of the Error Message. 00: A-000-INVALID REQUESTED ApplID. 01: A-001-INVALID REQUESTED ApplBeginSeqNum. 02: A-002-INVALID REQUESTED ApplEndSeqNum.

33

03: A-003-INVALID REQUESTED SEQUENCE RANGE.

FIX Message Example - Invalid requested AppID 8=FIX.4.4 9=115 35=Y 34=2 49=XTAI 56=MDSC 52=20150109140428674 262=20150109-14:05:25.215 281=00 58=A-000-INVALID REQUESTED ApplID. 10=19

- Invalid requested App1BegSeqNum 8=FIX.4.4 9=124 35=Y 34=2 49=XTAI 56=MDSC 52=20150109140439201 262=20150109-14:05:35.713 281=01 58=A-001-INVALID REQUESTED ApplBeginSeqNum. 10=190 - Invalid requested App1EndSeqNum 8=FIX.4.4 9=122 35=Y 34=2 49=XTAI 56=MDSC 52=20150109140455715 262=20150109-14:05:52.249 281=02 58=A-002-INVALID REQUESTED ApplEndSeqNum. 10=251 - Invalid requested sequence range 8=FIX.4.4 9=123 35=Y 34=2 49=XTAI 56=MDSC 52=20150109140524193 262=20150109-14:06:20.735 281=03 58=A-003-INVALID REQUESTED SEQUENCE RANGE. 10=224

(8) Password Change Message

After completion of Logon operation, the user end can transmit Password

Change Message. TWSE will transmit Password Change Reply Message in

accordance with the Message content, after verification by the TWSE end without

error, to notify the user end whether the Password Change is successful or failed. If

the password change is successful, the new password will be effective on the next

trade day.

34

FIX Message (MsgType 35= BE) Tag Field Name Req Description Standard Header 923 UserRequestID Y Change Request Code 553 Username Y User End Username 554 Password N User End Password before Change 925 New password N User End Password after Change

Standard Trailer 1. MsgType: BE = User Request. 2. UserRequestID: Change Request Code. Coding Rule: YYYYMMDD-HH:MM:SS.sss (The time point of transmitting the request.) 3. Username: User End Username. 4. Password: User End Password before Change. 5. New password: User End Password after Change. The length of the new password must between 8 and 16 characters, the password cannot have the symbol '=' and SOH. FIX Message Example - Change Password Message 8=FIX.4.4 9=108 35=BE 34=2 49=MDSC 56=XTAI 52=20150109140715788 923=20150109-14:07:15.788 553=T0001L0 554=123456 925=654321 10=156

35

(9) Change Password Reply Message

The TWSE will reply Change Password Reply Message after the user end

Change Password Request is verified by the TWSE without error, and will notify the

user end whether the Password Change is successful or failed. If the password

change is successful, the new password will be effective on the next trade day. FIX Message (MsgType 35= BF) Tag Field Name Req Description

Standard Header 923 UserRequestID Y Change Request Code 553 Username Y User End Username 927 UserStatusText N Description of Change Results Standard Trailer 1. MsgType: BF = User Response. 2. UserRequestID: Change Request Code Coding Rule: YYYYMMDD-HH:MM:SS.sss (The time point of transmitting the request.) 3. Username: User End Username. 4. UserStatusText: Description of Change Result Password Change Successful, New Password will be effective on next trade day = New password valid from next trade day. Password Change Failed = CLIENT ACCESS DENIED.

FIX Message Example - Change Password Successful Message 8=FIX.4.4 9=130 35=BF 34=2 49=XTAI 56=MDSC 52=20150109140619240 553=T0001L0 923=20150109-14:07:15.788 927=New password valid from next trade day. 10=162 - Change Password Failed Message 8=FIX.4.4 9=112 35=BF 34=2 49=XTAI 56=MDSC 52=20150109140735338 553=T0001L0 923=20150109-14:08:31.885 927=CLIENT ACCESS DENIED. 10=210

36

3. Application Message: Application Message is the FAST market information format message transmitted on-way from the TWSE end by the methods of UDP and TCP. Message body include SLM (Socket Communication Layer Message, please refer to the description in Chapter 3 Section 2) and FAST Message. The FIX format of each Application Message is following:

(1) Basic Data of Individual Common Stocks at the TWSE (d1) FIX Message Tag Field Name Req Description

Standard Header 1180 ApplID Y Types of Application Message 1350 ApplLastSeqNum N Total Securities Transmission Record 48 SecurityID N Securities Code 22 SecurityIDSource N Codification of Securities 292 CorporateAction N New Listing Note 1227 ProductComplex N Industry Category

1151 SecurityGroup N Security Category 55 Symbol N Securities Abbreviation in Chinese 1148 LowLimitPrice N Down Stop Price 1149 HighLimitPrice N Up Stop Price 1150 TradingReferencePrice N Today's Trading Reference Price

870 NoInstrAttrib N Securities Data Nested Loop Number → 871 InstrAttribType N Securities Data Category → 872 InstrAttribValue N Securities Data Body

561 RoundLot N Trading Lots 15 Currency N Trading Currency Code 107 SecurityDesc N Face Value not $10 Note Standard Trailer Y

37

38

1. MsgType: Message Category

d=Security Definition. 2. ApplID: Application Message Category.

d1= Basic Data of Individual Common Stocks at TWSE 3. ApplLastSeqNum: Total Securities Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message. 4. SecurityID: Securities Code.

The Securities Code assigned by the TWSE. 5. SecurityIDSource: Codification of Securities.

8 = Assigned by the TWSE under the principle of Securities coding of TWSE,

Republic of China, and are uniformly assigned by the TWSE. 6. CorporateAction: New Listing Flag.

D=New Listing. 7. ProductComples: Industry Category.

Please refer to Industry Code Table in the Appendix. 8. Securities Category.

Refer to Securities Category Code in the Appendix. 9. Symbol: Securities Abbreviation in Chinese. 10. LowLimitPrice: Down Stop Price

Special definition: treasury bonds = last trading price

The TWSE transmits the integer value; the receiving end shall restore back to

floating point value of 2 digits after decimal point. 11. HighLimitPrice: Up Stop Price

39

Special definition: treasury bonds = last trading price

The TWSE transmits the integer value; the receiving end shall restore back to

floating point value of 2 digits after decimal point. 12. TradingReferencePrice: Today's Trading Reference Price.

Special definition: treasury bonds = 0 (No limit up/down price)

The TWSE transmits the integer value; the receiving end shall restore back to

floating point value of 2 digits after decimal point. 13. NoInstruAttrib: Securities Data Nested Loop Number (1) InstrAttribType: Securities Data Category 101=exercise volume of warrants on the last business day 102=cancellation volume of warrants on the last business day. 103=balance of warrant issuance volume 104=warrant exercise ratio 105=warrant exercise price 106=warrant price upper limit 107=warrant price lower limit 108=warrant expiration date 201=eligible for day-trading flag (可現股當沖註記) 202=exempt short selling flag (豁免平盤下融券賣出註記) 203=exempt securities lending flag (豁免平盤下借券賣出註記) 204=matching time (2) InstrAttribValue: Securities Data Body. Body of data corresponded to the securities data categories. A. InstrAttribType =101/102/103: The unit of this field is in 1000 warrant units. B. InstrAttribType =104 The record of the quantity of shares can be converted per 1000 warrant units. For index warrant, this is the record of the latest information on the quantity of shares can be converted per 1000 warrant units. The TWSE transmits the integer value; the receiving end shall restore

40

back to floating point value of 2 digits after decimal point. For example, if the underlying asset of a warrant is common stocks, and if the value of this field is 1000.00, it means the exercise ratio of 1000 warrant units is 1. If the value of this field is 300.00, it means the exercise ratio of each warrant units is 0.3. If the underlying asset of the warrant is index and if the value of this field is 1000.00, it means the exercise ratio of each warrant unit is 1. If the value of this field is 500.00, it means the exercise ratio of each warrant unit is 0.5.

41

C. InstrAttribType=105: This shows the latest exercise price of the warrant. For index warrant, this shows the information on the latest exercise index of warrant. The TWSE transmits the integer value; the receiving end shall restore back to floating point value of 2 digits after decimal point. D. InstrAttribType=106: Display the price upper limit of the warrant. The TWSE transmits the integer value; the receiving end shall restore back to floating point value of 2 digits after decimal point. E. InstrAttribType=107: Display the price lower limit of the warrant. The TWSE transmits the integer value; the receiving end shall restore back to floating point value of 2 digits after decimal point. F. InstrAttribType=108: Display the expiration date of the warrant in AD calendar; the format in this field is YYYYMMDD. G. InstrAttribType=201: Eligible for day-trading flag (可現股當沖註記). The recorded value is “A”, “B” or SPACE; the default value is SPACE. A=securities eligible for buy-first, sell-later or sell-first, buy-later day-trading (可先買後賣或先賣後買現股當沖證券) B=securities eligible for buy-first, sell-later day-trading (可先買後賣 現股當沖證券) SPACE=securities ineligible for day-trading (不可現股當沖證券) H. InstrAttribType=202: Exempt short selling flag (豁免平盤下融券賣出註記). The recorded value is “Y” or SPACE; the default value is SPACE. Y=securities eligible for short selling (可平盤下融券賣出證券) SPACE=securities ineligible for short selling (不可平盤下融券賣出證 券) I. InstrAttribType=203: 42

Exempt securities lending flag (豁免平盤下借券賣出註記). The recorded value is “Y” or SPACE; the default value is SPACE. Y=securities eligible for securities lending (可平盤下借券賣出證券) SPACE=securities ineligible for securities lending (不可平盤下借券 賣出證券) J. InstrAttribType=204: Matching time. Record the matching time of orders matched by call auction. If the recorded value is 0, it means that the order is executed through continuous trading. 14. RoundLot: Trading Lots.

The default value of Trading Lot is 1000, each unit for 1 share. 15. Currency: Trading Currency Code.

If the Trading Currency Code is left blank, it means the currency is NTD.

For the Trading Currency Code, please refer to Appendix 9 "Trading Currency Code

Table". 16. SecurityDesc: Face Value not $10 Note

If this field of Face Value not $10 Note is left blank, it means the face value is $10.

43

16. SecurityDesc: Face Value not $10 Note

If this field of Face Value not $10 Note is left blank, it means the face value is $10.

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

1180 ApplID String Constant d1

1350 ApplLastSeqNum uInt32 -

48 SecurityID String copy

22 SecurityIDSource String constant 8

292 CorporateAction String copy

1227 ProductComplex String copy

1151 SecurityGroup String copy

55 Symbol String copy

1148 LowLimitPrice String delta

1149 HighLimitPrice String delta

1150 TradingReferencePrice String delta

870 NoInstrAttrib Length default 5

871 InstrAttribType uInt32 copy

872 InstrAttribValue String delta

561 RoundLot uInt32 default 1000

15 Currency String default NTD

107 SecurityDesc String -

Standard Trailer

44

(二). (2) Full Name of Call (Put) Warrant at the TWSE (d2) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Warrant Transmission Records 48 SecurityID N Warrant Code 22 SecurityIDSource N Codification of Warrant Code

58 Text N Full Name of Call (Put) Warrant Standard Trailer

1. MsgType: Message Type d=Security Definition 2. ApplID: Application Message Type. d2= Full Name of Call (Put) Warrant at the TWSE 3. ApplLastSeqNum: Total Warrant Transmission Record. At the end of the Application Message transmission, the total Transmission record will be transmitted to the user end for checking if the information was completely received. This field is sent only at the end of the message. 4. SecurityID: Warrant Code. The Warrant Code assigned by the TWSE. 5. SecurityIDSource: Codification of Warrant Code. 8 = Assigned by the TWSE under the principle of Securities coding of TWSE, Republic of China, and are uniformly assigned by the TWSE.

45

6. Text: Full Name of Call (Put) Warrant is composed by the following fields: A. D. E. F. G. Warrant B. C. SOH Warrant Warrant Warrant Reserve Abbreviation Underlying Asset Maturity Form Category Type Field

TSMC Fubon - 20080320 European Put Down Blank TSMC 73 Put 01 TSMC - 20080520 American Call Up Blank Fubon TSMC 75 Call 02

Taiwan - 20080820 European Put  Blank Index Fubon Taiex index 78 Put 03 TSMC - 20080920 American Call Bull Blank Fubon TSMC 79 Bull 04 TSMC - 20081120 European Put Bear Blank Fubon TSMC 7B Bear 05 Length:16 2 16 8 2 2 2 2

Description of Fields (Total Length is 50 Bytes): (1) Warrant Abbreviation: 16 Bytes, contains the Warrant Target, Issuer, Maturity Date, Warrant Type and S/N, the same as the Stock Name currently displayed. (2) Underlying asset: 16 Bytes. 16 Bytes, if it is Domestic Target, then represented by the Security Name (16 Bytes, the same way as the Stock Name display at present) or the Index Name (10 Bytes), if it is Foreign 46

Underlying Asset, then display foreign underlying asset Type, including "foreign securities," (including stock and depository receipts,” “overseas indexes,” and “foreign ETF”. [ □= 2 Bytes blank]. (3) Maturity Date: year, month and day (8 numbers) in AD calendar. (4) Warrant Form: European-Euro and American-Am (1 Chinese character). (5) Warrant Category: Call-Call; Put-Put (1 Chinese character) (6) Warrant Type: Currently issued warrant: General—; Up-and-Out Call Warrant—Up, Down-and-Out Put Warrant—Down; Bull ("Down-and-Out Warrant within the price")—Bull, Bear (Up-and-Out Warrant within the price); Bear (1 Chinese character). (7) Reserved Field: For new warrant information in future.

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

1180 ApplID String Constant d2

1350 ApplLastSeqNum uInt32 -

48 SecurityID String Copy

22 SecurityIDSource String Constant 8

58 Text String -

Standard Trailer

47

(三). (3) Status of Securities at the TWSE (f1) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 48 SecurityID N Securities Code 22 SecurityIDSource N Codification of Securities Code

107 SecurityDesc N Status of Underlying Securities 60 TransactTime N Transaction Time Standard Trailer

1. MsgType: Message Type f=Securities Status 2. ApplID: Application Message Type. f1=Status of Securities at the TWSE 3. ApplLastSeqNum: Total Transmission Record. At the end of the Application Message transmission, the total Transmission record will be transmitted to the user end for checking if the information was completely received. This field is sent only at the end of the message.

4. SecurityID: Securities Code. The Securities Code assigned by the TWSE. When the Securities Code is "000000", indicates the Entire Market is in Halted Stage. 5. SecurityIDSource: Codification of Securities. 8 = Assigned by the TWSE under the principle of Securities coding of TWSE, Republic of China, and are uniformly assigned by the TWSE.

48

6. SecurityDesc: Status of Underlying Securities. For Attention and Disposition measures, please refer to Article 4 and Article 6 of “Main Points of Announcement or Notice of Transactions and Disposition” of the TWSE. 01= Attention 02= Disposition 03= Attention and disposition 04= Disposition again 05= Attention and disposition again 06= Disposition with flexibility 07= Attention and disposition with flexibility Stock suspended from trading of the day: not found in the basic data of individual common stocks of the day at the TWSE. T=Stocks terminated for trading of the day: delisting S=Stocks suspended for trading of the day: halt in trading H = Halt for trading of the day R = Resume trading of the day TR = Unusual TV promotion U = Unusual situation 7. TransactTime: Transaction Time. Status of underlying securities =H or R, the format in this field is YYYYMMDD-HH:MM:SS. Tag107 = H, indicates the starting time of trading suspension of the specific stock. When the stock code is "000000", the recorded value of this field is the starting time of the Trading Halted forof the Entire Market. Tag107 = R, indicates the starting time of trading resumption of the specific stock. When the stock code is "000000", the recorded value of this field is the starting time of Trading Resumed of the Entire Market.

49

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

1180 ApplID String constant f1

1350 ApplLastSeqNum uInt32 -

48 SecurityID String copy

22 SecurityIDSource String constant 8

107 SecurityDesc String copy

60 TransactTime String tail

Standard Trailer

50

(四). (4) Real-time Market Information of Common Stocks at the TWSE (X1/X2) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 48 SecurityID N Securities Code 22 SecurityIDSource N Codification of Securities Code

273 MDEntrytime N Matching Time 574 MatchType N Matching Type 339 TradSesMode N Trading Session Mode 340 TradSesStatus N Trading Session Status 31 LastPx N The Last Trading Price 1020 TradeVolume N Current Trading Volume 14 CumQty N Cumulative Trading Volume 326 SecurityTradingStatus N Trading Status of the Underlying Securities

1022 MDFeedType N Display Category 264 MarketDepth N Order Book Display Depth Change in Trading Price and Volume Nested Loop 268 NoMDEntries Y Number → 269 MDEntryType Y Type

→ 279 MDUpdateAction N Update Action → 270 MDEntryPx N Price → 271 MDEntrySize N Volume

870 NoInstrAttrib N Limit Up/Down Display Nested Loop Number → 871 InstrAttribType N Target → 872 InstrAttribValue N Content Standard Trailer

51

52

1. MsgType: Message Type

X=Market Data Incremental Refresh 2. ApplID:Application Message Type

X1 = Information.

X2 = Warrant Market Information 3. At the end of the Application Message transmission, the total Transmission record will be transmitted to the user end for checking if the information was completely received. This field is sent only at the end of the message. 4. SecurityID: Securities Code.

The Securities Code assigned by the TWSE. 5. SecurityIDSource: Codification of Securities.

8 = Assigned by the TWSE under the principle of Securities coding of TWSE,

Republic of China, and are uniformly assigned by the TWSE. 6. MDEntrytime: Matching Time.

Format is hours, minutes, seconds, milliseconds (HHMMSSsssmmm).

Valid Values are: HH=00-23,MM=00-59,SS=00-59,sss=000-999,mmm=000-999.

Special time: the instantaneous price stabilizing measure in effect, matching halted

(Refer to Tag 326). The field of matching time records the starting time and ending

time of halt matching. 7. MatchType:Match Type

4 = Individual Match

7 = Auction 8. TradSesMode: Trading Session Mode.

2 = Simulated Stage

When trading session mode is in simulated stage, then this real-time market

information is Simulated Stage data. 53

3 = Normal Display 9. TradSesStatus: Trading Session Status.

2=Display Information at the Opening

3=Display Information at the Closing 10. LastPx: Last Trading Price.

The TWSE transmits the integer value; the receiving end shall restore back to

floating point value of 3 digits after decimal point. 11. TradeVolume: Current Trade Volume. If there is no match for trade, the content value is 0. 12. CumQty: Cumulative Trading Volume. If there is no match for trade, the content value is the cumulative trading volume of the last transaction. 13. SecurityTradingStatus: Trading Status of Underlying Securities.

101= Delayed open after simulated

102= Delayed close after simulated

111= Instant price stability measurement (toward rising)

112 = Instant price stability measurement (toward falling) 14. MDFeedType: Display Category

101= Rebuild Order Book.

The user cleared up the order book of underlying securities and used the information

on the trading price and volume in the Tag 268 Loop to rebuild the information of

the price and trading volume of the securities.

102= Empty Order Book.

The user end empties the order book of the underlying securities.

103= Change Order Book.

54

The user end uses the information on the trading price and volume in the Tag 268

Loop and changes the original trading price and volume of the underlying securities

with Tag 279.

104= Keep Order Book.

The user end does not make any changes to the trading price and volume of the

underlying securities.

The display of Order Book is explained in the supplementary description and

example in the appendix of this handbook. 15. MarketDepth: Order Book Display Depth

5= Display the trading prices and volumes of 5 stocks

The TWSE displays 5 securities being matched but no trade, except: (1) Treasury bonds, only the trading price and volume of 1 issue is displayed. (2) Instantaneous price stabilizing measure (halt matching), only displays the trading price and cumulative volume of the previous transaction, but not the trading price and volume. (3) Display of simulated match before closing, only displays the trading price of the best match for transaction, but not the volume. 16. NoMDEntries: Change in trading price and volume nested loop number

When transmitting the Total Transmission Record, the value of this field = ‘0’.

When Tag 1022= ‘102’ (Empty Order Book), the value of this field = ‘0’. (1) MDEntryType: Type. When Tag268 is not equal to ‘0’, this field is necessary. (2) MDUpdateAction: UpdateAction 0=New 1=Change 2=Deletion (3) MDEntryPx: Price. The TWSE transmits the integer value; the receiving end shall restore

55

back to floating point value of 3 digits after the decimal point. (4) MDEntrySize: Volume. The unit is the trading unit of the underlying securities. 17. NoInstrAttrib: Up/Down Limit Display Nested Loop Number (1) InstrAttribType: Target 101=Last Trading Price 102=Best Bid 103=Best Offer (2) InstrAttribValue: Content. 101=Up Stop Price 102=Down Stop Price

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

X1 1180 ApplID String constant X2

1350 ApplLastSeqNum uInt32 -

48 SecurityID String copy

22 SecurityIDSource String constant 8

273 MDEntryTime uInt64 delta

574 MatchType uInt32 copy

339 TradSesMode uInt32 copy

340 TradSesStatus uInt32 copy

31 LastPx uInt32 delta

1020 TradeVolume uInt32 delta

14 CumQty uInt32 delta

326 SecurityTradingStatus uInt32 copy

56

1022 MDFeedType uInt32 copy

264 MarketDepth uInt32 default 5

268 NoMDEntries Length copy

269 MDEntryType String copy

279 MDUpdateAction String copy

270 MDEntryPx uInt32 delta

271 MDEntrySize uInt32 delta

870 NoInstrAttrib Length copy

871 InstrAttribType uInt32 copy

872 InstrAttribValue uInt32 copy

Standard Trailer

(5) Information on Completed Fixed Price Securities Trade at TWSE (X3) FIX Message Tag Field Name Req Description Standard Header

1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 48 SecurityID N Securities Code 22 SecurityIDSource N Codification of Securities Code 273 MDEntryTime N Matching Time

31 LastPx N Last Trading Price 1020 TradeVolume N Trading Volume Standard Trailer

1. MsgType: Message Type

X=Market Data Incremental Refresh

X=Market Data Incremental Refresh 57

2. AppplID: Application Message Type.

X3= Information on Completed Fixed Price Securities Trade at the TWSE 3. ApplLastSeqNum: Total Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message. 4. SecurityID: Securities Code.

The Securities Code assigned by the TWSE. 5. SecurityIDSource: Codification of Securities.

8 = Assigned by the TWSE under the principle of Securities coding of the TWSE,

Republic of China, and are uniformly assigned by the TWSE. 6. MDEntryTime: Matching Time.

Format is hours, minutes, seconds, milliseconds (HHMMSSsssmmm).

Valid Value HH=00-23, MM=00-59, SS=00-59, sss=000-999, mmm=000-999. 7. LastPx: Last Trading Price of the fixed price stock trade.

The TWSE transmits the integer value; the receiving end shall restore back to

floating point value of 2 digits after decimal point. 8. TradeVolume: Trading volume of fixed price stock trade. The unit is the trading unit of the underlying stock.

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

1180 ApplID String constant X3

1350 ApplLastSeqNum uInt32 -

48 SecurityID String copy

22 SecurityIDSource String constant 8

58

273 MDEntryTime uInt64 delta

31 LastPx uInt32 delta

1020 TradeVolume uInt64 delta

Standard Trailer

59

(五). (6) Real-time Market Information on Odd Lot Stock Trade at the TWSE (X4) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 48 SecurityID N Securities Code 22 SecurityIDSource N Codification of Securities Code

273 MDEntryTime N Matching Time 31 LastPx N Last Trading Price 1020 TradeVolume N Trading Volume (Unit: Share) 1022 MDFeedType N Display Type 264 MarketDepth N Display Depth of Order Book Change in Trading Price and Volume Nested Loop 268 NoMDEntries Y Number → 269 MDEntryType Y Type

→ 279 MDUpdateAction N Update Action → 270 MDEntryPx N Price 870 NoInstrAttrib N Up/Down Stop Display Nested Loop Number → 871 InstrAttribType N Display Type → 872 InstrAttribValue N Display Content

Standard Trailer Y

1. MsgType: Message Type

X=Market Data Incremental Refresh 2. ApplID: Application Message Type.

X4=Real-time Market Information on Odd Lot Stock Trade at the TWSE

60

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message. 3. ApplLastSeqNum: Total Transmission Record. 4. SecurityID: Securities Code.

The Securities Code assigned by the TWSE. 5. SecurityIDSource: Codification of Securities.

8 = Assigned by the TWSE under the principle of Securities coding of TWSE,

Republic of China, and are uniformly assigned by the TWSE. 6. MDEntryTime: Matching Time.

Format is hours, minutes, seconds, milliseconds (HHMMSSsssmmm).

Valid Value HH=00-23, MM=00-59, SS=00-59, sss=000-999, mmm=000-999. 7. LastPx: Last Trading Price.

This field is not transmitted if the Trading Price is 0

The TWSE transmits the integer value; the receiving end shall restore back to

floating point value of 2 digits after decimal point. 8. TradeVolume: Trading Volume (Unit: Share).

This field is not transmitted if the Trading Price is 0. 9. MDFeedType: Display Type.

101=Rebuild Order Book. The user cleared up the order book of underlying

securities and used the information on the trading price and volume in the Tag 268

Loop to rebuild the information of the price and trading volume of the securities.

102= Empty Order Book. The user end empties the order book of the underlying

securities.

61

10. MarketDepth: Display Depth of Order Book.

1=Display the price of 1 transaction of odd lot stock trade 11. NoMDEntries: Change in Trading Price and Volume Nested Loop Number.

When transmit the Ending Message (Total Transmission Record), the value of this

field = ‘0’.

When Tag 1022=‘102’ (Empty Order Book), the value of this field = ‘0’. (1) MDEntryType: 2 = Bid 3 = Offer E = Simulated Sell Price F = Simulated Buy Price When Tag268 is not equal to ‘0’, this field is necessary. (2) MDUpdateAction: Update Action. 0 = New. (3) MDEntryPx: Price. The TWSE transmits the integer value; the receiving end shall restore back to floating point value of 2 digits after decimal point. 12. NoInstrAttrib: Up/Down Stop Display Nested Loop Number (1) InstrAttribType: Display Type 101=Trading Price 102=Best Bid 103=Best Offer (2) InstrAttribValue: Display Content. 101= Up Stop Price 102= Down Stop Price

62

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

1180 ApplID String constant X4

1350 ApplLastSeqNum uInt32 -

48 SecurityID String copy

22 SecurityIDSource String constant 8

273 MDEntryTime uInt64 delta

31 LastPx uInt32 delta

1020 TradeVolume uInt64 delta

1022 MDFeedType uInt32 copy

264 MarketDepth uInt32 constant 1

268 NoMDEntries Length copy

269 MDEntryType String copy

279 MDUpdateAction String copy

270 MDEntryPx uInt32 delta

870 NoInstrAttrib Length copy

871 InstrAttribType uInt32 copy

872 InstrAttribValue uInt32 delta

Standard Trailer

63

(六). (7) Securities Trade Statistics at the TWSE at the Close of Market (WS1/WS2) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 48 SecurityID N Securities Code 22 SecurityIDSource N Codification of Securities Code

268 NoMDEntries Y Nested Loop Number → 269 MDEntryType Y Data Type → 270 MDEntryPx N Price → 870 NoInstrAttrib N Statistics on Completed Transaction → → 871 InstrAttribType N Type of Transaction Statistics → → 872 InstrAttribValue Standard Trailer

1. MsgType: Message Type

W=Market Data Snapshot (Full Refresh) 2. ApplID: Application Message Type.

WS1= The TWSE Securities Trade Statistics at the Close of Market (Regular Trade

+ Fixed-price Trade + Odd Lot Trade)

WS2= The TWSE Securities Trade Statistics at the Close of Market (Regular Trade

+ Fixed-price Trade + Odd Lot Trade + Broad Lot Trade) 3. ApplLastSeqNum: Total Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message.

64

4. SecurityID: Securities Code.

The Securities Code assigned by the TWSE. 5. SecurityIDSource: Codification of Securities.

8 = Assigned by the TWSE under the principle of Securities coding of TWSE,

Republic of China, and are uniformly assigned by the TWSE. 6. NoMDEntries: Nested Loop Number.

When transmit the Ending Message (Total Transmission Record), the value of this

field = ‘0’. (1) MDEntryType: Data Type, when Tag268 not equal to ‘0’, this field is necessary.

0=Bid, Best bid display price for buying individual common stocks through

auction at close.

1=Offer, Best offer for selling of individual common stocks through auction

at close.

4 = Price at Opening

5 = Price at Closing, price of the last stock trade of the day.

7 = Highest Trading Price

8 = Lowest Trading Price

B = Completed Transactions Statistics (2) MDEntryPx: Price.

The TWSE transmits the integer value; the receiving end shall restore back

to floating point value of 2 digits after decimal point.

When Tag 269= ‘B’, this field will not be transmitted. (3) NoInstrAttrib: Statistics on Completed Transaction

When Tag 269= ‘B’, use this loop. 65

A. InstrAttribType: Type of Transaction Statistics 101 = Transaction Amount, Include the cumulative amount of transactions of related stock trade. 102 = Transaction Volume, Include the cumulative volume of transactions of related stock trade. 103 = Transaction Record, Include the cumulative record of transactions of related stocks.

B. InstrAttribValue: Data content corresponding to the statistics of

transactions.

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

WS1 1180 ApplID String constant WS2

1350 ApplLastSeqNum uInt32 -

48 SecurityID String copy

22 SecurityIDSource String constant 8

268 NoMDEntries Length copy

269 MDEntryType String copy

270 MDEntryPx uInt32 delta

870 NoInstrAttrib Length delta

871 InstrAttribType uInt32 copy

872 InstrAttribValue String delta

Standard Trailer

66

(8) General Trade Statistics of Individual Common Stocks at the TWSE (WT1) FIX Message Tag Field Name Req Descriptions Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 273 MDEntryTime N Time of Entry 268 NoMDEntries Y Nested Loop Number

Type of Trade Statistics of the → 269 MDEntryType Y Underlying Instruments Types of Trade Statistics of each → 870 NoInstrAttrib N Underlying Instruments InstrAttrib Type of Transaction Statistics → → 871 N Type InstrAttrib Data Content of Transaction Statistics → → 872 N Value Standard Trailer Y

1. MsgType: Message Type

W=Market Data Snapshot (Full Refresh) 2. ApplID: Application Message Type

WT1 = General Trade Statistics of Individual Common Stocks at the TWSE. 3. ApplLastSeqNum: Total Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message.

67

4. MDEntryTime: Time of Entry.

Format is hours, minutes, seconds, milliseconds (HHMMSSsssmmm).

Valid Values: HH=00-23, MM=00-59, SS=00-59, sss=000-999, mmm=000-999.

Special Value: 999999999000 (Tag 1180=WT1, "Transaction Statistics at Close")

The TWSE keeps statistics of real-time trade of different instruments at different

points of time from the opening to the close of the market. Some of the trade orders

are still in process of matching at the close of the market. Transaction Statistics at

Close will cover the complete transactions of all matches and the time field will be

displayed at the special value of 999999999000. 5. NoMDEntries: Nested Loop Number, the value of this field is fixed at = ‘5’.

When transmitting the Ending Message (Total Transmission Record), the value of

this field = ‘0’. (1) MDEntry Type: Type of Trade Statistics of the Underlying Instruments, when Tag268 not equal to ‘0’, this field is necessary. B1 = Statistics of Overall Market Transactions, underlying instruments of the statistics of overall transactions in the market including all securities traded at the TWSE. B2 = Statistics of Transaction of Funds, the statistics of transaction of underlying funds, including beneficiary certificates, ETF, REAT, financial asset securitized securities, and REIT. = Statistics of Transaction of Stocks, the statistics of consignment trade of common stocks. B4 = Statistics of Transaction of Call Warrant, the statistics of transaction of Call Warrant, including Call Warrant with domestic stocks or indexes as underlying instruments or Call Warrant with overseas stocks and indexes as underlying instruments. B5 = Statistics of Transaction of Put Warrant, the statistics of transaction of Put Warrant, including Put Warrant with domestic stocks and indexes

68

as underlying instruments and Put Warrant with overseas stocks and indexes as underlying instruments. (2) NoInstrAttrib: Types of Trade Statistics of each Underlying Instruments, the value of this field is fixed at = ‘3’. A. InstrAttribType: Type of Transaction Statistics. 101 = Transaction Amount, Cumulative amount of transactions. 102 = Transaction Volume, Cumulative volume of transactions, each volume is in one trading unit. 103 = Transaction Record, Cumulative record of transactions. B. InstrAttribValue: Data content corresponding to the statistics of transactions.

FAST Template Tag Field Name Field Type Field Encoding Remarks Standard Header

1180 ApplID String constant WT1

1350 ApplLastSeqNum uInt32 -

273 MDEntryTime uInt64 delta

268 NoMDEntries Length default 5

269 MDEntryType String copy

870 NoInstrAttrib Length default 3

871 InstrAttribType uInt32 copy

872 InstrAttribValue uInt64 delta

Standard Trailer

69

(七). (9) Statistics of Fixed Price/after Close of the Market Trade at the TWSE (WT2/WT3/WT4) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 273 MDEntryTime N Time of Entry 268 NoMDEntries Y Nested Loop Number

Type of Trade Statistics of the Underlying → 269 MDEntryType Y Instruments Types of Trade Statistics of each Underlying → 870 NoInstrAttrib N Instruments → → 871 InstrAttribType N Statistics on Completed Transaction → → 872 InstrAttribValue N Data Content of Transaction Statistics Standard Trailer

1. MsgType: Message Type

W=Market Data Snapshot (Full Refresh) 2. ApplID: Application Message Type

WT2 = Statistics of Fixed Price/after Close of the Market Trade at the TWSE

WT3= Statistics of after Close of the Market Trade at the TWSE (Regular Trade +

Fixed-price Trade + Odd Lot Trade)

WT4= Statistics of after Close of the Market Trade at the TWSE (Regular Trade +

Fixed-price Trade + Odd Lot Trade + Broad Lot Trade)

70

3. ApplLastSeqNum: Total Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message. 4. MDEntryTime: Time of Entry.

Format is hours, minutes, seconds, milliseconds (HHMMSSsssmmm).

Valid Values: HH=00-23, MM=00-59, SS=00-59, sss=000-999, mmm=000-999.

5. NoMDEntries: Nested Loop Number, the value of this field is fixed at = ‘1’

When transmit the Ending Message (Total Transmission Record), the value of this

field = ‘0’. (1) MDEntryType: Type of Trade Statistics of the Underlying Instruments, when Tag268 not equal to ‘0’, this field is necessary. B1 = Statistics of overall transactions in market, underlying instruments of the statistics of overall transactions in market include all securities traded at the TWSE. (2) NoInstrAttrib: Types of Trade Statistics of each Underlying Instruments, the value of this field is fixed at = ‘3’. A. InstrAttribType: Statistics on Completed Transaction 101 = Transaction Amount 102 = Transaction Volume Tag 1180 = WT2: Unit of Transaction. Tag 1180 = WT3 or WT4: Shares of Transaction 103 = Transaction Record B. InstrAttribValue: Data content corresponding to the statistics of transactions.

71

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

WT2 1180 ApplID String constant WT3 WT4

1350 ApplLastSeqNum uInt32 -

273 MDEntryTime uInt64 delta

268 NoMDEntries Length default 1

269 MDEntryType String default B1

870 NoInstrAttrib Length default 3

871 InstrAttribType uInt32 copy

872 InstrAttribValue uInt64 delta

Standard Trailer

72

(八). (10) Statistics of General Taiwan Index Trade at the TWSE (WI1/WI2/WI3) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 273 MDEntryTime N Time of Entry 268 NoMDEntries Y Nested Loop Number

→ 269 MDEntryType Y Index Code → 270 MDEntryPx N Index Value Standard Trailer

1. MsgType: Message Type

W=Market Data Snapshot (Full Refresh) 2. ApplID: Application Message Type.

WI1 = TWSE Taiwan Index Statistics

WI2 = TWSE Taiwan New Index Statistics

WI3 = TWSE Taiwan Return Index 3. ApplLastSeqNum: Total Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message. 4. MDEntryTime: Time of Entry.

Format is hours, minutes, seconds, milliseconds (HHMMSSsssmmm).

Valid Values: HH=00-23, MM=00-59, SS=00-59, sss=000-999, mmm=000-999. (1) special value:000000000000 (Tag 1180 = WI1 or WI2, represents "Closing Index from the previous trading day" )

73

(2) special value:999999000000 ( Tag 1180 = WI1 or WI2, represents "Closing Index")

TWSE keeps statistics of real-time index (WI1, WI2) at different points of

time from the opening to the close of the market. Some of the trade orders

are still in process of matching at the close of the market. Transaction

Statistics at Close will cover the complete transactions of all matches and the

time field will be displayed at the special value of 999999000000

Return Index (WI3), will be announced at close of each trading day. 5. NoMDEntries: Nested Loop Number.

When transmit the Ending Message (Total Transmission Record), the value of this

field = ‘0’. (1) MDEntryType: Index Code.

When Tag268 not equal to ‘0’, this field is necessary. Please refer to

Appendix for Index Code Table. (2) MDEntryPx: Index Value.

The TWSE transmits the integer value; the receiving end shall restore back

to floating point value of 2 digits after decimal point.

74

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

WI1 1180 ApplID String constant WI2 WI3

1350 ApplLastSeqNum uInt32 -

273 MDEntryTime uInt64 delta

268 NoMDEntries Length copy

269 MDEntryType String copy

270 MDEntryPx uInt32 delta

Standard Trailer

75

(九). (11) Statistics of General Consignment Trade at the TWSE (WO1) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 273 MDEntryTime N Time of Entry 268 NoMDEntries Y Nested Loop Number

Type of Consignment Trade of → 269 MDEntryType Y Underlying Instruments → 870 NoInstrAttrib N Nested Loop Number Type of Statistics of Consignment Trade → → 871 InstrAttribType N of each Underlying Instrument → → 1177 NoOfSecSizes N Nested Loop Number → → → 1178 MDSecSizeType Type of Consignment Trade Value → → → 1179 MDSecSize Value

Standard Trailer Y

1. MsgType: Message Type

W=Market Data Snapshot (Full Refresh) 2. ApplID: Application Message Type.

WO1 = Statistics of General Consignment Trade at the TWSE 3. ApplLastSeqNum: Total Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message.

76

4. MDEntryTime: Time of Entry.

Format is hours, minutes, seconds, milliseconds (HHMMSSsssmmm).

Valid Values: HH=00-23, MM=00-59, SS=00-59, sss=000-999, mmm=000-999. 5. NoMDEntries: Nested Loop Number, the value of this field is fixed at = ‘5’

When transmitting the Ending Message (Total Transmission Record), the value of

this field = ‘0’. (1) MDEntry Type: Type of Consignment Trade of Underlying Instruments, when Tag268 not equal to ‘0’, this field is necessary. 101 = Overall Consignment Trade at the TWSE. The statistics of all consignment trade of underlying instruments in the market, including the consignment trade of all securities. 102 = Statistics of Consignment Trade of Funds, the statistics of consignment trade of underlying funds, including beneficiary certificates, ETF, REAT, financial asset securitized securities, and REIT. 103 = Statistics of Consignment Trade of Stocks, the statistics of consignment trade of common stocks. 104 = Statistics of Consignment Trade of Call Warrant, the statistics of consignment trade of Call Warrant, including Call Warrant with domestic stocks or indexes as underlying instruments or Call Warrant with overseas stocks and indexes as underlying instruments. 105 = Statistics of Consignment Trade of Put Warrant, the statistics of consignment trade of Put Warrant, including Put Warrant with domestic stocks or indexes as underlying instruments or Put Warrant with overseas stocks and indexes as underlying instruments. A. NoInstrAttrib: Nested Loop Number, the value of this field is fixed at = ‘6’ B. InstrAttribType: Type of Statistics of Consignment Trade of each Underlying Instrument. 101 = Total Buy

77

102 = Total Sell 103 = Up Stop Buy 104 = Up Stop Sell 105 = Down Stop Buy 106 = Down Stop Sell C. NoOfSecSized: Nested Loop Number, the value of this field is fixed at = ‘2’ (A) MDSecSizeType: Type of Consignment Trade Value. 101= Cumulative Volume of Consignment Trade 102 = Cumulative Transaction Record of Consignment Trade (B) MDSecSize: Value. When Tag1178=’101’, the value unit of this field is the trading unit.

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

1180 ApplID String constant WO1

1350 ApplLastSeqNum uInt32 -

273 MDEntryTime uInt64 delta

268 NoMDEntries Length default 5

269 MDEntryType String copy

870 NoInstrAttrib Length default 6

871 InstrAttribType uInt32 copy

1177 NoOfSecSizes Length default 2

1178 MDSecSizeType uInt32 copy

1179 MDSecSize uInt64 delta

Standard Trailer

78

(十). (12) Statistics of Fixed-Price Consignment Trade at the TWSE (WO2) FIX Message Tag Field Name Req Description Standard Header 1180 ApplID Y Application Message Type 1350 ApplLastSeqNum N Total Transmission Record 273 MDEntryTime N Time of Entry 268 NoMDEntries Y Nested Loop Number

Type of Consignment Trade of → 269 MDEntryType Y Underlying Instruments → 870 NoInstrAttrib N Nested Loop Number Type of Statistics of Consignment Trade → → 871 InstrAttribType N of each Underlying Instrument → → 1177 NoOfSecSizes N Nested Loop Number → → → 1178 MDSecSizeType Type of Consignment Trade Value → → → 1179 MDSecSize Value

Standard Trailer Y

1. MsgType: Message Type

W=Market Data Snapshot (Full Refresh) 2. ApplID: Application Message Type.

WO2 = Statistics of Fixed-Price Consignment Trade at the TWSE. 3. ApplLastSeqNum: Total Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message. 4. MDEntryTime: Time of Entry.

Format is hours, minutes, seconds, milliseconds (HHMMSSsssmmm).

79

Valid Values: HH=00-23, MM=00-59, SS=00-59, sss=000-999, mmm=000-999. 5. NoMdEntries: Nested Loop Number, the value of this field is fixed at = ‘2’.

When transmit the Total Transmission Record, the value of this field = ‘0’ (1) MdEntryType: Type of Consignment Trade of Underlying Instruments, when Tag268 is not equal to ‘0’, this field is necessary. 101 = Overall Consignment Trade at the TWSE, The statistics of all consignment trade of underlying instruments in the market, including the consignment trade of all securities. 102 = Statistics of Consignment Trade of Funds, the statistics of consignment trade of underlying funds, including beneficiary certificates, ETF, REAT, financial asset securitized securities, and REIT. (2) NoInstrAttrib: Nested Loop Number, the value of this field is fixed at = ‘6’ A. InstrAttribType: Type of Statistics of Consignment Trade of each Underlying Instrument. 101 = Total Buy 102 = Total Sell 103 = Up Stop Buy 104 = Up Stop Sell 105 = Down Stop Buy 106 = Down Stop Sell B. NoOfSecSizes: Nested Loop Number, the value of this field is fixed at = ‘2’ (A) MDSecSizeType: Type of Consignment Trade Value. 101= Cumulative Volume of Consignment Trade 102 = Cumulative Transaction Record of Consignment Trade (B) MDSecSize: Value When Tag1178=’101’, the value unit of this field is the trading unit.

80

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

1180 ApplID String constant WO2

1350 ApplLastSeqNum uInt32 -

273 MDEntryTime uInt64 delta

268 NoMDEntries Length default 2

269 MDEntryType String copy

870 NoInstrAttrib Length default 6

871 InstrAttribType uInt32 copy

1177 NoOfSecSizes Length default 2

1178 MDSecSizeType uInt32 copy

1179 MDSecSize uInt64 delta

Standard Trailer

(13) TWSE Announcements (B1/B2/B3) FIX Message Tag Field Name Req Description Standard Header

1180 ApplID Y Application Message Type

1350 ApplLastSeqNum N Total Transmission Record 148 Headline Y Announcement Headline

33 NoLinesOfText Y Number of Lines of Announcement Text → 58 Text Y Announcement Text Standard Trailer

81

1. MsgType: Message Type

B=News 2. ApplID: Application Message Type.

B1 = TWSE General Announcement

B2 = TWSE Dealer Hedge Accounts Consignment Trade Announcement

B3 = TWSE Emergency Announcement 3. ApplLastSeqNum: Total Transmission Record.

At the end of the Application Message transmission, the total Transmission record

will be transmitted to the user end for checking if the information was completely

received. This field is sent only at the end of the message. 4. Headline: Announcement Headline.

Tag 1180=’B1’, Value of the field = "General Announcement".

Tag 1180=’B2’, Value of this field = "Dealer Hedge Accounts Consignment Trade

Announcement".

Tag 1180=’B3’, Value of this field = "Emergency Announcement". 5. NoLinesOfText: Number of Lines of Announcement Text, one line of text in each transmission, the value of this field is fixed at = ’1’. 6. Text: Announcement Text.

82

FAST Template Tag Field Name Field Type Field Encoding Remarks

Standard Header

B1 1180 ApplID String constant B2 B3

1350 ApplLastSeqNum uInt32 -

"General Announcement" "Dealer Hedge Accounts 148 Headline String constant Consignment Trade Announcement" "Emergency Announcement"

33 NoLinesOfText Length default 1

58 Text String -

Standard Trailer

83

SEVEN Appendixes 1. Supplementary Descriptions and Examples of Display In the application format of market information transmission, it is more unique in handling the TWSE normal trade real time market information, hence supplementary descriptions are made available in this Appendix. There are two different modes of TWSE normal trade real time market information based on field composition: (1) Market data Snapshot

In this mode, content value of the field 1022 has 101 (overlay) 1. Content value of the field 1022 is 101.

This indicates that the market information transmitted is the complete data of

trading price and volume. When the user end receives the content value of 101 in

this field 1022, the user end is required to empty the Order Book, using the data of

trading price and volume in the loop of the field 268 to rebuild the price and volume

data of the underlying securities. (2) Market Data Incremental Refresh

In this mode, the content values of the field 1022 are 101 (overlay), 102 (empty),

104 (keep) and 103(change) 1. The content value of the field 1022 is 101

Same as Market Data Snapshot mode 2. The content value of the field 1022 is 102

Same as the Market Data Snapshot mode 3. The content value of the field 1022 is 103

This indicates the market information transmitted is the Market Data Incremental

Refresh of the trading price and volume data. When the user end receives the

content value of 103 in this field 1022, the user end is required to change the

original trading price and volume data of the underlying securities using the trading

84

price and volume data in the loop of the field 268, and the update instruction in the field 279 (0 - add, 1 - change, 2 - delete).

Examples are following: For example, the first buy display data of a certain stock is 1. Buy price 15.0, Buy volume 1000 2. Buy price 14.9, Buy volume 500 3. Buy price 14.8, Buy volume 200 4. Buy price 14.6, Buy volume 1500

The Incremental Refresh will apply the Buy price/volume to present the data in the field 1022 = 103 (indicates Incremental Refresh), the field 268 = 4 (indicates 4 sets of data) [Add the Volume at a specific Buy Price] Field 269 = 0 (Type = Buy) Field 279 = 0 (Change Method = Add) Field 270 = 15.0 (Price = 15 Dollars) Field 271 = 1000 (Volume = 1000 Units) [Add the Volume at a specific Buy price] Field 269 = 0 (Type = Buy) Field 279 = 0 (Change Method = Add) Field 270 = 14.9 (Price = 15 Dollars) Field 271 = 500 (Volume = 500 Units) [Add the Volume at a specific Buy price] Field 269 = 0 (Type = Buy) Field 279 = 0 (Change Method = Add) Field 270 = 14.9 (Price = 14.8 Dollars) Field 271 = 500 (Volume = 200 Units) [Add the Volume at a specific Buy price] Field 269 = 0 (Type = Buy) Field 279 = 0 (Change Method = Add) Field 270 = 14.9 (Price = 14.6 Dollars) Field 271 = 500 (Volume = 1500 Units) 85

Representation in FIX format is 1022=103268=41022=103268=4269=027 9=0270=15271=1000269=0279=0270=14. 9271=500269=0279=0270=14.8271=200< SOH>269=0279=0270=14.6271=1500

If the second buy display data is 1. Buy price 15.0, Buy volume 800 2. Buy price 14.8, Buy volume 200 3. Buy price 14.7, Buy volume 100 4. Buy price 14.6, Buy volume 1500 5. Buy price 14.5, Buy volume 200

Incremental Refresh of the two buys display data are the following: First buy display data Second buy display data Incremental Refresh Buy price 15, Buy price 15, Change Buy volume 1000 Buy volume 800 (quantity) Buy price 14.9, Delete Buy Volume 500 Buy price 14.8, Buy price 14.8, No change Buy volume 200 Buy volume 200 Buy price 14.7, Add Buy volume 100 Buy price 14.6, Buy price 14.6, No change Buy volume 1500 Buy volume 1500 Buy price 14.5, Add Buy volume 200

The Incremental Refresh will apply the Buy price/volume to present the data in the field 1022 = 103 (indicates Incremental Refresh), and the field 268 = 4 (indicates 4 sets of data)

86

[Change the Volume at a specific Buy price] Field 269 = 0 (Type = Buy) Field 279 = 1 (Change method = Change) Field 270 = 15.0 (Price = 15 Dollars) Field 271 = 800 (Volume = 800 Units) [Delete the Price and Volume of a specific Buy] Field 269 = 0 (Type = Buy) Field 279 = 2 (Change Method = Delete) Field 270 = 14.9 (Price = 14.9 Dollars) Field 271 = 500 (Volume = 500 Units) [Add the Volume of a specific Buy Price] Field 269 = 0 (Type = Buy) Field 279 = 0 (Change Method = Add) Field 270 = 14.7 (Price = 14.7 Dollars) Field 271 = 100 (Volume = 100 Units) [Add the Volume of a specific Buy Price] Field 269 = 0 (Type = Buy) Field 279 = 0 (Change Method = Add) Field 270 = 14.5 (Price = 14.5 Dollars) Field 271 = 200 (Volume = 200 Units) Representation if FIX format is 1022=103268=41022=103268=4269=027 9=1270=15271=800269=0279=2270=14.9 271=500269=0279=0270=14.7271=100269=0279=0270=14.5271=200

4. The content value of the fiend 1022 is 104

Same as Market Data Snapshot mode

87

2. Alternative Site Backup Plan (1) Situations for Alternative Site Backup In case of abnormal functioning of the server at the TWSE during trading hours, all trading systems will be switched to the backup center at an alternate site. During the time of switching between two trading centers, the trading information network will be suspended for the entry of consignment trades until the TWSE system at the alternative backup site is activated for operation. The user end shall switch to the alternative backup center for receiving market information. After successful connection with the alternative backup center, the securities dealers shall confirm the proper functioning of the file transmission system for placing orders and sending information of transactions before proceeding to trade. (2) Notes to the operation process alternative site backup data recovery 1. The TWSE shall announce the time of resuming trading to the market in case of a major incident and after decided to switch all transactions to the backup center at an alternative site. 2. The TWSE uses the real-time file transmission mode to backup all trade data to the backup center at an alternative site. In activating the backup mechanism, the TWSE will rebuild valid trading data in accordance with the data files in the backup center. In case of any discrepancy between the data in the server of the main site and the backup site; the data at the backup site shall be valid. 3. To ensure all user ends can obtain correct and valid data for the day, the TWSE will reorganize all FIX/FAST messages transmitted application messages after switching to the alternative backup site. When DAP-Real-time system is activated, all valid data of the messages will be recoded from number 1 and retransmitted again. DAP-Rebuild System also adopts the same method to reorganize the data and request the user end to check the update, or rebuild the database to ensure the content of data and sequence number are synchronized with the TWSE's.

88

3. Industry Category Code Table (1) With the inception of the new codification rules, the industry category for the securities can no longer be identified by the first two digits of the securities code. Hence, all common stocks and the subordinated preferred shares with industrial characteristics shall be identified by the fields defined in this table. (2) The aforementioned preferred shares shall include preferred shares, preferred shares with subscription warrants and equity payment receipts for subscription, and equity swap certificates. Please pay special attention to the field that only provides the Industry Category Code. Whether or not the specific securities are preferred shares or preferred shares with subscription warrants shall be determined under the original Rules for Assignment of Ticker Symbols. (3) Other securities without industry characteristics such as Beneficiary Certificates (Closed-end Funds), Call (Put) Warrants, Depository Receipts, Foreign Stocks, Corporate Bonds of with stock subscription rights after the Bonds exercised, Convertible Bonds, and Corporate bonds with stock subscription rights. The value of this field is “00”. Users are advised to determine the types of securities by referring to the original Rules for Assignment of Ticker Symbols. (4) Treasury or government bonds shall be displayed as before. The value of this field is the 1st to the 4th digits of the securities code

Industry Industry Industry Industry Industry Industry Category Category Category Category Category Category Code Code Code Oil, Gas and 01 Cement Industry 12 Auto Industry 23 Electricity Industry Construction Semiconductor 02 Food Industry 14 Materials and 24 Industry Construction Computer and Plastic Sea Transport 03 15 25 Peripheral Industry Industry Equipment Industry

89

Textile and Optoelectronic 04 16 Tourism Industry 26 Fiber Industry Communications Electrical Finance and 05 17 27 and Internet Mechanical Insurance Industry Electronic Parts and Appliance Trading Wholesale 06 18 28 Components and Cable and Retail Industry Electronic Glass and 08 19 Miscellaneous 29 Distribution Ceramics Industry Paper Information Service 09 20 Others 30 Industry Industry Chemical Other Electronic 10 Steel Industry 21 31 Industry Industry Biotechnology and Rubber 11 22 Medical Care Industry Industry

4. Rules for Assignment of the Ticker Symbols (1) A securities code is represented by ASCII in length of 6 bytes: Securities Code Securities Type Byte Byte Byte Byte Byte Byte 1 2 3 4 5 6 0 0 0 0 Beneficiary Certificates(note 1) 0 0 | | | | 4 9 9 9 ETF (Exchange Traded Fund) (note 1) ETF (denominated in foreign currencies) K Bond ETF 5 0 0 B 0 0 | | | Bond ETF(denominated in foreign currencies) C 9 9 9 Leveraged ETF L

Leveraged ETF (denominated in foreign M

90

Securities Code Securities Type Byte Byte Byte Byte Byte Byte 1 2 3 4 5 6 currencies)

Inverse ETF R

Inverse ETF (denominated in foreign currencies) S

Future Trust ETF U Future Trust ETF (denominated in foreign V currencies) Real Estate Asset Trust Beneficiary Securities P Financial Asset Securitization Beneficiary 0 0 0 S Securities 0 1 | | | Real Estate Investment Trust Beneficiary 9 9 9 T Securities 3 0 0 0 0 Call Warrant with domestic securities or index 0 | | | | | as underlying assets 8 9 9 9 9 Put Warrant with domestic securities or index P as underlying assets Call Warrant with foreign securities or index F as underlying assets Put Warrant with foreign securities or index as Q underlying assets “Down-and-Out Call Warrant” (Bull Contract) with domestic securities or indexes as C 3 0 0 0 underlying assets 0 | | | | “Up-and-Out Put Warrant” (Bear Contract) 8 9 9 9 with domestic securities or indexes as B underlying assets “Open-End Down-and-Out Call Warrant” with domestic securities or indexes as underlying X assets (Open-End Bull Contract) “Open-End Up-and-Out Put Warrant” with domestic securities or indexes as underlying Y assets (Open-End Bear Contract) 1 0 0 0 Common Stocks | | | | 9 9 9 9 0 0 0 0 Depository Receipt (note 1) 9 1 | | | | 9 9 9 9 3 0 0 1 存託憑證可轉換公司債 9 C | | | | 9

91

Securities Code Securities Type Byte Byte Byte Byte Byte Byte 1 2 3 4 5 6 4 9 9 D 存託憑證附認股權公司債 G | L 1 存託憑證附認股權公司債履約後之公司債 F | 9 1 存託憑證認股權憑證 G | 9 Original A General Preferred Stocks Stock | Code W Original A Preferred Stocks with Warrants Stock G | Code C Original D Corporate Bonds with Warrants Stock G | Code L Original 1 Subscription Warrants Stock G | Code 9 Original 1 Cooperate Bonds of Performed Debentures Stock F | with Warrants Code 9 New Share Entitlement Certificates, New Original X Stock Right Certificates, Stock Share Payment Stock | Certificates Code Z Blank, Original 1 0 Convertible Corporate Bonds Stock | | Code 9 9 Original 1 Exchangeable Corporate Bonds, Stock 0 | Exchangeable Financial Bond Code 9 A 0 0 0 0 0 Government Bonds C | | | | | D 9 9 9 9 9 Foreign Bonds F - - - - -

Note 1: The previous 6-digit principle for Assignment of Ticker Symbols for the beneficiary

certificates (closed-end fund), Stock Index Fund (ETF), and Trust Depository Receipt

(TDR) are applicable to the securities listed in the exchange after December 15 2009.

92

Stock code previously assigned is still using 4 digits. Stock code defined as 9201~9299

under TDR remains unchanged.

Note 2: The stock code starting with 09 is reserved.

93

(2) Coding Principles for the Securities Code of Government Bonds (6 codes):

□□□□□□

1 2 3 4 5 6 1. Code 1 is a letter: A- Central Government Bond; C- City Government Bond; D- City Government Bond 2. Codes 2-3 represent year, e.g. 93, 94, 95, etc. 3. Code 4 represents bond type. 4. Codes 5-6 represent period, e.g. 01, 02, 03, etc.

5. Securities Category Code Table Special attributes of securities that cannot be determined directly from stock code: Code Meaning

Call Warrant, proportionally issued (the amount of original conversion target W1 shares is 1000 upon issue) Call Warrant, not proportionally issued (the amount of original conversion W2 target shares is not 1000 upon issue) Put Warrant, proportionally issued (the amount of original conversion target W3 shares is 1000 upon issue) Put Warrant, not proportionally issued (the amount of original conversion W4 target shares is not 1000 upon issue) BS Listed securities stocks of domestic companies

FB Listed stocks of domestic banks

Blank Listed securities stocks of other domestic companies

RR Listed securities stocks of other foreign companies

RS Listed securities stocks of foreign companies

RB Listed stocks of foreign banks

94

6. Index Code Table For information on Code Table, please refer to: http://mops.twse.com.tw/mops/web/t95sb06 Index Name in Abbreviation Index Name in Abbreviation Code Index Code Chinese in Chinese English in English FTSE TWSE 1. IX0005 臺灣發達指數 發達指數 Taiwan Eight 8 Industries Industries Index FTSE TWSE 2. IX0006 臺灣高股息指數 高股息指數 Taiwan Dividend+ Dividend+ Index FTSE TWSE 3. IX0003 臺灣中型 100 指數 中 100 指數 Taiwan Mid-Cap Mid-Cap 100 100 Index Non-Electronics 4. IX0008 未含電子股指數 非電指數 Non-Elec Sub-index 未含金融保險股指 Non-Finance 5. IX0007 非金指數 Non-Fin 數 Sub-index 未含金融電子股指 Non-Finance 6. IX0009 非金電指數 Non-Electronics Non-Fin/Elec 數 Sub-index TWSE 發行量加權股價指 Capitalization 7. IX0001 臺股指數 TAIEX 數 Weighted Stock Index FTSE TWSE 8. IX0002 臺灣 50 指數 臺 50 指數 Taiwan 50 Taiwan 50 Index FTSE TWSE Taiwan 9. IX0004 臺灣資訊科技指數 科技指數 Technology Technology Index Cement and 10. IX0013 水泥窯製類指數 水泥窯製類 Cem/Cera Ceramic 11. IX0010 水泥類指數 水泥類 Cement Cement Chemical, 化學生技醫療類指 Chem/Bio/Me 12. IX0019 化學生醫類 Biotechnology 數 d and Medical Care Electric Elec-Machiner 13. IX0017 電機機械類指數 電機類 Machinery y Electrical and 14. IX0018 電器電纜類指數 電器電纜類 Elec/Cable Cable 15. IX0015 機電類指數 機電類 Electrical Electrical 16. IX0011 食品類指數 食品類 Food Food

95

Index Name in Abbreviation Index Name in Abbreviation Code Index Code Chinese in Chinese English in English Plastic and 17. IX0014 塑膠化工類指數 塑化類 Plas/Chem Chemical 18. IX0012 塑膠類指數 塑膠類 Plastic Plastic 19. IX0016 紡織纖維類指數 紡纖類 Textile Textile 20. IX0026 汽車類指數 汽車類 Automobile Automobile Biotechnology 21. IX0021 生技醫療類指數 生醫類 Bio/Med and Medical Care 22. IX0020 化學類指數 化學類 Chemical Chemical

電腦及週邊設備類 Computer and 23. IX0029 電腦週邊類 Peripheral Com-Equip 指數 Equipment 24. IX0027 電子類指數 電子類 Electronics Electronics Glass and 25. IX0022 玻璃陶瓷類指數 玻璃陶瓷類 Glass/Cera Ceramic 26. IX0024 鋼鐵類指數 鋼鐵類 Iron and Steel Iron/Steel 27. IX0023 造紙類指數 造紙類 Paper and Pulp Paper/Pulp 28. IX0025 橡膠類指數 橡膠類 Rubber Rubber Semiconducto 29. IX0028 半導體類指數 半導體類 Semiconductor r Building Material 30. IX0036 建材營造類指數 營建類 Building and Construction Electronic 31. IX0032 電子零組件類指數 電零類 Parts/Component Elec-Comp s Electronic 32. IX0033 電子通路類指數 電通類 Products Elec-Prod-Dist Distribution Finance and 33. IX0039 金融保險類指數 金融類 Finance Insurance Information 34. IX0034 資訊服務類指數 資服類 Info Service Service Communications 35. IX0031 通信網路類指數 網通類 Internet and Internet 36. IX0030 光電類指數 光電類 Optoelectronic Optoelectronic 37. IX0035 其他電子類指數 其他電子類 Other Electronic Other-Elec Shipping and 38. IX0037 航運類指數 航運類 Shipping Transportation 39. IX0038 觀光類指數 觀光類 Tourism Tourism

96

Index Name in Abbreviation Index Name in Abbreviation Code Index Code Chinese in Chinese English in English Oil, Gas and 40. IX0041 油電燃氣類指數 油電燃氣類 Oil/Gas/Elec Electricity 41. IX0042 其他類指數 其他類 Other Other Trading and 42. IX0040 貿易百貨類指數 貿易百貨類 Consumers' Trading Goods TWSE RA Taiwan 43. IX0061 臺灣就業 99 指數 就業 99 指數 Employment EMP 99 Creation 99 Index 44. IX0078 寶島股價指數 寶島指數 Formosa Index FRMSA TWSE RAFI 臺灣高薪 100 Taiwan High 45. IX0080 臺灣高薪 100 指數 HC100 指數 Compensation 100 Index TWSE Corporate 臺灣證券交易所公 臺灣公司治理 46. IX0082 Governance 100 CG100 司治理 100 指數 100 指數 Index TWSE 臺灣證券交易所電 電子類兩倍槓 Electronics Daily 47. IX0083 EDRL2 子類兩倍槓桿指數 桿指數 Return Leveraged 2X Index TWSE 臺灣證券交易所電 電子類反向 Electronics Daily 48. IX0084 EDRIN 子類反向指數 指數 Return Inverse -1X Index TWSE TAIEX 臺灣證券交易所小 小型股 300 指 49. IX0088 型股300發行量加權 Small-Cap 300 SC300 數 股價指數 Sub-Index TIP TAIEX+ 漲升股利 臺灣指數公司漲升 150 Dividend DVA 150 50. IX0091 股利150指數 指數 Appreciation 150 Index Index

51. IX0091 臺灣指數公司漲升 漲升股利 100 TIP TAIEX+ DVA 100

97

Index Name in Abbreviation Index Name in Abbreviation Code Index Code Chinese in Chinese English in English 股利100指數 指數 Dividend Index Appreciation 100 Index TIP TAIEX+ 漲升股利 臺灣指數公司漲升 100 52. BC30 Blue Chip 30 BC 30 Index 股利100指數 指數 Index TIP TAIEX+ 漲升股利 100 臺灣指數公司漲升 53. INE30 Industry Elite 30 INE 30 Index 股利100指數 指數 Index 漲升股利 100 臺灣指數公司漲升 TIP TAIEX+ IT 54. ITE30 ITE 30 Index 股利100指數 指數 Elite 30 Index TIP TAIEX+ 漲升股利 100 臺灣指數公司漲升 55. LV30 Low Volatility LV 30 Index 股利100指數 指數 Select 30 Index TIP TAIEX+ 漲升股利 臺灣指數公司漲升 100 56. LB100 Low Beta 100 LB 100 Index 股利100指數 指數 Index TIP TAIEX+ Blue Chip 30 漲升股利 臺灣指數公司漲升 100 BC30 Inverse 57. BC30-1 Index Daily 股利100指數 指數 -1 Index Return Inverse -1X Index x TIP TAIEX+ 中小型精選 臺灣指數公司中小 50 58. SMC50 Small/Mid-Cap SMC 50 Index 型精選50指數 指數 Select 50 Index TIP TAIEX+ Small/Mid-Cap 中小型 A 級動 臺灣指數公司中小 59. SAM50 Alpha SAM 50 Index 型A級動能50指數 能 50 指數 Momentum 50 Index

98

Index Name in Abbreviation Index Name in Abbreviation Code Index Code Chinese in Chinese English in English TIP Taiwan Market 臺灣指數公司臺灣 TIP Taiwan 60. IX0103 上市上櫃生技醫療 臺灣生技指數 Biotechnology BIO Index 股價指數 and Medical Care Index TIP TAIEX+ Customized High 臺灣指數公司特選 特選高息低波 TIP HDMV 61. IX0104 高股息低波動股價 Dividend 指數 Index 指數 Minimum Variance Index TIP TAIEX+ Industry Elite 30 臺灣指數公司工業 工業菁英 30 反 INE30 Inverse 62. IX0106 菁英30指數日報酬 Index Daily 向一倍指數 -1X Index 反向一倍指數 Return Inverse -1X Index TIP Customized 臺灣指數公司特選 特選內需高收 Domestic TIP DDHY 63. IX0107 內需高收益股價指 益指數 Demand High Index 數 Yield Price Index FTSE4Good TIP FTSE4Good臺灣指 F4G TIP TW 64. IX0105 數公司臺灣永續指 臺灣永續指數 Taiwan ESG ESG Index 數 Index

99

7. Return Index Code Table Code Index Code Return Index Name in Chinese Index Abbreviation in Chinese 1. IR0001 發行量加權股價報酬指數 臺股-報 2. IR0002 臺灣 50 報酬指數 臺 50-報 3. IR0003 臺灣中型 100 報酬指數 中 100-報 4. IR0004 臺灣資訊科技報酬指數 資科-報 5. IR0005 臺灣發達報酬指數 發達-報

6. IR0006 臺灣高股息報酬指數 高股息-報 7. IR0009 未含金融電子股報酬指數 非金電-報 8. IR0010 水泥工業 水泥類-報 9. IR0011 食品工業 食品類-報 10. IR0012 塑膠工業 塑膠類-報 11. IR0016 紡織纖維 紡纖類-報 12. IR0017 電機機械 電機類-報 13. IR0018 電器電纜 電器纜-報 14. IR0019 化學生技醫療指數 化學醫-報 15. IR0020 化學工業 化學類-報 16. IR0021 生技醫療 生技醫-報 17. IR0022 玻璃陶瓷 玻璃陶-報 18. IR0023 造紙工業 造紙類-報 19. IR0024 鋼鐵工業 鋼鐵類-報 20. IR0025 橡膠工業 橡膠類-報 21. IR0026 汽車工業 汽車類-報 22. IR0027 電子工業指數 電子類-報 23. IR0028 半導體 半導體-報 24. IR0029 電腦及週邊設備 電腦週-報

100

Code Index Code Return Index Name in Chinese Index Abbreviation in Chinese 25. IR0030 光電類報酬指數 光電類-報 26. IR0031 通信網路類報酬指數 網通類-報 27. IR0032 電子零組件類報酬指數 電子零-報 28. IR0033 電子通路類報酬指數 電通路-報 29. IR0034 資訊服務類報酬指數 資服類-報 30. IR0035 其他電子類報酬指數 其他電-報 31. IR0036 建材營造類報酬指數 營建類-報 32. IR0037 航運類報酬指數 航運類-報 33. IR0038 觀光事業類報酬指數 觀光類-報 34. IR0039 金融保險類報酬指數 金保類-報 35. IR0040 貿易百貨類報酬指數 貿易百-報 36. IR0041 油電燃氣類報酬指數 油電燃-報 37. 其他類-報 IR0042 其他類報酬指數 Other - RI 38. IR0061 臺灣就業 99 報酬指數 臺灣就業 99-報 39. IR0078 寶島股價報酬指數 寶島股價-報 40. IR0080 臺灣高薪 100 報酬指數 臺灣高薪 100-報 臺灣證券交易所公司治理 100 報酬 41. IR0082 臺灣公司治理 100 報酬指數 指數 臺灣證券交易所小型股 300 發行量 42. IR0088 小型股 300 報酬指數 加權股價報酬指數 臺灣指數公司漲升股利 150 報酬指 43. IR0091 漲升股利 150 報酬指數 數 臺灣指數公司漲升股利 100 報酬指 44. IR0092 漲升股利 100 報酬指數 數

45. IR0093 臺灣指數公司藍籌 30 報酬指數 藍籌 30 報酬指數 臺灣指數公司工業菁英 30 報酬指 46. IR0094 工業菁英 30 報酬指數 數

101

Code Index Code Return Index Name in Chinese Index Abbreviation in Chinese 臺灣指數公司電子菁英 30 報酬指 47. IR0095 電子菁英 30 報酬指數 數 臺灣指數公司低波動精選 30 報酬 48. IR0096 低波動精選 30 報酬指數 指數

49. IR0097 臺灣指數公司低貝塔 100 報酬指數 低貝塔 100 報酬指數 臺灣指數公司中小型精選 50 報酬 50. IR0101 中小型精選 50 報酬指數 指數 臺灣指數公司中小型 A 級動能 50 51. IR0102 中小型 A 級動能 50 報酬指數 報酬指數 臺灣指數公司臺灣上市上櫃生技醫 52. IR0103 臺灣生技報酬指數 療報酬指數 臺灣指數公司特選高股息低波動報 53. IR0104 特選高息低波報酬指數 酬指數 臺灣指數公司特選內需高收益報酬 54. IR0107 特選內需高收益報酬指數 指數 FTSE4Good 臺灣指數公司臺灣永 55. IR0105 臺灣永續報酬指數 續報酬指數

102

8. Newly Compiled Taiwan Index Code Table Index codes are represented by ASCII in length of 6 bytes: Index Code Index Index Code Index Taiwan Mid 100 TW50 Taiwan 50 Index TWMC Index Taiwan Information Taiwan Eight TWIT TWEI Technology Index Industries Index Taiwan Dividend + Taiwan Employment TWDP EMP99 Index 99 Index TWSE Corporate CG100 FRMSA FORMOSA Index Governance 100 Index Taiwan High TWSE Electronics HC100 Compensation HC 100 EDRL2 Daily Return Index Leveraged 2X Index TWSE Electronics Daily TAIEX Total Daily EDRIN Return Inverse -1X TTDRL2 Return Leveraged 2X Index Index TAIEX Total Daily TWSE TAIEX TTDRIN Return Inversed -1X SC300 Small-Cap 300 Index Sub-Index Finance Leveraged 2X Finance Inverse-1X FDRL2 FDRIN Index Index TIP TAIEX+ TIP TAIEX+ Dividend Dividend DVA150 DVA100 Appreciation 150 Index Appreciation 100 Index TIP TAIEX+ Blue Chip TIP TAIEX+ Industry BC30 INE30 30 Index Elite 30 Index TIP TAIEX+ IT Elite 30 TIP TAIEX+ Low ITE30 Index LV30 Volatility Select 30 Index

103

TIP TAIEX+ Low Beta TIP TAIEX+ Blue 100 Index Chip 30 Index Daily LB100 BC30-1 Return Inverse -1X Index x TIP TAIEX+ TIP TAIEX+ SMC50 Small/Mid-Cap Select SAM50 Small/Mid-Cap Alpha 50 Index Momentum 50 Index TIP Taiwan Market TIP TAIEX+ Biotechnology and Customized High IX0103 IX0104 Medical Care Index Dividend Minimum Variance Index INE30 Inverse -1X TIP Customized Index Domestic Demand IX0106 IX0107 High Yield Price Index FTSE4Good TIP Taiwan F4GTTE ESG Index

9. Trading Currency Code Table Currency Code is presented with ASCII 3 bytes:

Currency CNY JPY KRW USD CAD GBP EUR SEK AUD Code Currency Chinese Japanese Korean US Canadian Britsh Swedish Australian Code in Euro Yuan Yen Won Dollar Dollar Pound Crown Dollar Chinese

104

105

10. TWSE FIX/FAST Message Transmission Table (1) The FIX message types initiated by the TWSE end Message Type Message Name Remarks MsgType(tag 35) Management Message A Logon Logon Message 0 Heartbeat Heartbeat Message 3 Reject – Session Level Session Reject Message 5 Logout Logout Message Y Market Data Request Reject Resend Reject Message Application Message d1: Basic Data of Individual Common Stocks at TWSE d Security Definition d2: Full Name of Call (Put) Warrant at the TWSE f Security Status f: Status of Securities at the TWSE X1: Real-time Auction Quotes of Common Stocks at the 1st IP market at the TWSE X2: Real-time Auction Quotes of Common Stocks at the 2nd X Market Data Incremental Refresh IP market at the TWSE X3: Information on Fixed-Price Stock Trade at the TWSE X4: Information on Real-Time Odd Lot Trade at the TWSE

106

WS1: Statistics of Securities Trade at the TWSE at Market Close (Regular Trade + Fixed-price Trade + Odd Lot Trade) WS2: Statistics of Securities Trade at the TWSE at Market Close (Regular Trade + Fixed-price Trade + Odd Lot Trade + Broad Lot Trade) WT1: Statistics of General Trade of Individual Common Stocks at the TWSE WT2: Statistics of Fixed-price Trade of Individual Common Stocks at the TWSE WT3: Statistics of after Close of the Market Trade at the W Market Data Snapshot (Full Refresh) TWSE (Regular Trade + Fixed-price Trade + Odd Lot Trade) WT4: Statistics of after Close of the Market Trade at the TWSE (Regular Trade + Fixed-price Trade + Odd Lot Trade + Broad Lot Trade) WI1: Statistics of the TWSE Taiwan Index WI2: Statistics of the TWSE New Taiwan Index WI3: The TWSE Return Index WO1: Statistics of General Consignment Trade at the TWSE

107

WO2: Statistics of Fixed-price Consignment Trade at the TWSE B1: The TWSE General Announcement B2: The TWSE Dealer Hedge Accounts Consignment Trade B News Announcement B3: The TWSE Emergency Announcement

(2) The FIX message types initiated by user end Message Type Message Name Remarks MsgType(tag 35) Management Message A Logon Logon Message 5 Logout Logout Message V Market Data Request Replay Request Message BE Password change Password Change Message

108

(3) TWSE end Application Message Transmission Time and Channel Table DAP-RT System OperationTime: 0730-1730 : DAP-RB System Operation Time: 0800-1800 : ID d1 d2 f1 X1 X2 X3 X4 WS1 WS2 WT1 WT2 WT3 WT4 WI1 WI2 WI3 WO1 WO2 B1 B2 B3 0800 1430 0800 0900 0900 1430 1425 1440 1705 0900 1430 1440 1705 0900 0900 1440 0900 1400 0800 0800 0800 Real-time Time | | | | | | | | | | | | 1700 1330 1330 1430 1330 1330 1330 1330 1430 1700 1700 1700 Transmission Channel 3 3 3 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

0800 1430 0800 0900 0900 1430 1425 1440 1705 0900 1430 1440 1705 0900 0900 1440 0900 1400 0800 0800 0800 Time | | | | | | | | | | | | | | | | | | | | | Replay 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 Channel 3 3 3 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

109