臺灣證券交易所NEW FIX 4.2電文規範作業手冊(版本1.0)

格式
doc
大小
1.59 MB
頁數
76
上傳者
Bear
收藏 ⬇️ 下載檔案
提示: 文件格式为 Word(doc / docx),轉換可能會出現排版或格式的些許差異,請以實際檔案為準。
此檔案建立於 2011-06-17,离现在 14 132 天,建議確認內容是否仍然適用。








臺灣證券交易所


NEW FIX 4.2電文規範

作業手冊





















台灣證券交易所編製

版本更新記錄


序號

說明

版本

/修訂人

日期

1

配合新交易系統,修改委託格式。

NEW FIX平台預計於1035月上線。

1.0

電規部

2013/08/13




















































一、概說 4

()前言 4

()本作業手冊的範圍 4

()本作業手冊的訂定與修改 4

()網際網路文件下載 4

二、連線架構說明 5

()臺灣證券交易所TCP/IP證券交易資訊網路(簡稱IP交易網路)架構 5

()架構圖 5

()證券商FIX連線架構 5

三、FIX概論說明 6

()FIX協定 6

()FIX Session流程 8

()FIX 訊息類別 12

()一般訊息流程 13

四、FIX 4.2標準主要差異 15

()委託回報與成交回報 15

()OrderID(37)的差異 16

()使用者自定欄位(User Defined Fields) 17

五、標準的表頭及表尾(Standard Header and Trailer) 19

()標準表頭格式(Standard Header) 19

()標準表尾格式(Standard Trailer) 21

六、交談層訊息(Session Level Messages) 22

()登入訊息(Logon) 22

()心跳訊息(Heartbeat) 24

()測試請求訊息(Test Request) 24

()重送請求訊息(Resend Request) 25

()Session拒絕訊息(Reject – Session Level) 26

()序號重設訊息(Sequence Reset) 27

()登出訊息(Logout) 29

七、應用類訊息(Application Messages) 31

()新單委託訊息(New Order Single) 31

()改量委託訊息(Order Cancel / Replace Request) 35

()刪單委託訊息(Order Cancel Request) 38

()委託狀態查詢訊息(Order Status Request) 40

()委託/成交回報訊息(Execution Report) 42

()刪單/改量委託失敗訊息(Order Cancel Reject) 47

()業務檢核失敗訊息(Business Message Reject) 49

八、錯誤訊息處理說明 50

()Session拒絕訊息(Reject – Session Level)錯誤訊息代碼 50

()登入作業錯誤訊息代碼 51

()普通交易錯誤訊息代碼 52

九、附錄 55

()Order State Change Matrices 55

()FIX欄位摘要說明 64

()FIX 4.2欄位差異比較表 68










  1. 概說


  1. 前言

