The standard venue FIX specifications provide guidance for venues looking to connect with Moment's EMS. By following these standards, venues can significantly improve their time to market in reaching customers of Moment. Venues typically provide two FIX sessions to Moment: one for market data and one for trading. While some venues provide a third session for receiving drop copies, the standards provided below incorporate all clearing-related information into the trading session's Execution Report message, eliminating the need for a separate drop copy session.
This section is intended for trading venues that are looking to stream liquidity to Moment's EMS, not clients of Moment that are users of the EMS. Clients of Moment should refer to the FIX Trading API section for information on connecting to and using the EMS.
Market Data Session
Via the market data session, Venues send one type of message to Moment: a Market Data Incremental Refresh (35=X). Moment sends no application messages to the Venue via the market data session.
Order Entry Session
All trades, if not immediately rejected, should be immediately acknowledged.
Via the order entry session, Moment sends the following messages to the Venues:
- New Order Single (35=D) to initiate a new order.
- Order Cancel Request (35=F) to cancel an order.
Venues send the following messages to Moment:
- Order Execution Report (35=8) to acknowledge an order, reject a new order, cancel an order, or communicate a partial or full fill for an order.
- Cancel Request Execution Report (35=8) to acknowledge an Order Cancel Request.
- Order Cancel Reject (35=9) to reject an Order Cancel Request.
Examples
The typical flow for an accepted trade will look like:
Moment > Venue: 35=D - NewOrderSingle
Venue > Moment: 35=8, 39=0, 150=0 - ExecutionReport Ack
Venue > Moment: 35=8, 39=2, 150=F - ExecutionReport Trade
The typical flow for a rejected trade will look like:
Moment > Venue: 35=D - NewOrderSingle
Venue > Moment: 35=8, 39=8, 150=8 - ExecutionReport Rejected
The typical flow for a partially filled trade will look like:
Moment > Venue: 35=D - NewOrderSingle
Venue > Moment: 35=8, 39=0, 150=0 - ExecutionReport Ack
Venue > Moment: 35=8, 39=1, 150=F - ExecutionReport Trade (Partially Filled)
Venue > Moment: 35=8, 39=2, 150=F - ExecutionReport Trade (Fully Filled)
The typical flow for a canceled trade will look like:
Moment > Venue: 35=D - NewOrderSingle
Venue > Moment: 35=8, 39=0, 150=0 - ExecutionReport Ack
Moment > Venue: 35=F - OrderCancelRequest
Venue > Moment: 35=8, 39=4, 150=4 - ExecutionReport Canceled