Skip to main content

Module fix

Module fix 

Source
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§

FixReader
Reads a FIX log a piece at a time.
Stats
What reading noticed.

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 and 9=.