台灣證券交易所為與國際證券交易市場接軌並提昇業務處理效能及服務品質,台灣證券交易所(以下簡稱證交所)規劃建置「FIX通訊協定作業平台」,提供國內外證券商更方便快速的服務。證交所係參考FIX 4.2標準,訂定本FIX電文規範作業手冊,提供給各證券商,以利進行各項業務。關於FIX協定詳細規格可參考The FIX Protocol Organization (http://www.fixprotocol.org)


  1. 本作業手冊的範圍

本作業手冊規範FIX 協定相關設定、訊息傳遞方式及訊息格式有關證券商申請測試及正式上線等相關規定請參閱「申請競價設備連線及異動作業」作業手冊。


  1. 本作業手冊的訂定與修改

本系統規範由證交所電腦規劃部研訂,實施後得視實際需要由證交所修訂公佈。


  1. 網際網路文件下載

本作業手冊可於證交所官方網站http://www.twse.com.tw下載。請於進入網站首頁後選擇「文件下載」,再選擇電腦規劃部/電腦作業部作業手冊查詢一覽表


  1. 連線架構說明


  1. 臺灣證券交易所TCP/IP證券交易資訊網路(簡稱IP交易網路)架構

臺灣證券交易所IP交易網路採用中華電信數據通訊分公司以ATM架構為骨幹所建置的VPN(Virtual Private Network),證券商與證交所之間連線都設定成點對點固定IP位址的VC(Virtual Circuit),具備優越效能與高度安全的特性。


  1. 架構圖



  1. 證券商FIX連線架構


  1. FIX概論說明


  1. FIX協定

  1. 訊息格式

FIX中的訊息格式是不固定長度,所有的訊息都必需要依循規範組成傳送資料,才能使收送雙方可以正確解析格式。FIX訊息格式是由標準的表頭(Standard Header)加上訊息內容本身(Body),最後由標準的表尾(Standard Trailer)結尾。每一個訊息都由一連串的<tag>=<value>所組成,彼此間使用分隔符號(SOH)分開。表頭中的前三個欄位與最後一個表尾欄位,順序固定,其它的欄位則無固定順序,如下表所述。

Tag

Field Name

Data Type

Req'd

Standard Header

8

BeginString

String

Y

9

BodyLength

String

Y

35

MsgType

String

Y

表頭的其它欄位,順序可不固定。

Body

依實際情況填入的表身欄位,順序可不固定。

Standard Trailer

10

CheckSum

String

Y

  1. 分隔符號:(ASCII “SOH”, 0x01)

FIX訊息中所有的欄位都必需以分隔符號區分開來。採用ASCII “SOH”(字碼為0x01,本規範中表示為<SOH>)用來做為分隔符號,所有的訊息都會由“8=FIX.4.2<SOH>”開始,最後結束則是“10=nnn<SOH>”nnnCheckSum計算出來的結果。


範例格式如下:

8=FIX.4.2<SOH>9=51<SOH>35=0<SOH>49=200201<SOH>56=TWSE<SOH>34=593<SOH>52=20090803-13:37:47<SOH>10=233<SOH>


  1. 資料型態

FIX協定之資料型態係由下述類型組成,除“data”類型外,其他類型均以ASCII碼表示,詳細分類如下:

  1. int:整數數值;序列數字,不包含逗號或是小數。且可表示正負號(ASCII符號“- ”和“0 ” - “ 9 ”所組成)。正負號佔用一個位元組(Byte)(舉例來說:正數是“99999”,而負數是“-99999”)int可以包含前置字元0(例:“00023”=“23”)

:723Tag16的表示上為|16=723|

-723Tag16的表示上為|16=-723|


  1. float:浮點數序列數字,可包含小數點。且可表示正負號(ASCII符號“-” 0” - “9”和“.”),沒有小數點的浮點數等同整數。浮點數容納最多15位有效數字。浮點數可以包含前置字元0(例:“00023.23”=“23.23”),也可以包含或省略小數點後之0(例:“23.0”=“23.0000”=“23”)


  1. Qty:數量;浮點數(float)

  1. Price:價格;浮點數(float)


  1. char:字元,可包含任何字母數字或是標點符號除了分隔符號<SOH>。大小寫皆代表不同意義(: m M)


  1. Boolean:布林值,一個字元(char)所組成,只有下列二個值。Y’ = True/Yes

N’ = False/No


  1. String:字串,任意字元組成的一組字串,可以包含任何符號或標點符號,除了分隔符號<SOH>。大小寫皆代表不同意義(例:morstatt ≠ Morstatt )


  1. UTCTimestamp:時間/日期組合代表UTC(國際標準時間,也被稱為“格林威治標準時間”),格式為YYYYMMDD–HH:MM:SSYYYYMMDD-HH:MM:SS.sss(毫秒),格式中的冒號、破折號、以及所需時間皆為必要欄位。


  1. 訊息序號(Sequence Numbers)

本規範中的FIX訊息序號編碼原則,每日假開盤作業與正常開盤作業時,都會重新由1開始。

簡單來說,序號之使用設計是確保FIX訊息傳送之連續性。如果當一方接收到序號的號碼大於其所預期的序號。則可認定對方的訊息有所遺漏。

如果收到的序號比預期小,這樣的狀況是很嚴重的,並且是不被FIX協定所允許的。此時需即刻停止連線,狀況排除後才得進行連線作業


  1. 欄位優先性

每一筆FIX訊息包含必要、非必要、條件式必要欄位(依其他欄位的有無與值決定其必要性)


  1. 使用者自訂欄位

FIX協定提供極具彈性的使用者自訂欄位,從50009999是保留給使用者自訂欄位使用,可以透過FIX官方網站註冊/保留;大於或等於10000是保留使用者內部使用,不需要透過FIX網站註冊/保留。


  1. FIX Session流程

一個FIX Session包含三個作業:登入作業(Logon)訊息交換作業(Messageexchange)及登出作業(Logout)

  1. 登入作業(Logon)

建立FIX連線涉及三種動作:建立通訊層連線(telecommunication link)Session acceptor(以下稱接收端亦指證交所)需要驗證/接受Session initiator(以下稱發起端亦指證券商),及訊息同步。

  1. 建立通訊層連線

  2. 驗證/接受連線

建立通訊層連線後,發起端應傳送登入訊息(Logon)給接收端,若超過60秒未傳送登入訊息(Logon),接收端會主動中斷連線。發起端需再重啟連線。

正常情況下,發起端傳送登入訊息(Logon)給接收端,接收端要驗證發起端的登入訊息(Logon)

驗證成功:接收端會回覆登入訊息(Logon)

驗證失敗:接收端將會回覆登出訊息(Logout)(包含失敗原因,例如:KEY-VALUE ERROR)給發起端,並中斷連線。

發起端必收到接收端回覆的登入訊息(Logon)後,才可以傳送其它訊息。

  1. 訊息同步

發起端與接收端在傳送任何訊息前,必須以訊息序號欄位執行訊息同步檢核作業,例如發起端可用接收端回覆之登入訊息(Logon)序號與本身預期收到的序號比較是否一致,即可得知訊息是否有缺漏。

建議證券商登入動作後,等一段時間或立即傳送測試請求訊息(Test Request)給對方,檢核證交所回覆的心跳訊息(Heartbeat)序號,如果序號不一致,證券商立即傳送重送請求訊息(Resend Request),將缺漏訊息補收完成


  1. 訊息交換(Message exchange)

完成登入作業(Logon)後,一般訊息即可開始交換,訊息詳細內容請參考第六章交談層訊息(Session Level Messages)第七章應用類訊息(Application Messages)章節說明。


  1. 登出作業(Logout)

正常終止訊息交換連線的方式為透過登出訊息(Logout)完成;其他停止連線方式會視為異常狀況並產生錯誤,發起端如未收到接收端的登出訊息(Logout)視為接收端已登出。

發起端登出前應先傳送測試請求訊息(Test Request),依接收端回覆之心跳訊息(Heartbeat)序號,確保雙方沒有訊息缺漏


登出作業程序如下:

  1. 發起端傳送測試請求訊息(Test Request)

  2. 接收端回覆心跳訊息(Heartbeat)

  3. 發起端檢查收到的心跳訊息(Heartbeat)的訊息序號,確認是否有序號缺漏

  4. 發起端若發現有訊息缺漏,立即傳送重送請求訊息(Resend Request)

  5. 接收端回覆需要重送的訊息

  6. 發起端檢核訊息序號皆無缺漏後,傳送登出訊息(Logout)發起端若超過timeout時間(5),未收到回覆登出訊息(Logout),則中斷連線

  7. 接收端檢查登出訊息(Logout)之訊息序號,確認是否有序號缺漏

  8. 接收端若發現有訊息缺漏,立即傳送重送請求訊息(Resend Request)

  9. 發起端回覆需要重送的訊息

  10. 接收端檢核訊息序號皆無缺漏後,回覆登出訊息(Logout)

  11. 發起端中斷連線


  1. FIX 訊息類別

證券商發動的FIX訊息類別

訊息類別

MsgType

(tag 35)

訊息名稱

備註

Session Level Message

A

Logon

登入訊息

0

Heartbeat

心跳訊息

1

Test Request

測試請求訊息

2

Resend Request

重送請求訊息

3

Reject – Session Level

Session拒絕訊息

4

Sequence Reset

序號重設訊息

5

Logout

登出訊息

Application Message

D

New Order Single

新單委託訊息

G

Order Cancel/Replace Request

改量委託訊息

F

Order Cancel Request

刪單委託訊息

H

Order Status Request

委託狀態查詢訊息


證交所發動的FIX訊息類別

訊息類別

MsgType

(Tag 35)

訊息名稱

備註

Session Level Message

A

Logon

登入訊息

0

Heartbeat

心跳訊息

1

Test Request

測試請求訊息

2

Resend Request

重送請求訊息

3

Reject – Session Level

Session拒絕訊息

4

Sequence Reset

序號重設訊息

5

Logout

登出訊息

Application Message

8

Execution Report

委託/成交回報訊息

9

Order Cancel Reject

刪單/改量委託失敗訊息

j

Business Message Reject

業務檢核失敗訊息


  1. 一般訊息流程


本章節說明證券商傳送訊息至證交所後,預期各項回覆訊息的流程說明。在委託回報/成交回報(Execution Report)中,需依欄位ExecType(150)表示此次回報的目的,欄位值說明如下:

0

1

2

4

5

8

委託成功

部份成交

全部成交

刪單成功

改量成功

委託失敗


交易回報類別ExecTransType(20)表示此次回報為新回報資訊或是進行委託狀態查詢。在交易時,委託回報/成交回報都會回覆0 - NEW;當進行委託狀態查詢時,則會回覆3 - Status


證券商

證交所

備註

Logon

登入訊息

Logon

登入成功

Logout

登入失敗

New Order Single

新單委託訊息

Reject – Session

FIX tag驗證錯誤

Execution Report:

ExecType(150) =8

ExecTransType(20) = 0

委託失敗

Execution Report:

ExecType(150) =0

ExecTransType(20) = 0

委託成功

Execution Report:

ExecType(150) =0

ExecTransType(20) = 0

OrdRejReason(103)=99

Text(58)=0031-QUANTITY WAS CUT

部份委託成功

Order Cancel/Replace Request

改量委託訊息

Reject – Session

FIX tag驗證錯誤

Cancel Reject

改量失敗

Execution Report:

ExecType(150) =5

ExecTransType(20) = 0

改量成功

Order Cancel Request

刪單委託訊息

Reject – Session

FIX tag驗證錯誤

Cancel Reject

刪單失敗

Execution Report:

ExecType(150) =4

ExecTransType(20) = 0

刪單成功

Order Status Request

委託狀態查詢訊息

Reject Session

FIX tag驗證錯誤

Execution Report:

ExecTransType(20) = 3

查詢成功


成交回報接收

Execution Report:

ExecType(150) =1

ExecTransType(20) = 0

部分成交

證交所主動傳送


Execution Report:

ExecType(150) = 2

ExecTransType(20) = 0

全部成交

證交所主動傳送


Business Message Reject

業務檢核失敗訊息

證交所未提供該項訊息類別

Logout

登出訊息

Logout

登出


  1. FIX 4.2標準主要差異


證交所目前採用FIX 4.2為主要標準,但仍有許多部分,為與現行交易系統配合,需修改調整符合現況,在此說明本規範與FIX 4.2間之主要差異,使證券商能更迅速的建置相關系統。詳細訊息流程說明及各欄位在進行交易時,會回覆的訊息與欄位值,請參考附錄中的Order State Change Matrices

  1. 委託回報與成交回報

  1. 委託回報無Pending訊息

FIX4.2協定中,系統收到新單委託、刪、改等訊息時,均會先回Pending的訊息,表示系統收到委託正在處理中,但在本規範中,Pending NewPending CancelPending Replace等訊息是不會回覆給證券商,證券商下單後,將比照現行系統,待交易系統處理後,回覆委託回報訊息,證券商將會接收到委託成功或是委託失敗的訊息,請參考下列新單委託流程

  1. OrdStatus(39) = ExecType(150)

FIX4.2協定中這二個欄位的值代表不同的意義,ExecType(150)表示的是此次回報(Execution Report)的目的,而OrdStatus(39)則是表示目前委託單的狀態,如果該委託單同時存在多種狀態時,則應依據FIX協定,顯示權重最高的狀態

本規範為了簡化處理方式,所以OrdStatus(39)的值會與ExecType(150)相同


  1. 委託回報與成交回報時相關欄位之使用

委託回報與成交回報都使用Execution Report(MsgType=8)的格式。

委託回報時,請參考實際委託成功數量OrderQty(38)委託剩餘有效量LeavesQty(151)來取得可用的值,此時本次成交數量LastShares(32)都會回覆0

成交回報時,請參考目前已成交數量CumQty(14)本次成交數量LastShares(32)來取得可用的值,此時委託數量OrderQty(38)委託剩餘有效量LeavesQty(151)都會回覆0



目前已成交數量

CumQty(14)

本次成交數量

LastShares(32)

實際委託成功數量

OrderQty(38)

委託剩餘有效量

LeavesQty(151)

委託回報

Actual Value

0

Actual value

Actual value

成交回報

Actual value

Actual value

0

0


  1. 成交回報只回覆FIX委託單

現行主機連線TMP成交回報將包含所有TMPFIX完整回報資料

FIX的成交回報只回覆經由FIX作業平台進行新單委託的回報資料


  1. AvgPx(6) = 0

目前不支援均價計算,該欄位永遠0


  1. CxlRejReason(102)OrdRejReason(103)增加欄位值99 - Other

詳細錯誤訊息請參考Text(58)


  1. OrderID(37)的差異

FIX 4.2協定中,證券商下單後,交易所會產生一個唯一的委託書編號OrderID(37)於委託回報中。為配合現行的交易系統,證交所仍採行目前法,證券商於下單時需自行產生一個單日不重複之委託書編號OrderID(37),與現行主機連線的委託書編號[ORDER-NO]用法相同且皆不得重覆。

Tag

System Specification

FIX 4.2 Specification

OrderID(37)

同現行主機連線中的[ORDER-NO]

由證券商產生並於新單委託時代入。

此欄位為必要欄位。

FIX協定中,此值由交易所產生。

  1. 使用者自定欄位(User Defined Fields)

現行主機連線手冊委託格式中,有部份欄位並沒有適合的FIX欄位可使用,故本規範中新增個自定欄位(Tag號碼大於等於10000),以符合現行交易系統之運作,欄位說明如下所述:


Tag

Field Name

Data Type

Req’d

Comments

10000

TwseIvacnoFlag

Char

Y

Regular

Notes of Investors’ Order

Channel [IVACNO-FLAG]

Normal

A’ ATM

D’ DMA Order

I’ Internet

V’ Voice

1’ Normal(FIX)

2’ ATM(FIX)

3’ DMA Order(FIX)

4’ Internet(FIX)

5’ Voice(FIX)

10001

TwseOrdType

Char

Y

Regular

[ORDER-TYPE]

0’ Normal

Via Securities Finance

1’ Purchase on Margin

2’ Short Sell

Via Securities Firms conduct Margin Lending

3’ Purchase on Margin

4’ Short Sell

5’ SBL Short Sell type 5

6’ SBL Short Sell type 6

10002

TwseExCode

Char

Y

Regular

[EXCHANGE-CODE],

0 Regular

3 Foreign stocks order priceover up/down limit flag

10004

TwseRejStaleOrd

Boolean

Y

Regular

Checks the TransactTime to verify that it is within a given seconds of the system time.

Y if not, reject it.

N dont check TransactTime.


  1. 標準的表頭及表尾(Standard Header and Trailer)


每一筆訊息都必須包含標準的表頭及表尾。訊息格式中若FIX 4.2標準不支援之Tag格式會回覆Session拒絕訊息(Reject – Session),若符合FIX 4.2標準但本規範不支援之Tag格式,證交所會忽略該欄位值


  1. 標準表頭格式(Standard Header)

Tag

Field Name

Data Type

Req’d

Comments

8

BeginString

String

Y

FIX.4.2

9

BodyLength

String

Y


35

MsgType

String

Y


34

MsgSeqNum

Int

Y

Max 8 digits

43

PossDupFlag

Boolean

N


97

PossResend

Boolean

N


49

SenderCompID*

String

Y

Market + Broker-ID + FIX Socket ID

Broker who establish the sessionconnection

Market (T:TWSE O:OTC)

1 char + 4 char + 2 char

50

SenderSubID*

String

N

Broker-ID

Broker who owns this order

Required for New/Replace/Cancel/Query/Execution

4 char

52

SendingTime

UTCTimestamp

Y

YYYYMMDD-HH:MM:SS.sss

56

TargetCompID*

String

Y

TWSE : XTAI

OTC : ROCO

57

TargetSubID*

String

N

Trading session

Required for New/Replace/Cancel/Query/Execution

0” Regular Trading

122

OrigSendingTime

UTCTimestamp

N

YYYYMMDD-HH:MM:SS.sss

  1. BeginString必須是訊息的第個欄位,其值請填FIX.4.2

  2. BodyLength必須是訊息的第個欄位,其值為計算訊息長度欄位後至CheckSum欄位之前的位元組(Byte)總長度。

  3. MsgType必須是訊息的第三個欄位,說明表身之FIX訊息類別

  4. MsgSeqNum訊息序號(每日流水編號,從1開始),最大8位數字。

  5. PossDupFlag資料重複傳送註記(Y = 可能重複)

  6. PossResend資料重新發送註記(Y = 可能重新發送)證交所僅檢查OrderID有無重複。

  7. SenderCompID:傳送端代號,市場別(1)+券商代號(4)+FIX Socket ID(2)7碼,表示建立此FIX Session之證券商,亦稱之為FIX Session ID

市場別表示此FIX Session所要交易的市場代號(T證交所O櫃檯)

證券商代號表示建立FIX Session連線的證券商。

FIX Socket ID證券商在FIX競價設備申請填入的FIX Socket ID,等同主機連線中的[SOCKET-ID]

填入T116001,代表是集中市場,證券商1160FIX Socket ID01的線路。

  1. SenderSubID:證券商代號(4)表示委託所屬證券商代號。新單/改量/刪單/查詢時均為必要欄位。

  2. SendingTime:訊息傳送時間
    年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

  3. TargetCompID:接收端代號集中:XTAI及櫃檯:ROCO(依據ISO 10383 Market Identifier Code標準)

  4. TargetSubID:交易盤別(1)普通交易為0,等同現行主機連線[AP-CODE]

  5. OrigSendingTime:原始訊息傳送時間
    年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)如為重送訊息時,該欄位必須存在。


