天天看點

【FIX協定】金融資訊交換協定 - 2 - 協定結構FIX消息格式FIX協定消息文法

FIX消息格式

FIX協定的格式存在着兩種結構:

  • tag=value結構
  • FIXML 結構

目前采用的都是第一種方式來完成資料交換。

其中FIXML可讀性更強,但占用更多的帶寬資源。

FIX協定消息文法

普通FIX文法規則

是對tag=value結構和FIXML都适用的文法:

Data Type

  • int:整型 沒有小數點,逗号,可以包含正負号的數字序列。注,int的值前面可以包含0。(如 “00023” = “23”).
  • float: 浮點數。可包含小數點和正負号的數字序。累計總長度為15個數字。前面可以有0,小數末尾可加零,或截尾
  • String: 字元串。是大小寫敏感的。
  • char: 字元。除分界符号SOH外的字元。大小寫敏感。.
  • data:原始資料。沒有格式和内容限制。之前緊接有一個長度域。長度域應制定data資料域包含的位元組數(不包含分界符所占位元組)。資料中可能包含分界符位元組,是以需要用data類型資料長度來輔助差別。

tag=value結構

  • FIX消息的一般格式為:一個标準頭+消息體+一個标準的尾部
  • 消息頭的前三個域為:BeginString(tag #8)+BodyLenth(tag#9)+MsgType(tag#35)
  • 标準消息尾的最後一個域為CheckSum(tag#10)
  • 資料域分界符,在FIX一個消息内的所有資料域由一個分界字元标記結尾。用ASCII碼的“SOH”(#001,hex:0x01)進行間隔。所有消息由“8=FIX.x.y<SOH>”标記開始,最後由“10=nnn<SOH>“标記結束。
  • 一個特定的tag 數應當是唯一的。如果重複,将被認為是一個違反規範文檔的錯誤

例如:

【FIX協定】金融資訊交換協定 - 2 - 協定結構FIX消息格式FIX協定消息文法

FIXML結構

待續... ...