Expand description
FIX logs: tag=value messages, SOH or | delimited, read into a table of one row
per message.
Each tag in the file is a column, named from the FIX dictionaries (dict): 35
is MsgType, 55 is Symbol. An enumerated tag shows its names (54=1 is Buy)
with the code beside it in <name>_code; a tag repeated within a message (a
repeating group) keeps its first value and lists the rest in <name>_rest. Prices
and quantities become numbers and 52/60 timestamps datetimes when every value
reads as one. A line’s text before 8=FIX is kept as prefix, with the direction
and session it names. body_length_ok and checksum_ok check tags 9 and 10.
The log is read once, a piece at a time, into temporary Arrow IPC segments; a message, a value and the number of columns are bounded.
Modules§
- dict
- FIX data dictionaries: what a tag is called, what type its values are, and what its enumerated codes mean.
Structs§
Constants§
- BACK
- BATCH_
ROWS - Rows held before a batch is handed over.
- BATCH_
TEXT - Text held before a batch is handed over, whatever its rows. Each cell counts too, empty or not: every tag seen is a column in every row, so a log of thousands of tags would otherwise hold gigabytes of empty cells in one batch.
- FRONT
- The columns that are not tags, in front of them and after them.
- MAX_
FIELDS - The most fields one message may hold; the rest are left out.
- MAX_
MESSAGE - The longest message read; a longer one is cut there.
- MAX_
PREFIX - The longest prefix kept.
- MAX_
TAGS - The most tag columns; tags past this are left out.
Functions§
- detail
- The FIX tab of the Info panel: versions, dictionaries and each tag’s number.
- layers
- The dictionaries a log is read with: the search path’s, then each
--dict. - looks_
like - Whether the first bytes hold a FIX message:
8=FIX..., a delimiter and9=.