The Lab

Versions Compared

Key

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

...

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.


Parser behaviour necessarily varies depending on the 

Session Type

Logon

Outbound

On the outbound direction of a session in logon state, the only allowed messages are Logon[A] and Logout[5]. Logon[A] messages are inspected. Logout[5] messages are ignored. If any other message is received, the result is session termination. On an outbound Logon[A] message, a credential is deduced and looked up using the ordered triple { ExchangeCode, COMP_ID, SUB_ID }.

If a credential is not found, or if the credential is disabled, or if any risk pools containing the credential is in a UNPLUGGED state, or if password translation is enabled and password match failed, then the session is terminated. Otherwise, the message passes through.


FlagPresenceFieldType
COMP_IDRequiredSenderCompID[49]STRING
SUB_IDOptionalSenderSubID[50]STRING
PASSWORDOptionalPassword[554]STRING
NEW_PASSWORDOptionalNewPassword[925]STRING



Tip
titlePassword Translation

Password translation is an optional feature where the trader is not provided the venue's FIX logon password. Instead, the trader is provisioned a different password of the same length. On logon, Reflector checks for the fake password. Upon matching, it overwrites the fake password with the real password.


Warning
titleUserRequest[BE]
EBS & Reuters utilize a session-in-session scheme where the inner session must be logged onto using the UserRequest[BE] message. In practice, almost everyone uses the same credentials for the outer and inner sessions. Reflector requires that this be the case, and performs password translation again on the UserRequest[BE] message.

Inbound


Password Change

Outbound

Inbound


Taker

Outbound

NewOrderSingle[D], QuoteResponse[AJ], & OrderCancelReplaceRequest[G]

OrderMassActionRequest[CA]

Inbound

ExecutionReport[8] & TradeCaptureReport[AE]

OrderMassCancelReport[r] & OrderCancelReject[9]

Reject[3] & BusinessMessageReject[j]

Maker

Outbound

ExecutionReport[8] & ExecutionAcknowledgement[BN]

Maker Blocking

Inbound

ExecutionReport[8] & ExecutionAcknowledgement[BN]

DontKnowTrade[Q]

OrderTimeOut[OT] & Currenex OrderTimeOut[U3]

Reject[3] & BusinessMessageReject[j]

Copy