FIX(Financial Information eXchange)是一个行业标准的电子通讯协议,用于在金融界中开展电子交易。FIX报文是FIX协议中用于描述交易细节的具体消息内容。 FIX报文是使用标准格式和数据元素组成的一段文本。这些消息由发起方发送到接收方,以便快速地在交易及执行、结算和风险管理系统中自动化地执行交易。本文将会阐述FIX报文的结构、标签、类型以及一些常用的FIX消息类型。
FIX报文由多个段组成,每个段又由多个域(field)组成。域包括标签(tag)、值(value)和数据类型(data type)三部分。FIX报文中每个域的格式为:标签=值,其中标签是一个定长数字,用于表示该域的意义和位置,值是实际的内容。不同的域按照特定的顺序排列组成一个段,段之间通过定长的分隔符单独分离。每个FIX报文以起始标记 (8=FIX.x.x\001) 开始,以结束标记 (10=xxx\001) 结束,其中,x.x 代表协议的版本号,而 xxx 代表以数字形式表示的序列号。
FIX协议提供了很多不同的标签和消息类型,这些标签和消息类型都有明确规定的含义。例如,在基本交易报告中,Tag 35 指定了消息的消息类型,Tag 55 指定了交易品种代码,Tag 44 指定了价格等。FIX中提供了大量的标签和消息类型,以满足金融行业的不同需求。
标签是 FIX 报文的基本组成单元,每个标签都具有唯一的标识数字表示相应的域。而一些常用的标签如下所示:
• 35 = MsgType – FIX报文类型。
• 39 = MsgSeqNum – 总是包含三位数字,是通讯序号。
• 43 = PossDupFlag – 是否重传。
• 49 = SenderCompID – 发送方标识符。
• 55 = Symbol – 场外交易所代码。
• 60 = TransactTime – 交易时间,精确到毫秒。
• 150 = ExecType – 执行类型。
标签除了定义为 “必需” 的特定域意外,也可以被定义成任何自定义域应用于消息中以填写合适的信息。
FIX标准有多个不同的消息类型,每个消息类型定义了一组特定的FIX字段,用于处理某些类型的业务事件。FIX报文类型通过使用Tag 35来指明,不同的类型带有不同的标签字段集合。
FIX协议定义了超过 30 种消息类型。常用的消息类型如下:
• Order:用于提交和修改订单。
• ExecutionReport:执行报告,经纪商将对客户订单的状态和执行细节的响应。
• Cancel:用于取消未执行的订单。
• BusinessMessageReject:用于中继业务消息拒绝情况。
FIX的一些常见消息类型包括:
• Logon:用于与 FIX会话中的对手方建立连接。
• Logout:用于在正常交互之后从FIX会话中断开连接。
• Heartbeat:用于检测FIX连接的保持活性。
• Test Request:测试某个连接是否仍然可以接受请求。
• Resend Request:重新请求以前发送的所有或部分消息序列。
除了上述常用的FIX消息类型外,FIX协议还定义了一些其他类型的消息,以用于更大范围和更广泛的交易和支持。