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 数应当是唯一的。如果重复,将被认为是一个违反规范文档的错误
例如:
FIXML结构
待续... ...