*對於SenderCompIDSenderSubIDTargetCompIDTargetSubID等欄位是依據訊息的發送方來決定資料內容,如果是證券商傳送訊息給證交所,SenderCompID代表的則是連線證券商的(市場別+券商代號+FIX Socket ID)TargetCompID則是集中:XTAI(或是檯:ROCO)反之,如果是證交所傳送訊息給證券商,SenderCompID則是集中:XTAI(或是檯:ROCO)TargetCompID為連線證券商的(市場別+券商代號+FIX Socket ID)


參考訊息範例如下

範例1

證券商分公司1161透過總公司1160申請的FIX連線(FIX Socket ID01),進行集中市場普通股委託作業,當證券商下單時,SenderCompID表示FIX連線的券商,SenderSubID則表示實際接受客戶委託下單的證券商。


Tag

Direction

SenderCompID

(tag 49)

SenderSubID

(tag 50)

TargetCompID

(tag 56)

TargetSubID

(tag 57)

Broker TWSE

T116001

1161

XTAI

0

TWSE Broker

XTAI

0

T116001

1161


  1. 標準表尾格式(Standard Trailer)

Tag

Field Name

Data Type

Req’d

Comments

10

CheckSum

String

Y


  1. Checksum檢核機制

是把每個字元的二進位元組(Byte)值,從訊息第一個欄位開始相加至Checksum欄位之前,得出總合除以256得到的餘數放入tag 10中做為Checksum檢核值。為了傳輸,Checksum需以可見字元傳送,所以轉換為三個ASCII數字。

舉例來說,如果Checksum的檢核機制得出的數字為274,除以256取其餘數。這數值將會被帶在tag 10裡。


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 ); }

  1. 交談層訊息(Session Level Messages)


FIX協定中的交談層(Session Layer)類似現行主機連線中的“連線子系統”用來建立連線、登入身份驗證檢查及訊息資料的一致性,包括登入訊息(Logon)、心跳訊息(Heartbeat)、測試請求訊息(Test Request)重送請求訊息(Resend Request)Session拒絕訊息(Reject – Session)、序號重設訊息(Sequence Reset)、登出訊息(Logout),以上訊息等同為管理類訊息(Administrative Messages),各項訊息詳細說明如後。

訊息格式中若FIX 4.2不支援之Tag格式會回覆Session拒絕訊息(Reject – Session),若符合FIX 4.2Tag格式,但本規範不支援,則證交所會忽略該欄位值


  1. 登入訊息(Logon)

證券商要建立連線時,必需要先傳送登入訊息至證交所端,證交所端會依據登入訊息中的資料來驗證證券商的身份,如果檢查通過身份認證後,證交所即會回覆一個登入訊息給證券商,登入完成後即可開始後續作業。


登入訊息(Logon)

Tag

Field Name

Data Type

Reqd

Comments


Standard Header


Y

MsgType = A

98

EncryptMethod

int

Y

0’ (no encryption)

108

HeartBtInt

int

Y

Heartbeat interval in seconds

10

95

RawDataLength

int

Y

Length of RawData

5’

96

RawData

data

Y

APPEND-NO + KEY-VALUE

3 digits + 2 digits


Standard Trailer


Y



  1. MsgTypeALogon

  2. Encrypt Method0加密方法設定,目前為不加密。

  3. HeartBtInt10心跳訊息間隔時間設定。在沒有傳送其他訊息的期間,固定傳送心跳訊息(HeartBeat),為10秒傳送一次。

  4. RawDataLength5 表示RawData中資料的位元組(Byte)長度(有效值=5)

  5. RawDataRawData = APPEND-NOKEY-VALUE

APPEND-NO由證券商每次隨機產生一組三位數字。001 <= APPEND-NO <= 999

KEY-VALUE (APPEND-NO * PASSWORD)取千與

百二位數字。

PASSWORD 指證券商針對各FIX Session申請連線時所填入之密碼。


  1. 心跳訊息(Heartbeat)

心跳訊息有下列二種使用時機:


心跳訊息(Heartbeat)

Tag

Field Name

Data Type

Reqd

Comments


Standard Header


Y

MsgType = 0

112

TestReqID

String

N

Required when the heartbeat is the result of a Test Request message.


Standard Trailer


Y



  1. TestReqID:請填入與測試請求訊息(Test Request)相同之TestReqID。為確認連線正常而傳送之心跳訊息,不需代入此欄位。


  1. 測試請求訊息(Test Request)

測試請求訊息可由連線任何一方發送,該訊息用來檢查訊息序號是否連續或是確認連線狀態,一旦收到此息後,接收端須回覆帶有TestReqID的心跳訊息(Heartbeat)


測試請求訊息(Test Request)

Tag

Field Name

Data Type

Reqd

Comments


Standard Header


Y

MsgType = 1

112

TestReqID

String

Y

This identifier should be returned in the Heartbeat response.


Standard Trailer


Y



  1. TestReqID:為測試請求訊息序號。

  1. 重送請求訊息(Resend Request)

任何一方皆可由訊息序號(MsgSeqNum)的檢核察覺到是否訊息缺漏,當有訊息缺漏時,可發送重送請求訊息(Resend Request)透過起始訊息序號與結束訊息序號來要求補傳訊息


重送請求訊息有以下三種使用方式:

例如:BeginSeqNo = 7, EndSeqNo = 9,此時表示重送第7筆資料到第9筆資料。

例如:BeginSeqNo = 7, EndSeqNo = 0,此時表示從第7筆資料到資料結束為止。


重送請求訊息(Resend Request)

Tag

Field Name

Data Type

Reqd

Comments


Standard Header


Y

MsgType = 2

7

BeginSeqNo

int

Y


16

EndSeqNo

int

Y



Standard Trailer


Y



  1. BeginSeqNo:起始訊息序號。

  2. EndSeqNo:結束訊息序號,當其值為0時表示重送起始訊息序號()後所有訊息。


  1. Session拒絕訊息(Reject – Session Level)

當接收端收到一筆未通過FIX tag檢核之訊息時,應發送Session拒絕訊息。訊息未通過檢核之錯誤內容會置於Text(58)中。RefTagID(371)表示該tag欄位未通過驗證,RefSeqNum(45)表示被拒絕之訊息序號。


Session拒絕訊息(Reject – Session Level)

Tag

Field Name

Data Type

Reqd

Comments


Standard Header


Y

MsgType = 3

45

RefSeqNum

int

Y

MsgSeqNum of rejected message

371

RefTagID

int

N

The tag failing validation

372

RefMsgType

String

N

MsgType of the message in error

373

SessionRejectReason

int

N

Refer to FIX documentation

58

Text

String

N

Message to explain the error


Standard Trailer


Y



  1. RefSeqNum被拒絕之訊息序號

  2. RefTagID被拒絕之tag欄位

  3. RefMsgType被拒絕之訊息類別

  4. SessionRejectReasonSessionreject的原因。

0= Invalid tag number

1 = Required tag missing

2 = Tag not defined for this message type

3 = Undefined Tag

4 = Tag specified without a value

5 = Value is incorrect (out of range) for this tag

6 = Incorrect data format for value

9 = CompID problem

10 = SendingTime accuracy problem

11 = Invalid MsgType

  1. Text錯誤訊息說明(無特定長度)

格式Message Direction + - + Reject Status + - + Reject Modifier

訊息來源(Message Direction)1: Inbound messages

錯誤代碼(Reject Status):請參考第八章Session拒絕訊息(Reject Session Level)錯誤訊息代碼

詳細錯誤訊息說明(Reject Modifier)

