drewnoakes / fix-decoder

Unravels FIX messages into human readable tables
https://drewnoakes.com/fix-decoder/
80 stars 34 forks source link

Visually identify header fields #11

Closed drewnoakes closed 10 years ago

drewnoakes commented 10 years ago

The structure of FIX messages is such that nested structures are represented flattened in the parent. Their boundaries are not self-describing, and additional metadata about the format is required.

Header fields appear at the beginning of the message.

From Wikipedia:

Up to FIX.4.4, the header contained three fields: 8 (BeginString), 9 (BodyLength), and 35 (MsgType) tags.

From FIXT.1.1 / FIX.5.0, the header contains five mandatory fields and one optional field: 8 (BeginString), 9 (BodyLength), 35 (MsgType), 49 (SenderCompID), 56 (TargetCompID) and 1128 (ApplVerID - if present must be in 6th position).

Further, messages which do not contain a valid header should be identified as erroneous.