FIXML是FIX协议的XML表达形式,按语义层级组织字段,用于监管报送、清算对账等后台场景,不替代实时FIX通信;其结构分FIXML根标签、Header区和ApplicationMessage区,严格遵循FIX数据字典。

FIXML 是 FIX 协议的 XML 表达形式,不是简单把 tag=value 换行写成 XML 标签,而是按语义层级组织字段,让消息更易读、可验证、适合存档和跨系统交换。看懂 FIXML,关键不在“格式漂亮”,而在理解它怎么映射原始 FIX 逻辑。
FIXML 的核心定位:后台友好型 FIX
FIXML 不替代 FIX 实时通信,而是补充它——FIX 负责快(比如下单、成交推送),FIXML 负责稳(比如监管报送、清算对账、审计日志)。所以 FIXML 消息通常:
- 不走实时会话层(如 FIXT),常通过文件、MQ、HTTP 或数据库传输
- 包含完整上下文,比如 Header 中显式带 SendingTime、Sender/Target CompID,不依赖会话隐含状态
- 字段命名直白(如
而非 ),但底层仍严格遵循 FIX 数据字典(同一 Tag 编号、数据类型、业务含义)
典型 FIXML 消息结构拆解(以 New Order Single 为例)
一个标准 FIXML 4.2 的订单消息大致分三层:
-
FIXML 根标签:
或,声明协议版本 -
Header 区:包含会话无关的元信息,如
、、,部分字段(如 PossDupFlag)也在此显式设置 -
ApplicationMessage 区:承载业务逻辑,比如
,内部嵌套:- 基础字段:
(Tag 11)、(Tag 54,值为 "1" 或 "2") - 复合组件:
下再包(Tag 55)、(Tag 48)等 - 数量与价格:
(Tag 38)、(Tag 40)
- 基础字段:
注意:所有字段值类型、必选性、枚举范围,都和对应 FIX 版本的数据字典完全一致。只是表现形式从线性字符串变成树状结构。
怎么看懂一个实际 FIXML 文件?三步法
拿到一个 .xml 文件或 HTTP body,别从头硬读,按顺序抓重点:
- 先看
version属性或里的(如有),确认是 FIXML 4.2 / 4.4 / 5.0,不同版本字段支持有差异 - 快速定位
下的主消息类型标签,如、、,这直接对应 FIX 中的 MsgType(Tag 35) - 对照 FIX 字典查关键字段:比如看到
就知道是限价单(Limit Order),等同于 FIX 中2 35=D|40=2;是买(Buy),即 Tag 54=11
常见误区提醒
容易混淆的点,实际排查时高频出现:
- FIXML 不等于“XML 化的 FIX 日志”——它有独立 DTD 或 XSD Schema 校验,非法嵌套或缺失必填字段会直接解析失败
- 不是所有 FIX 字段都会出现在 FIXML 中:有些会话层字段(如 Tag 34=MsgSeqNum)由传输层管理,FIXML 里通常不显式携带
- FIXML 可能含扩展字段,但命名规则需统一:企业自定义字段一般放在
下或用命名空间前缀,不能随意加
基本上就这些。FIXML 本身不复杂,但容易忽略它和 FIX 的“同源不同形”关系——本质是一套语义,两种语法。看的时候带着 FIX 字典对照,比死记 XML 标签有用得多。