如:58=CODE: 1-1-21 VALUE OUT OF BOUNDS: Value out of bounds. Field: HandlInst (tag #21) Value: 4 Bounds: handlinst

  1. 序號重設訊息(Sequence Reset)

序號重設訊息(Sequence Reset)訊息遺失填補標誌GapFillFlag(123)可分為兩種方式,填補模式或重設模式

接收端收到重送要求訊息(Resend Request)後,不想重複發送某些訊息時使用(例如:過時的委託、Heart BeatsTest Requests)

舉例來說,如果發起端發送一筆重送請求訊息(Resend Request),請求重發5~10訊息訊息序號及訊息類別如下:

訊息序號

訊息類別

訊息內容

5

交談層訊息(Session Level Message)

心跳訊息(Heartbeat)

35=0

6

交談層訊息(Session Level Message)

心跳訊息(Heartbeat)

35=0

7

應用類訊息(Application Message)

新單委託訊息

(New Order Single)

35=D

8

應用類訊息(Application Message)

改單委託訊息

(Order Cancel/Replace Request)

35=G

9

交談層訊息(Session Level Message)

心跳訊息(Heartbeat)

35=0

10

交談層訊息(Session Level Message)

心跳訊息(Heartbeat)

35=0


接收端回覆方式:

交談層訊息(Session Level Message)僅傳送Session拒絕訊息(Reject Session);應用類訊息(Application Message)全部重送。

35=4 | 34=5 | 36=7 | 123=Y原要求重送序號第5筆,重設新序號為第7

35=D | 34=7 | 43=Y 重送第7筆資料,資料重複傳送註記設為Y

35=G | 34=8 | 43=Y 重送第8筆資料,資料重複傳送註記設為Y

35=4 | 34=9 |36=11 |123=Y原要求重送序號第9筆,重設新序號為第11


只能用在災難復原的情況下,當發起端的資料已經損毁無法回復,需使用重設模式,設定新序號。


序號重設訊息(Sequence Reset)

Tag

Field Name

Data Type

Reqd

Comments


Standard Header


Y

MsgType = 4

123

GapFillFlag

Boolean

N

Normally present and set to “Y”

36

NewSeqNo

int

Y

Must only increase expected SeqNo


Standard Trailer


Y



  1. GapFillFlagY’(填補模式)N(重設模式)

  2. NewSeqNo新訊息序號,於重設模式(Reset)時,需大於既有序號。

  1. 登出訊息(Logout)

使用時機有下列三種情況:


沒有送出登出訊息(Logout)就斷線會被視為不正常的斷線。當發起端送出登出訊息(Logout)給接收端後,接收端必須回覆登出訊息(Logout),以利接收端確認連線正常結束,這段時間除了接收端要求的重送訊息,發起端不再送出任何訊息。

如果發起端超過Timeout時間(目前設定5)都沒有收到接收端的登出訊息(Logout),會主動中斷連線。


登出訊息(Logout)

Tag

Field Name

Data Type

Reqd

Comments


Standard Header


Y

MsgType = 5

58

Text

String

N



Standard Trailer


Y



  1. Text:登出訊息說明(無特定長度)

請參考登入作業錯誤訊息代碼


例如:

Ex. 58=1202-KEY-VALUE ERROR

Ex. 58=<license-id> + Connection close on socket

  1. 應用類訊息(Application Messages)


FIX協定中的應用層(Application Layer)則類似現行主機連線中的交易子系統。提供新單委託訊息(New Order Single)改量委託訊息(Order Cancel/Replace Request)刪單委託訊息(Order Cancel Request)委託狀態查詢訊息(Order Status Request)委託/成交回報訊息(Execution Report)刪單/改量委託失敗訊息(Order Cancel Reject)

訊息格式中若FIX 4.2不支援之Tag格式會回覆Session拒絕訊息(Reject – Session),若符合FIX 4.2Tag格式,但本規範不支援,則證交所會忽略該欄位值

  1. 新單委託訊息(New Order Single)


新單委託訊息(New Order Single)

Tag

Field Name

Data Type

Req’d

Comments


Standard Header


Y

MsgType = D

11

ClOrdID

String

Y

ClOrdID is a unique ID code provided by the broker when placing an order. In cancel and quantity change order,ClOrdID and OrigClOrdID are correlated.

12 char

37

OrderID

String

Y

[ORDER-NO]

5char

1

Account

String

Y

Exchange Account No

[IVACNO]

7 digits

21

HandlInst

Char

Y

1’

55

Symbol

String

Y

[STOCK-NO]

6 char

54

Side

Char

Y

1’ Buy

2’ Sell

60

TransactTime

UTCTimestamp

Y

YYYYMMDD-HH:MM:SS.sss

38

OrderQty

Qty

Y

Order Qty base on trading units

Regular

Max 3 digits

40

OrdType

Char

Y

Regular

2’ Limit Price

59

TimeInForce

Char

Y

0’ Day

44

Price

Price

Y

Order Price,

Max 6 digits + 3 decimals

10000

TwseIvacnoFlag

Char

Y

Regular

Notes of Investors’ Order

Channel [IVACNO-FLAG]

Normal

A’ ATM

D’ DMA Order

I’ Internet

VVoice

1’ Normal(FIX)

2’ ATM(FIX)

3’ DMA Order(FIX)

4’ Internet(FIX)

5’ Voice(FIX)

10001

TwseOrdType

Char

Y

Regular

[ORDER-TYPE]

0’ Normal

Via Securities Finance

1’ Purchase on Margin

2’ Short Sell

Via Securities Firms conduct Margin Lending

3’ Purchase on Margin

4’ Short Sell

5’ SBL Short Sell type 5

6’ SBL Short Sell type 6

10002

TwseExCode

Char

Y

Regular

[EXCHANGE-CODE]

0 Regular

3 Foreign stocks order priceover up/down limit flag

10004

TwseRejStaleOrd

Boolean

Y

Regular

Checks the TransactTime to verify that it is within a given seconds of the system time.

Y if not, reject it.

N dont check TransactTime.


Standard Trailer


Y



  1. ClOrdID:唯一識別碼,12數字(在每個交易日中必須是唯一的)在刪單/改量委託時,原始ClOrdID(11)需帶入OrigClOrdID(41)

  2. OrderID委託書編號(5碼文),範圍為0~9A~Za~zSenderSubID+OrderID在每個交易日中必須是唯一的

  3. Account投資人帳號(7位數字)

  4. HandlInst:交易處理方式,1’ 自動執行(無人工介入)

  5. Symbol股票代號(6)

  6. Side:買賣別1’ Buy2’Sell

  7. TransactTime:委託時間
    年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

  8. OrderQty:委託數量。普通交易(交易單位),最多3位數字。

  9. OrdType委託方式,2’ 限價(普通)

  1. TimeInForce委託有效期間0’當日有效。

  2. Price委託價格(6位整數+3位小數)

  3. TwseIvacnoFlag委託管道
    普通交易

“ ” 一般

A” ATM

D” DMA Order

I” 網際網路

V” 語音

1” 一般(FIX)

2” ATM(FIX)

3” DMA Order(FIX)

4” 網際網路(FIX)

5” 語音(FIX)


  1. TwseOrdType委託

普通交易

0”一般(非融資融券)

1” 融資(證金)

2” 融券(證金)

3” 融資(自辦)

4” 融券(自辦)

5” 借券賣出(5)

6” 借券賣出(6)

  1. TwseExCode:普通[EXCHANGE-CODE]

0普通

3表示外國股票委託價格超過確認上/下界。

  1. TwseRejStaleOrd:逾時註記。

Y檢查TransactTime是否逾時。

N不檢查TransactTime


  1. 改量委託訊息(Order Cancel / Replace Request)

目前證交所普通交易之改量委託實為減量委託


改量委託訊息(Order Cancel / Replace Request)

Tag

Field Name

Data Type

Req’d

Comments


Standard Header


Y

MsgType = G

41

OrigClOrdID

String

Y

ClOrdID of the previous order (NOT the initial order ofthe day) when canceling or replacing an order.

11

ClOrdID

String

Y

Unique ID

12 char

37

OrderID

String

Y

[ORDER-NO]

5 char

Must match original order.

1

Account

String

Y

Must match original order.

21

HandlInst

Char

Y

1’

55

Symbol

String

Y

Must match original order

54

Side

Char

Y

Must match original order

60

TransactTime

UTCTimestamp

Y

YYYYMMDD-HH:MM:SS.sss

38

OrderQty

Qty

Y

Regular

Decrease quantity

Trading unit

Max 3 digits

40

OrdType

Char

Y

Regular

2’ Limit Price

44

Price

Price

Y

Max 6 digits + 3 decimals

10000

TwseIvacnoFlag

Char

Y

Regular

Notes of Investors’ Order

Channel [IVACNO-FLAG]

Normal

A’ ATM

D’ DMA Order

I’ Internet

V’ Voice

1’ Normal(FIX)

2’ ATM(FIX)

3’ DMA Order(FIX)

4’ Internet(FIX)

5’ Voice(FIX)

10002

TwseExCode

Char

Y

Regular

[EXCHANGE-CODE]

0 Regular

3 Foreign stocks order priceover up/down limit flag

10004

TwseRejStaleOrd

Boolean

Y

Regular

Checks the TransactTime to verify that it is within a given seconds of the system time.

Y if not, reject it.

N dont check TransactTime.


Standard Trailer


Y



  1. OrigClOrdID在刪單/改量委託時,請填入上一筆委託單之唯一識別碼ClOrdID

  2. ClOrdID:唯一識別碼,12數字(在每個交易日中必須是唯一的)

  3. OrderID委託書編號(5碼文),範圍為0~9A~Za~z

  4. Account投資人帳號

  5. HandlInst:交易處理方式,1’ 自動執行(無人工介入)

  6. Symbol股票代號(6)

  7. Side:買賣別1’ Buy2’Sell

  8. TransactTime:委託時間
    年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

  9. OrderQty:委託數量,最多3位數字。普通交易為減量(交易單位),為欲減少之數量。

  1. OrdType:委託方式,2’ 限價(普通)

  2. Price委託價格(6位整數+3位小數)

  3. TwseIvacnoFlag委託管道
    普通交易

“ ” 一般

A” ATM

D” DMA Order

I” 網際網路

V” 語音

1” 一般(FIX)

2” ATM(FIX)

3” DMA Order(FIX)

4” 網際網路(FIX)

5” 語音(FIX)

  1. TwseExCode:普通[EXCHANGE-CODE]

0普通

3表示外國股票委託價格超過確認上/下界。

  1. TwseRejStaleOrd:逾時註記。

Y檢查TransactTime是否逾時。

N不檢查TransactTime

  1. 刪單委託訊息(Order Cancel Request)


刪單委託訊息(Order Cancel Request)

Tag

Field Name

Data Type

Req’d

Comments


Standard Header


Y

MsgType = F

41

OrigClOrdID

String

Y

ClOrdID of the previous order (NOT the initial order of the day) whencanceling or replacing an order.

11

ClOrdID

String

Y

Unique ID

12 char

37

OrderID

String

Y

[ORDER-NO]

5 char

Must match original order

1

Account

String

Y

Must match original order

55

Symbol

String

Y

Must match original order

54

Side

Char

Y

Must match original order

60

TransactTime

UTCTimestamp

Y

YYYYMMDD-HH:MM:SS.sss

10000

TwseIvacnoFlag

Char

Y

Regular

Notes of Investors’ Order

Channel [IVACNO-FLAG]

Normal

A’ ATM

D’ DMA Order

I’ Internet

V’ Voice

1’ Normal(FIX)

2’ ATM(FIX)

3’ DMA Order(FIX)

4’ Internet(FIX)

5’ Voice(FIX)

10002

TwseExCode

Char

Y

Regular

[EXCHANGE-CODE]

0 Regular

3 Foreign stocks order priceover up/down limit flag

10004

TwseRejStaleOrd

Boolean

Y

Regular

Checks the TransactTime to verify that it is within a given seconds of the system time.

Y if not, reject it.

N dont check TransactTime.


Standard Trailer


Y



  1. OrigClOrdID刪單委託時,請填入上一筆委託單之唯一識別碼ClOrdID

  2. ClOrdID:唯一識別碼,12數字(在每個交易日中必須是唯一的)

  3. OrderID委託書編號(5碼文),範圍為0~9A~Za~z

  4. Account投資人帳號

  5. Symbol股票代號(6)

  6. Side:買賣別1’ Buy2’Sell

  7. TransactTime:委託時間
    年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

  8. TwseIvacnoFlag委託管道
    普通交易

“ ” 一般

A” ATM

D” DMA Order

I” 網際網路

V” 語音

1” 一般(FIX)

2” ATM(FIX)

3” DMA Order(FIX)

4” 網際網路(FIX)

5” 語音(FIX)

  1. TwseExCode:普通[EXCHANGE-CODE]

0普通

3表示外國股票委託價格超過確認上/下界。

  1. TwseRejStaleOrd:逾時註記。

Y檢查TransactTime是否逾時。

N不檢查TransactTime

  1. 委託狀態查詢訊息(Order Status Request)


證券商可透過委託狀態查詢訊息查詢該筆委託目前狀態,證交所將透過委託/成交回報訊息(Execution Report)回覆,可由委託剩餘有效量LeavesQty(151)取得委託剩餘有效量,由目前已成交數量CumQty(14)取得目前已成交數量。此時實際委託成功數量OrderQty(38)與委託剩餘有效量LeavesQty(151)相同。


委託狀態查詢訊息(Order Status Request)

Tag

Field Name

Data Type

Req’d

Comments


Standard Header


Y

MsgType = H

11

ClOrdID

String

Y

ClOrdID of the order to query

37

OrderID

String

Y

[ORDER-NO]

5 char

Must match original order

55

Symbol

String

Y

Must match original order

54

Side

Char

Y

Must match original order

10000

TwseIvacnoFlag

Char

Y

Regular

Notes of Investors’ Order

Channel [IVACNO-FLAG]

Normal

A’ ATM

D’ DMA Order

I’ Internet

V’ Voice

1’ Normal(FIX)

2’ ATM(FIX)

3’ DMA Order(FIX)

4’ Internet(FIX)

5’ Voice(FIX)

10002

TwseExCode

Char

Y

Regular

[EXCHANGE-CODE]

0 Regular

3 Foreign stocks order priceover up/down limit flag


Standard Trailer


Y



  1. ClOrdID:唯一識別碼,12數字(在每個交易日中必須是唯一的)

  2. OrderID委託書編號(5碼文),範圍為0~9A~Za~z

  3. Symbol股票代號(6)

  4. Side:買賣別1’ Buy2’Sell

  5. TwseIvacnoFlag委託管道
    普通交易

“ ” 一般

A” ATM

D” DMA Order

I” 網際網路

V” 語音

1” 一般(FIX)

2” ATM(FIX)

3” DMA Order(FIX)

4” 網際網路(FIX)

5” 語音(FIX)

  1. TwseExCode:普通[EXCHANGE-CODE]

0普通

3表示外國股票委託價格超過確認上/下界。

  1. 委託/成交回報訊息(Execution Report)


委託/成交回報訊息(Execution Report)

Tag

Field Name

Data Type

Req’d

Comments


Standard Header


Y

MsgType = 8

37

OrderID

String

Y

[ORDER-NO]

11

ClOrdID

String

N

Unique ID

12 char

41

OrigClOrdID

String

N

ClOrdID of the previous order

(NOT the initial order of the day) when canceling orreplacing an order.

17

ExecID

String

Y

Order reports

unique series number

ClOrdID

(will be 0(zero) for ExecTransType=3(Status))

12char


Trade reports

12 char

20

ExecTransType

Char

Y

Transaction type

0’ New

3’ Status

150

ExecType

Char

Y

0” New

1” Partial fill

2 Fill

4” Canceled

5” Replace

8” Rejected(Ref. Tag 58)

39

OrdStatus

Char

Y

Same as Tag 150 (ExecType)

103

OrdRejReason

int

N

Only exists when status code != 00

99 = Other

1

Account

String

N

Exchange Account No

[IVACNO]

7 digits

55

Symbol

String

Y

[STOCK-NO]

6 char

54

Side

Char

Y

1’ Buy

2’ Sell

60

TransactTime

UTCTimestamp

Y

YYYYMMDD-HH:MM:SS.sss

Order Report

Regular

[ORDER-TIME]


Trade Report

Regular

[MTHTIME]

38

OrderQty

Qty

N

Regular

trading unit

Max 3 digits

40

OrdType

Char

N

Regular

2’ Limit Price

59

TimeInForce

Char

N

0’ Day

44

Price

Price

N

Order Price

Max 6 digits + 3 decimals

32

LastShares

Qty

N

Match quantity

[MTHQTY]

Regular

trading unit

Max 3 digits

31

LastPx

Price

N

Match price

Max 6 digits + 3 decimals

151

LeavesQty

Qty

Y

Amount of quantity open for further execution.

[AFTER-QUANTITY]

Regular

trading unit

Max 3 digits

14

CumQty

Qty

Y

Currently executed quantity

Regular

trading unit

Max 3 digits

6

AvgPx

Price

Y

0’

58

Text

String

N

status code + error msg text Maximum 100 char

10000

TwseIvacnoFlag

Char

N

Order reports only

Regular

Notes of Investors’ Order

Channel [IVACNO-FLAG]

Normal

A’ ATM

D’ DMA Order

I’ Internet

V’ Voice

1’ Normal(FIX)

2’ ATM(FIX)

3’ DMA Order(FIX)

4’ Internet(FIX)

5’ Voice(FIX)

10001

TwseOrdType

Char

N

[ORDER-TYPE]

Regular

0” Normal

Via Securities Finance

1” Purchase on Margin

2” Short Sell

Via Securities Firms conduct Margin Lending

3” Purchase on Margin

4” Short Sell

5” SBL Short Sell type 5

6” SBL Short Sell type 6

10002

TwseExCode

Char

Order Report

Regular

[EXCHANGE-CODE]

0 Regular


Trade Report

Regular

[EXCD]

0 Regular


Standard Trailer


Y



  1. OrderID委託書編號(5碼文),範圍為0~9A~Za~z

  2. ClOrdID:唯一識別碼,12數字(在每個交易日中必須是唯一的)

  3. OrigClOrdID:上一筆委託單之唯一識別碼ClOrdID

  4. ExecID
    委託回報(ClOrdID12)。委託狀態查詢回報時,該值為0
    成交回報(12碼序號)

  5. ExecTransType交易回報類別0’新單3’ –狀態

  6. ExecType委託執行狀態

0”委託成功

1” 部份成交

2全部成交

4” 刪單成功

5” 改量/減量成功

8” 錯誤參考Text(58)

  1. OrdStatus委託狀態ExecType(150)

  2. OrdRejReason委託錯誤代碼,當[STATUS-CODE]不為00時,該欄位為必要欄位,欄位值固定為99 - Other,詳細錯誤原因請參考Text(58)

  3. Account投資人帳號

  4. Symbol股票代號(6)

  5. Side:買賣別1’ Buy2’Sell

  6. TransactTime:交易時間(委託回報[ORDER-TIME]/成交回報[MTHTIME])
    年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

  7. OrderQty:實際委託成功數量。普通交易(交易單位),最多3位數字。
    等同現行主機連線([BEFORE-QUANTITY]-[AFTER-QUANTITY]後取絕對值)

  8. OrdType:委託方式,2’ 限價(普通)

  9. TimeInForce委託有效期間0’當日有效。

  10. Price:委託價格(6位整數+3位小數)

  11. LastShares:本次成交數量,同現行主機連線中的[MTHQTY ]普通交易(交易單位)最多3位數字

  12. LastPx成交價格(6位整數+3位小數)

  13. LeavesQty:委託剩餘有效量,同現行主機連線中的[AFTER-QUANTITY ]普通交易(交易單位)最多3位數字

  14. CumQty:目前已成交數量普通交易(交易單位)最多3位數

  15. AvgPx均價,其值為0

  16. Text:錯誤訊息說明(最多100位字元)Status Code + 訊息內容,請參考第八章各交易子系統錯誤訊息代碼

  17. TwseIvacnoFlag委託管道
    普通
    “ ”
    一般

A” ATM

D” DMA Order

I” 網際網路

V” 語音

1” 一般(FIX)

2” ATM(FIX)

3” DMA Order(FIX)

4” 網際網路(FIX)

5” 語音(FIX)

  1. TwseOrdType委託

普通
“0”
一般(非融資融券)

1” 融資(證金)

2” 融券(證金)

3” 融資(自辦)

4” 融券(自辦)

5” 借券賣出(5)

6” 借券賣出(6)

  1. TwseExCode:普通[EXCHANGE-CODE]

0普通


注意事項

委託回報


成交回報

  1. 刪單/改量委託失敗訊息(Order Cancel Reject)


刪單/改量委託失敗訊息(Order Cancel Reject)

Tag

Field Name

Data Type

Req’d

Comments


Standard Header


Y

MsgType = 9

37

OrderID

String

Y

[ORDER-NO]

11

ClOrdID

String

Y

Unique ID

12 char

41

OrigClOrdID

String

Y

ClOrdID of the previous order

(NOT the initial order of the day) when canceling orreplacing an order.

39

OrdStatus

Char

Y

Current order status.

8” Rejected(Ref. Tag 58)

1

Account

String

N

Exchange Account No

[IVACNO]

7 digits

60

TransactTime

UTCTimestamp

N

YYYYMMDD-HH:MM:SS.sss


Order Report

Regular

[MESSAGE-TIME]

434

CxlRejResponseTo

Char

Y

Identifies the type of request

1 – Order Cancel Request

2 – Order Cancel/Replace Request

102

CxlRejReason

int

N

99 = Other

58

Text

String

N

status code + error msg text Maximum 100 char


Standard Trailer


Y



  1. OrderID委託書編號(5碼文),範圍為0~9A~Za~z

  2. ClOrdID:唯一識別碼,12數字(在每個交易日中必須是唯一的)

  3. OrigClOrdID:上一筆委託單之唯一識別碼ClOrdID

  4. OrdStatus委託狀態

  5. Account投資人帳號

  6. TransactTime:交易時間[MESSAGE-TIME]
    年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

  7. CxlRejResponseTo:回覆訊息要求類別,1’ 刪單委託訊息(Order Cancel Request)2’ 刪單/改量委託訊息(Order Cancel/Replace Request)

  8. CxlRejReason委託錯誤代碼99 = Other

  9. Text:錯誤訊息說明(最長100字元)Status Code + 訊息內容請參考第八章各交易子系統錯誤訊息代碼

  1. 業務檢核失敗訊息(Business Message Reject)


業務檢核失敗訊息(Business Message Reject)

Tag

Field Name

Data Type

Req’d

Comments


Standard Header


Y

MsgType = j

45

RefSeqNum

Int

N

MsgSeqNum of rejected message

372

RefMsgType

String

Y

The MsgType of the FIX message being referenced.

380

BusinessRejectReason

Int

Y

Code to identify reason for a Business Message Reject message.

3 = Unsupported Message Type

58

Text

String

N

status code + error msg text Maximum 100 char


Standard Trailer


Y



  1. RefSeqNum被拒絕之訊息序號

  2. RefMsgType被拒絕之訊息類別

  3. BusinessRejectReasonReject的原因
    3
    不支援的訊息類別

  4. Text:錯誤訊息說明(最長100字元)Status Code + 訊息內容請參考第八章各交易子系統錯誤訊息代碼


  1. 錯誤訊息處理說明

因證券商端之畫面及報表皆是由提供系統之資訊公司或證券商之電腦部門所設計,所以畫面及訊息各家不同,由前面之介紹可了解證交所與證券商之間資料傳遞之基本架構及格式,如果有異常情況發生時,請先依提供系統之資訊公司或證券商電腦部門所編之使用手冊處理,如果狀況仍無法排除,請記住當時的狀況及訊息,並與證交所電腦規劃部連絡。以下訊息是由證交所電腦主機傳給證券商,證券商所看到的訊息不一定與下表完全相同(因所採用之電腦系統而有所差別),在此僅將證交所電腦主機所產生之訊息及處理方式說明如下,以供參考。


  1. Session拒絕訊息(Reject Session Level)錯誤訊息代碼

Reject Status

訊息內容

證券商應辦理事項

0

格式錯誤(Bad Format)

檢查並更正FIX格式

1

值超出範圍(Value out of Bounds)

檢查並更正錯誤欄位內容

2

必要欄位缺漏(Missing Required Fields)

檢查並更正缺漏欄位

4

未知欄位(Unknown Field)

檢查並更正錯誤欄位

5

欄位空白(Field Empty)

檢查並更正錯誤欄位內容

6

欄位失序(Field Out of Order)

檢查並更正欄位次序

10

不正確標籤號碼(Invalid Tag Number)

檢查並更正錯誤欄位

11

RawData欄位包含SOH區隔符號(Non-RawData Field Contains SOH-Delimiter)

檢查並更正錯誤欄位內容

100

訊息組合錯誤(Message Malformed)

檢查並更正訊息內容

101

未知訊息類別(Message Type Unknown)

檢查並更正訊息類別

110

非法或遺漏CompID

(Illegal or Missing CompID)

檢查並更正CompID

114

資料長度錯誤(Incorrect Data Length)

檢查並更正Checksum欄位

201

違反選擇性Session規則

(Optional Session Rule Violated)

前三欄位檢核(tag 8/9/35)檢查並更正上述欄位順序

204

Session登入封鎖(Session Logon Blocked) Suspend

聯絡證交所

205

Session約束(Session On Hold)

聯絡證交所







  1. 登入作業錯誤訊息代碼

Staus Code



FIX GW

訊息類別

證券商應辦理事項


1201

RawData Not Found

35=5

檢查並更正RawData

1202

KEY-VALUE ERROR

35=5

檢查並更正KEY-VALUE

1203

APPEND-NO EQUAL 0

35=5

檢查並更正APPEND NO

1204

RawDataLength Not Found

35=5

檢查並更正RawDataLength

1205

TargetSubID Error

35=8/9

檢查並更正TargetSubID

1206

MsgType Error

35=j

檢查並更正MsgType

1207

HeartBtInt Value Error

35=5

檢查並更正HeartBtInt

1208

RawDataLength Value Error

35=5

檢查並更正RawDataLength

1209

HeartBtInt Not Found

35=5

檢查並更正HeartBtInt

1210

TRADE SUSPENDED

35=5

颱風地區證商不得交易































  1. 普通交易錯誤訊息代碼

Staus Code



FIX GW

訊息類別

證券商應辦理事項


0001

TIME IS OVER

35=8/9

時間超過收盤時間結束交易子系統

0002

TIME IS EARLY

35=8

時間未到,稍待再輸入委託

0003

QUERY LATER ON

35=8

撮合中,稍待再查詢

0004

WAIT FOR MATCH

35=8/9

撮合中,稍待再輸入委託

0005

ORDER NOT FOUND

35=8/9

檢查成交回報是否已成交或檢查各欄位是否有誤

0012

BROKER-NO ERROR

35=8/9

檢查並更正證券商代號

FIX欄位SenderSubID

0013

BRANCH-NO ERROR

35=8/9

檢查並更正分公司代號

FIX欄位SenderSubID

0014

IVACNO ERROR

35=8/9

檢查並更正投資人帳號

FIX欄位Account

0016

TERM-ID ERROR

35=8/9

檢查並更正終端機代號

FIX欄位OrderID第一碼

0018

SEQ-NO ERROR

35=8/9

檢查並更正委託書編號

FIX欄位OrderID後四碼

0019

IVACNO-FLAG

35=8/9

檢查並更正投資人下單類別註記

FIX欄位TwseIvacnoFlag

0020

STOCK-NO ERROR

35=8/9

檢查並更正股票代號

FIX欄位Symbol

0021

PRICE ERROR

35=8/9

檢查並更正單價

FIX欄位Price

0022

QUANTITY ERROR

35=8/9

檢查並更正委託數量;

FIX欄位OrderQty

0024

BUY-SELL-CODE ERROR

35=8/9

檢查並更正買賣別

FIX欄位Side

0025

ORDER TYPE ERROR

35=8/9

檢查並更正委託種類

FIX欄位TwseOrdType

0028

FOREIGNER NOT ALLOWED

35=8

該股票不允許外資交易

0029

TRUST TRADE VIOLATE

35=8/9

檢查並更正委託種類

FIX欄位TwseOrdType

0030

QUANTITY OVER LIMIT

35=8

外資買進或借券賣出已無委託額度

0031

QUANTITY WAS CUT

35=8

外資買進或借券賣委託數量被刪減

0032

DELETE OVER QUANTITY

35=8

取消數量超過原有數量

0033

CHANGEDELETE OR QUERY ONLY

35=8

總委託金額超過限,只允許取消,改量及查詢

0034

TRADE SUSPENDED

35=8

颱風地區證商不得交易

0035

BUY QUANTITY OVER ABNORMAL STOCK LIMIT

35=8

檢查並更正委託數量(異常股票6000)

0036

SELL QUANTITY OVER ABNORAML STOCK LIMIT

35=8

檢查並更正委託數量(異常股票6000)

0037

Price or TwseExCode Error

35=8

檢查委託單價並確認(EXCHANGE

-CODE = 3)或更正單價後重新委託再確認(外國股票)

FIX欄位PriceTwseExCode

0038

Short sell forbidden

35=8

檢查委託資料,該股票非借券標的,或不允許借券賣出

FIX欄位TwseOrdType

0040

Duplicate OrderID

35=8

請按順序編委託書編號

FIX欄位OrderID

0043

Stock suspended

35=8

請檢查委託資料,該股票已不允許輸入委託。

0045

Stock closed

35=8

請檢查委託資料,該股票已收盤不允許輸入委託。

0046

OrdType Error

35=8/9

檢查並更正委託方式

FIX欄位OrdType

0047

TimeInForce Error

35=8

檢查並更正委託有效期間

FIX欄位TimeInForce

0089

Error Over Limit

35=8/9

錯誤次數超過限制,請通知證交所

0097

Time Difference

35=8/9

傳送時間逾時,請重新輸入委託

FIX欄位TransactTime

0099

CALL COMPUTER CENTER

35=8/9

查詢委託是否已輸入成功或打電話到證交所詢問

0200

SYSTEM NOT READY

35=8/9

系統尚未READY, 請稍候

0221

SenderSubID Error

35=8/9

檢查並更正SenderSubID

0222

ClOrdID Length Error

35=8/9

檢查並更正ClOrdID

0223

TransactTime Error

35=8/9

檢查並更正TransactTime

0224

OrderID Length Error

35=8/9

檢查並更正OrderID

0225

Account Length Error

35=8/9

檢查並更正Account

0226

Symbol Length Error

35=8/9

檢查並更正Symbol

0227

OrderQty Length Error

35=8/9

檢查並更正OrderQty

0228

Price Length Error

35=8/9

檢查並更正Price

0229

TwseIvacnoFlag Length Error

35=8/9

檢查並更正TwseIvacnoFlag

0230

TwseOrdType Length Error

35=8/9

檢查並更正TwseOrdType

0231

TwseExCode Length Error

35=8/9

檢查並更正TwseExCode

0232

OrigClOrdID Length Error

35=8/9

檢查並更正OrigClOrdID

0233

TwseRejStaleOrd Length Error

35=8/9

檢查並更正TwseRejStaleOrd

0241

SenderSubIDNot Found

35=8/9

檢查並更正SenderSubID

0242

ClOrdIDNot Found

35=8/9

檢查並更正ClOrdID

0243

TransactTimeNot Found

35=8/9

檢查並更正TransactTime

0244

OrderIDNot Found

35=8/9

檢查並更正OrderID

0245

AccountNot Found

35=8/9

檢查並更正Account

0246

SymbolNot Found

35=8/9

檢查並更正Symbol

0247

SideNot Found

35=8/9

檢查並更正Side

0248

OrderQtyNot Found

35=8/9

檢查並更正OrderQty

0249

OrdTypeNot Found

35=8/9

檢查並更正OrdType

0250

TimeInForceNot Found

35=8/9

檢查並更正TimeInForce

0251

PriceNot Found

35=8/9

檢查並更正Price

0252

TwseIvacnoFlagNot Found

35=8/9

檢查並更正TwseIvacnoFlag

0253

TwseOrdTypeNot Found

35=8/9

檢查並更正TwseOrdType

0254

TwseExCodeNot Found

35=8/9

檢查並更正TwseExCode

0255

OrigClOrdIDNot Found

35=8/9

檢查並更正OrigClOrdID

0256

TwseRejStaleOrdNot Found

35=8/9

檢查並更正TwseRejStaleOrd





  1. 附錄


  1. Order State Change Matrices

為配合證交所現行證券交易作業環境,依其回覆之委託/成交回報資料與各種委託/成交狀況,擬訂出在下列各項委託情境之下,FIX規格中各個tag的回覆資料內容。


  1. D1-Filled Order


Time

Message Received

(11, 41)

Message Sent (11,41)

ExecType (150)

OrdStatus (39)

ExecTransType (20)

OrderQty (38)

LeavesQty (151)

CumQty (14)

LastShares (32)

Comment

1

New Order(X)

 

 

 

 

10

 

 

 

 

2

 

Execution(X)

Rejected

Rejected

New

10

0

0

0

If order is rejected

2

 

Execution(X)

New

New

New

10

10

0

0


3

 

Execution(X)

Partial Fill

Partially Filled

New

0

0

2

2

Execution of 2 trading units

4

 

Execution(X)

Partial Fill

Partially Filled

New

0

0

3

1

Execution of 1 trading unit

5

 

Execution(X)

Fill

Filled

New

0

0

9

6

If the order was decreased 1 trading unit by other channel, then execution of 6

5

 

Execution(X)

Fill

Filled

New

0

0

10

7

Execution of 7 trading units


  1. D2-Order Qty Quota


Time

Message Received (11, 41)

Message Sent (11,41)

ExecType (150)

OrdStatus (39)

ExecTransType (20)

OrderQty (38)

LeavesQty (151)

CumQty (14)

LastShares (32)

Comment

1

New Order(X)

 

 

 

 

10

 

 

 

 

2

 

Execution(X)

Rejected

Rejected

New

10

0

0

0

If order is rejected

2

 

Execution(X)

New

New

New

8

8

0

0

8trading units of Order Qty

tag 103=99

tag 58=0031

3

 

Execution(X)

Partial Fill

Partially Filled

New

0

0

1

1

Execution of 1 trading unit

4

 

Execution(X)

Partial Fill

Partially Filled

New

0

0

6

5

Execution of 5 trading units



  1. D3-Cancel request issued for a part-filled order – executions occur whilst cancel request is active


Time

Message Received (11, 41)

Message Sent (11,41)

ExecType (150)

OrdStatus (39)

ExecTransType (20)

OrderQty (38)

LeavesQty (151)

CumQty (14)

LastShares (32)

Comment

1

New Order(X)





10





2


Execution(X)

Rejected

Rejected

New

10

0

0

0

If order is rejected.

2


Execution(X)

New

New

New

10

10

0

0


3


Execution(X)

Partial Fill

Partially Filled

New

0

0

1

1

Execution of 1 trading unit.

4

Cancel Request (Y,X)










5


Execution(X)

Partial Fill

Partially Filled

New

0

0

5

4

Execution for 4 trading units. This execution passes the cancel request on the connection.

6


Execution(X)

Partial Fill

Partially Filled

New

0

0

6

1

Execution for 1 trading unit.

7


Execution (Y,X)

Canceled

Canceled

New

4

0

6

0

If deals are received before cancelation acknowledgement.


  1. D4-Cancel request issued for a part-filled order – executions occur whilst cancel request is active and cancellation is back earlier than residual deals

    Time

    Message Received (11, 41)

    Message Sent (11,41)

    ExecType (150)

    OrdStatus (39)

    ExecTransType (20)

    OrderQty (38)

    LeavesQty (151)

    CumQty (14)

    LastShares (32)

    Comment

    1

    New Order(X)





    10





    2


    Execution(X)

    Rejected

    Rejected

    New

    10

    0

    0

    0

    If order is rejected

    2


    Execution(X)

    New

    New

    New

    10

    10

    0

    0


    3


    Execution(X)

    Partial Fill

    Partially Filled

    New

    0

    0

    1

    1

    Execution of 1 trading unit

    4

    Cancel Request (Y,X)










    5


    Execution(X)

    Partial Fill

    Partially Filled

    New

    0

    0

    5

    4

    Execution for 4 trading units. This execution passes the cancel request on the connection.

    6


    Execution (Y,X)

    Canceled

    Canceled

    New

    4

    0

    6

    0

    The cancellation is back before the residual deals.

    7


    Execution(X)

    Partial Fill

    Partially Filled

    New

    0

    0

    6

    1

    If the last cancel request is done and execution for 1 trading unit.

  2. D5-Part-filled order followed by cancel/replace request to decrease order qty, execution occurs whilst order is pending replace

    Time

    Message Received

    (11, 41)

    Message Sent (11,41)

    ExecType (150)

    OrdStatus (39)

    ExecTransType (20)

    OrderQty (38)

    LeavesQty (151)

    CumQty (14)

    LastShares (32)

    Comment

    1

    New Order(X)





    10





    2


    Execution(X)

    Rejected

    Rejected

    New

    10

    0

    0

    0

    If order is rejected

    2


    Execution(X)

    New

    New

    New

    10

    10

    0

    0


    3


    Execution(X)

    Partial Fill

    Partially Filled

    New

    0

    0

    1

    1

    Execution of 1 trading unit.

    4

    Replace Request (Y,X)





    1




    1 trading unit decreased.

    5


    Execution(X)

    Partial Fill

    Partially Filled

    New

    0

    0

    2

    1

    Execution of 1trading unit.

    6


    Execution (Y,X)

    Replace

    Replaced

    New

    1

    7

    2

    0


    7


    Execution(X)

    Fill

    Filled

    New

    0

    0

    9

    7

    Execution of 7 trading units.

  3. D6-Cancel/replace request send whilst execution is being reported – the requested order qty equals the LeavesQty

Time

Message Received

(11, 41)

Message Sent (11,41)

ExecType (150)

OrdStatus (39)

ExecTransType (20)

OrderQty (38)

LeavesQty (151)

CumQty (14)

LastShares (32)

Comment

1

New Order(X)





10





2


Execution(X)

Rejected

Rejected

New

10

0

0

0

If order is rejected.

2


Execution(X)

New

New

New

10

10

0

0


3

Replace Request (Y,X)





2




2 trading units decreased.

3


Execution(X)

Partial Fill

Partially Filled

New

0

0

8

8

Execution of 8 trading units.

4


Execution(Y,X)

Replace

Replaced

New

2

0

8

0




  1. D7-Cancel/replace request sent whilst execution is being reported – the requested order qty is above the LeavesQty

Time

Message Received

(11, 41)

Message Sent (11,41)

ExecType (150)

OrdStatus (39)

ExecTransType (20)

OrderQty (38)

LeavesQty (151)

CumQty (14)

LastShares (32)

Comment

1

New Order(X)





10





2


Execution(X)

Rejected

Rejected

New

10

0

0

0

If order is rejected.

2


Execution(X)

New

New

New

10

10

0

0


3

Replace Request (Y,X)





5




5 trading units decreased.

3


Execution(X)

Partial Fill

Partially Filled

New

0

0

8

8

Execution of 8 trading units.

4


Execution(Y,X)

Replace

Replaced

New

2

0

8

0

tag 103=99

tag 58=0032



  1. D8-Order status request – for new order and cancel/replace request

Time

Message Received

(11, 41)

Message Sent (11,41)

ExecType (150)

OrdStatus (39)

ExecTransType (20)

OrderQty (38)

LeavesQty (151)

CumQty (14)

LastShares (32)

Comment

1

New Order(X)

 

 

 

 

10

 

 

 

 

2

Order Status Request(X)

 

 

 

 


 

 

 

 

3

 

Execution(X)

New

New

New

8

8

0

0

If order is accepted 8 trading units by TWSE.

tag 103=99

tag 58=0031

4

**

Execution(X)

New

New

Status

8

8

0

0


5

Replace Request (Y,X)

 

 

 

 

4

 

 

 

4 trading units decreased.

6

Order Status Request(X)

 

 

 

 


 

 

 

 

7

 

Execution (Y,X)

Replace

Replaced

New

4

4

0

0

Reduce quantity

8

**

Execution(X)

New

New

Status

2

2

2

0


9

 

Execution(Y)

Partial Fill

Partially Filled

New

0

0

2

2

Execution of 2.

**In Order Status Query Request, please refer to the LeavesQty in order to get the results of OrderQty.


  1. D9-Order status request – for new order

Time

Message Received

(11, 41)

Message Sent (11,41)

ExecType (150)

OrdStatus (39)

ExecTransType (20)

OrderQty (38)

LeavesQty (151)

CumQty (14)

LastShares (32)

Comment

1

New Order(X)

 

 

 

 

10

 

 

 

 

2


Execution(X)

New

New

New

10

10

0

0


3

Order Status Request(X)










4


Execution(X)

Partial Fill

Partially Filled

New

0

0

2

2

2 trading units are dealed.

5


Execution(X)

New

New

Status

8

8

2

0


  1. FIX欄位摘要說明

各欄位的Data Type請參考FIX資料型章節說明。

Field ID

(Tag)

Field Name

Data Type

Description

1

Account

String

投資人帳號

6

AvgPx

Price

均價,其值為0

7

BeginSeqNo

int

起始訊息序號

8

BeginString

String

永遠為第個欄位,其值請填FIX.4.2

9

BodyLength

String

訊息長度(位元組(Byte))

永遠為第二個欄位

10

CheckSum

String

永遠為訊息最後的欄位

3位元組(Byte)(請參考CheckSum計算方式章節之說明)

11

ClOrdID

String

唯一識別碼

12數字(在每個交易日中必須是唯一的)

14

CumQty

Qty

目前已成交數量(普通)

最多3位數

16

EndSeqNo

int

結束訊息序號

當為0時表示重送起始訊息序號()後所有訊息

17

ExecID

String

委託回報(12)
成交回報(12)

20

ExecTransType

Char

交易回報類別

0’ 新單

3’ 狀態

21

HandlInst

Char

交易處理方式

1’ 自動執行(無人工介入)

31

LastPx

Price

成交價格

(6位整數+3位小數)

32

LastShares

Qty

本次成交數量(普通)

最多3位數字

34

MsgSeqNum

int

訊息序號(每日流水編號,從1開始)

35

MsgType

String

訊息類別

永遠為訊息的第三個欄位

支援類別如下(區分大小寫)

0 = Heartbeat

1 = Test Request

2 = Resend Request

3 = Reject

4 = Sequence Reset

5 = Logout

8 = Execution Report

9 = Order Cancel Reject

A= Logon

D= Order – Single

F = Order Cancel Request

G= Order Cancel/Replace Request

H= Order Status Request

36

NewSeqNo

int

新訊息序號

37

OrderID

String

委託書編號(5碼文)

38

OrderQty

Qty

委託數量

普通交易(交易單位)

最多3位數字

39

OrdStatus

Char

委託狀態(tag 150)

40

OrdType

Char

委託方式

2’ 限價(普通)

41

OrigClOrdID

String

上一筆委託單之唯一識別碼ClOrdID

43

PossDupFlag

Boolean

資料重複傳送註記

Y = 可能重複

N = 原始傳送

44

Price

Price

委託價格

(6位整數+3位小數)

45

RefSeqNum

int

被拒絕之訊息序號

49

SenderCompID

String

傳送端代號

市場別(1)+券商代號(4)+FIX Socket ID(2)

50

SenderSubID

String

券商代號(4)

表示委託所屬券商代號

新委託/改量/刪單/查詢時為必要欄位

52

SendingTime

UTCTimeStamp

訊息傳送時間

年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

54

Side

Char

買賣別

1’ Buy

2’ Sell

55

Symbol

String

股票代號(6)

56

TargetCompID

String

接收端代號

證交所: XTAI

櫃檯: ROCO

57

TargetSubID

String

交易盤別(1)

0” 普通交易

58

Text

String

文字訊息資料(無特定長度)

59

TimeInForce

Char

委託有效期間

0’ 當日有效

60

TransactTime

UTCTimeStamp

交易時間

年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

95

RawDataLength

int

Tag 96資料長度(有效值=5)

96

RawData

Data

包含3APPEND-NO2KEY-VALUE(檢核連線密碼之用)

97

PossResend

Boolean

資料重新發送註記

98

EncryptMethod

int

設定為0 (不加密)

102

CxlRejReason

int

刪單/改量委託錯誤代碼

103

OrdRejReason

int

委託錯誤代碼

108

HeartBtInt

int

心跳訊息間隔時間()

112

TestReqID

String

回覆測試請求訊息的序號

122

OrigSendingTime

UTCTimeStamp

原始訊息傳送時間

年月日-::.毫秒(YYYYMMDD-HH:MM:SS.sss)

123

GapFillFlag

Boolean

訊息遺失填補標誌

一般設定為‘Y’(序號重設用)

150

ExecType

Char

委託執行狀態

0” 新委託

1” 部份成交

2全部成交

4” 已取消

5” 已改量

8” 錯誤(參考Tag 58)

151

LeavesQty

Qty

委託剩餘有效量

普通交易(交易單位)

最多3位數字

371

RefTagID

int

被拒絕之tag欄位

372

RefMsgType

String

被拒絕之訊息類別

373

SessionRejectReason

int

Sessionreject的原因

0 = Invalid tag number

1 = Required tag missing

2 = Tag not defined for this message type

3 = Undefined Tag

4 = Tag specified without a value

5 = Value is incorrect (out of range) for this tag

6 = Incorrect data format for value

9 = CompID problem

10 = SendingTime accuracy problem

11 = Invalid MsgType

380

BusinessRejectReason

int

Reject的原因

3 不支援的訊息類別

434

CxlRejResponseTo

int

回覆訊息要求類別

1’ 刪單委託訊息(Order Cancel Request)

2’ 刪單/改量委託訊息(Order Cancel/Replace Request)

10000

TwseIvacnoFlag

Char

委託管道

一般

A” ATM

D” DMA Order

I” 網際網路

V” 語音

1” 一般(FIX)

2” ATM(FIX)

3” DMA Order(FIX)

4” 網際網路(FIX)

5” 語音(FIX)

10001

TwseOrdType

Char

委託

0” 一般(非融資融券)

1” 融資(證金)

2” 融券(證金)

3” 融資(自辦)

4” 融券(自辦)

5” 借券賣出(5)

6” 借券賣出(6)

10002

TwseExCode

Char

0普通

3外國股票委託價格超過確認上/下界之確認

10004

TwseRejStaleOrd

Boolean

Y逾時註記檢查

N逾時註記不檢查


以下空白



  1. FIX4.2欄位差異比較表


  1. 標準的表頭及表尾(Standard Header and Trailer)

  1. Standard Header

Tag

Field Name

Data Type

TWSEReq’d

FIXReq’d

8

BeginString

String

Y

Y

9

BodyLength

String

Y

Y

35

MsgType

String

Y

Y

49

SenderCompID

String

Y

Y

56

TargetCompID

String

Y

Y

115

OnBehalfOfCompID

String

[IGNORE]

N

128

DeliverToCompID

String

[IGNORE]

N

90

SecureDataLen

Length

[IGNORE]

N

91

SecureData

Data

[IGNORE]

N

34

MsgSeqNum

Int

Y

Y

50

SenderSubID

String

N

N

142

SenderLocationID

String

[IGNORE]

N

57

TargetSubID

String

N

N

143

TargetLocationID

String

[IGNORE]

N

116

OnBehalfOfSubID

String

[IGNORE]

N

144

OnBehalfOfLocationID

String

[IGNORE]

N

129

DeliverToSubID

String

[IGNORE]

N

145

DeliverToLocationID

String

[IGNORE]

N

43

PossDupFlag

Boolean

N

N

97

PossResend

Boolean

N

N

52

SendingTime

UTCTimestamp

Y

Y

122

OrigSendingTime

UTCTimestamp

N

N

212

XmlDataLen

Length

[IGNORE]

N

213

XmlData

data

[IGNORE]

N

347

MessageEncoding

String

[IGNORE]

N

369

LastMsgSeqNumProcessed

int

[IGNORE]

N

370

OnBehalfOfSendingTime

UTCTimestamp

[IGNORE]

N


  1. Standard Trailer

Tag

Field Name

Data Type

TWSEReq’d

FIXReq’d

93

SignatureLength

Length

[IGNORE]

N

89

Signature

data

[IGNORE]

N

10

CheckSum

String

Y

Y


  1. 交談層訊息(Session Level Messages)

  1. Logon

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

98

EncryptMethod

int

Y

Y

108

HeartBtInt

int

Y

Y

95

RawDataLength

int

Y

N

96

RawData

data

Y

N

141

ResetSeqNumFlag

Boolean

[IGNORE]

N

383

MaxMessageSize

int

[IGNORE]

N

384

NoMsgTypes

int

[IGNORE]

N


372

RefMsgType

String

[IGNORE]

N


385

MsgDirection

char

[IGNORE]

N


Standard Trailer


Y

Y


  1. Heartbeat

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

112

TestReqID

String

N

N


Standard Trailer


Y

Y


  1. Test Request

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

112

TestReqID

String

Y

Y


Standard Trailer


Y

Y


  1. Resend Request

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

7

BeginSeqNo

int

Y

Y

16

EndSeqNo

int

Y

Y


Standard Trailer


Y

Y


  1. Reject – Session Level

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

45

RefSeqNum

int

Y

Y

371

RefTagID

int

N

N

372

RefMsgType

String

N

N

373

SessionRejectReason

int

N

N

58

Text

String

N

N

354

EncodedTextLen

Length

[IGNORE]

N

355

EncodedText

data

[IGNORE]

N


Standard Trailer


Y

Y


  1. Sequence Reset

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

123

GapFillFlag

Boolean

N

N

36

NewSeqNo

int

Y

Y


Standard Trailer


Y

Y


  1. Logout

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

58

Text

String

N

N

354

EncodedTextLen

Length

[IGNORE]

N

355

EncodedText

data

[IGNORE]

N


Standard Trailer


Y

Y



  1. 應用類訊息(Application Messages)

  1. New Order Single

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

11

ClOrdID

String

Y

Y

37

OrderID

String

Y


1

Account

String

Y

N

21

HandlInst

Char

Y

Y

55

Symbol

String

Y

Y

54

Side

Char

Y

Y

60

TransactTime

UTCTimestamp

Y

Y

38

OrderQty

Qty

Y

N

40

OrdType

Char

Y

Y

59

TimeInForce

Char

Y

N

44

Price

Price

Y

N

10000

TwseIvacnoFlag

Char

Y

N

10001

TwseOrdType

Char

Y

N

10002

TwseExCode

Char

Y

N

10004

TwseRejStaleOrd

Boolean

Y

N

[IGNORE]


Standard Trailer


Y

Y


  1. Order Cancel/Replace Request

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

41

OrigClOrdID

String

Y

Y

11

ClOrdID

String

Y

Y

37

OrderID

String

Y

N

1

Account

String

Y

N

21

HandlInst

Char

Y

Y

55

Symbol

String

Y

Y

54

Side

Char

Y

Y

60

TransactTime

UTCTimestamp

Y

Y

38

OrderQty

Qty

Y

N

40

OrdType

Char

Y

Y

44

Price

Price

Y

N

10000

TwseIvacnoFlag

Char

Y

N

10002

TwseExCode

Char

Y

N

10004

TwseRejStaleOrd

Boolean

Y

N

[IGNORE]


Standard Trailer


Y

Y


  1. Order Cancel Request

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

41

OrigClOrdID

String

Y

Y

11

ClOrdID

String

Y

Y

37

OrderID

String

Y

N

1

Account

String

Y

N

55

Symbol

String

Y

Y

54

Side

Char

Y

Y

60

TransactTime

UTCTimestamp

Y

Y

10000

TwseIvacnoFlag

Char

Y

N

10002

TwseExCode

Char

Y

N

10004

TwseRejStaleOrd

Boolean

Y

N

[IGNORE]


Standard Trailer


Y

Y


  1. Order Status Request

    Tag

    Field Name

    Data Type

    TWSEReq'd

    FIXReq’d


    Standard Header


    Y

    Y

    11

    ClOrdID

    String

    Y

    Y

    37

    OrderID

    String

    Y

    N

    55

    Symbol

    String

    Y

    Y

    54

    Side

    Char

    Y

    Y

    10000

    TwseIvacnoFlag

    Char

    Y

    N

    10002

    TwseExCode

    Char

    Y

    N

    [IGNORE]


    Standard Trailer


    Y

    Y

  2. Execution Report

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

37

OrderID

String

Y

Y

11

ClOrdID

String

N

N

41

OrigClOrdID

String

N

N

17

ExecID

String

Y

Y

20

ExecTransType

Char

Y

Y

150

ExecType

Char

Y

Y

39

OrdStatus

Char

Y

Y

103

OrdRejReason

int

N

N

1

Account

String

N

N

55

Symbol

String

Y

Y

54

Side

Char

Y

Y

60

TransactTime

UTCTimestamp

Y

N

38

OrderQty

Qty

N

N

40

OrdType

Char

N

N

59

TimeInForce

Char

N

N

44

Price

Price

N

N

32

LastShares

Qty

N

N

31

LastPx

Price

N

N

151

LeavesQty

Qty

Y

Y

14

CumQty

Qty

Y

Y

6

AvgPx

Price

Y

Y

58

Text

String

N

N

10000

TwseIvacnoFlag

Char

N

N

10001

TwseOrdType

Char

N

N

10002

TwseExCode

Char

Y

N

[IGNORE]


Standard Trailer


Y

Y


  1. Order Cancel Reject

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

37

OrderID

String

Y

Y

11

ClOrdID

String

Y

Y

41

OrigClOrdID

String

Y

Y

39

OrdStatus

Char

Y

Y

1

Account

String

N

N

60

TransactTime

UTCTimestamp

N

N

434

CxlRejResponseTo

Char

Y

Y

102

CxlRejReason

int

N

N

58

Text

String

N

N


Standard Trailer


Y

Y


  1. Business Message Reject

Tag

Field Name

Data Type

TWSEReq'd

FIXReq’d


Standard Header


Y

Y

45

RefSeqNum

int

N

N

372

RefMsgType

String

Y

Y

380

BusinessRejectReason

int

Y

Y

58

Text

String

N

N


Standard Trailer


Y

Y



0


版權說明: 檔案資源由用戶上傳,僅供學習交流使用,尊重著作權。 若您認為內容涉及侵權,請點擊「侵權舉報」提交相關資料,我們將儘快核實並處理。