Project Record
FIX Parser
Parser for FIX tag-value messages with human-readable aliases and checksum verification.
Context
Front Arena and other execution systems emit FIX (Financial Information eXchange) messages that differ by venue and version. To standardize execution data for reconciliation, compliance, and reporting, we needed a single parser that could handle multiple delimiters and validate message integrity before feeding downstream pipelines.
Problem
Raw FIX logs are tag-value streams with no schema enforcement. Venues use | or SOH (ASCII 1) as delimiters; checksums are optional and sometimes wrong. Downstream consumers (e.g. trade labeling, reconciliation) require structured fields and human-readable aliases (e.g. ClOrdID, Side) instead of raw tag numbers.
Input
Supports both | and SOH delimiters in messages such as:
8=FIX.4.4|35=D|49=BUY|56=SELL|...|10=072|
Validation
Checksum is computed modulo 256 over the message body before 10=. Invalid checksums are logged and optionally rejected so bad data does not propagate.
Implementation
- Tokenize by delimiter, parse tag=value pairs, resolve tag numbers to standard FIX dictionary names.
- Optional strict mode: reject messages with missing required tags or failed checksum.
- Output: JSON or internal structs for order/execution events, with aliases for reporting and dashboards.
Trade-offs
Strict validation improves data quality but can drop valid messages from non-standard venues. We run in lenient mode by default and surface validation failures to a separate review queue.