The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

Reflector contains a monolithic FIX message parser which interprets sequences of bytes and translates them into possible order actions.

It is compatible with all current FIX protocol versions without needing to differentiate them. It handles all current FIX venues (except RBS RFQ) while rarely differentiating them. It performs deserialization, field parsing, order action interpretation, and constraint/error checking all in one go. It preserves all field locations, so that it can write back to arbitrary fields later if necessary. Since this is a real time application, Reflector does all this without touching the heap.

Every session type except DATA requires inspection by the FIX Parser: LOGON, PASS_TKR, PASS_MKR, TAKER, MAKER, & COPY.

The messages within each SessionType are separated further by their direction of transit:

  • Outbound messages are requests, since the whole objective of this mechanism is to constrain the trader under the weight of risk limits.
  • Inbound messages are updates, as the venue is, by definition, a source of truth.

Discipline

Reflector is only allowed to alter the semantics of outbound FIX messages.

When it alters them, it always alters in the direction of voiding an order action (TAKER), voiding an execution (MAKER), or changing passwords (LOGON, PASS_TKR, PASS_MKR). Reflector shall never change the identity of a quote, order, or execution. On inbound FIX messages, the only fields that Reflector is allowed to alter are Text[58] and Checksum[10]. This is predicated on the assumption that text fields have no semantics.