Trade Maker Direct Scenarios

These scenarios test limit order and quote flows. For market orders, see Trade Taker Scenarios.

Place a Limit Order/Quote

Goal: Show that a resting order can be added to the order book.

StepByAction
1YouPlace a limit order to BUY/SELL QUANTITY of SECURITY at PRICE
WhereObservation
FIX-TROrder is accepted (Ack)
UIOrder appears in the order book
FIX-MDPrice appears in top of book
UI, FIX-OBOrder appears in depth of book

Place an Opposing Limit Order/Quote

Goal: Show that an opposing order is added to the order book correctly and does not conflict with the first order.

StepByAction
1YouPlace a limit order to BUY/SELL QUANTITY of SECURITY at PRICE, on the opposite side to the first scenario
WhereObservation
FIX-TROrder is accepted (Ack)
UIOrder appears in the order book opposite the first order
FIX-MDPrice appears in top of book
UI, FIX-OBOrder appears in depth of book

Update a Limit Order/Quote Price

Goal: Test order updates and price changes.

StepByAction
1YouUpdate the order from the first scenario with a new PRICE
WhereObservation
FIX-TROrder is REPLACED (Ack)
UIOrder appears in the order book with the new price
FIX-MDNew price appears in top of book
UI, FIX-OBOrder is updated in depth of book with the same IOI ID

Update a Limit Order/Quote Quantity

Goal: Test order quantity updates.

StepByAction
1YouUpdate the order from the first scenario with a new QUANTITY
WhereObservation
FIX-TROrder is REPLACED (Ack)
UIOrder appears in the order book with the new quantity
FIX-MDNew quantity appears in top of book
UI, FIX-OBOrder is updated in depth of book with the same IOI ID

Cancel a Limit Order/Quote

Goal: Show that the order is removed from the marketplace.

StepByAction
1YouCancel an order in the market
WhereObservation
FIX-TROrder is CANCELED (Ack)
UIOrder is removed from the order book
FIX-MDBest bid or offer is deleted
UI, FIX-OBA delete message is sent for that IOI ID

Complete Fill a Limit Order/Quote

Goal: Check the execution flow for a matching fill and the removal of the order.

StepByAction
1YouPlace a good limit order/quote on the market
2OpenYieldHit/lift that order for its full quantity
WhereObservation
FIX-TRA TRADE/FILLED execution report is received
UIOrder is removed from the order book
UI, FIX-OBThe order is created, then deleted, for that order's IOI ID
FIX-MDBest bid or offer is updated or deleted (if top of book), and a TRADE message is received
FIX-DCA TRADE/FILLED execution report is received

Partial Fill a Limit Order/Quote

Goal: Check the execution flow for a partial fill and the update of order quantity.

StepByAction
1YouPlace a good limit order/quote on the market
2OpenYieldHit/lift that order with a smaller quantity
WhereObservation
FIX-TRA TRADE/PARTIAL execution report is received
UIOrder is updated in the order book
UI, FIX-OBThe order is created, then updated, for that order's IOI ID
FIX-MDA TRADE message is received. Best bid and offer are no longer checked from here.
FIX-DCA TRADE/PARTIAL execution report is received

Cancel after Partial Fill

Goal: Check that the order is removed and a completion message is received.

StepByAction
1YouPlace a good limit order/quote on the market
2OpenYieldHit/lift that order with a smaller quantity
3YouCancel the order
WhereObservation
FIX-TRThe order is accepted, then a TRADE/PARTIAL is received, and finally a TRADE/CANCEL execution report is received
UIOrder is removed from the order book
UI, FIX-OBThe order is created, updated, then removed for that order's IOI ID
FIX-MDA TRADE message is received. MD is no longer checked from here.
FIX-DCA TRADE/PARTIAL execution report is received

Update Quantity after Partial Fill with More

Goal: Check that the shown quantity is as expected.

StepByAction
1YouPlace a good limit order/quote on the market
2OpenYieldHit/lift that order with a smaller quantity
3YouUpdate the order quantity
WhereObservation
FIX-TROrder is accepted, a PARTIAL fill is received, then the update is REPLACED
UIOrder is placed on the order book, updated on fill, then updated again on update. The quantity shown is the new order quantity minus the amount already filled.
UI, FIX-OBThe order is created, updated, then updated again for that order's IOI ID
FIX-DCA TRADE/PARTIAL execution report is received

Update Quantity after Partial Fill with Less

Goal: Check that setting the order quantity to less than or equal to the filled quantity cancels the order.

StepByAction
1YouPlace a good limit order/quote on the market
2OpenYieldHit/lift that order with a smaller quantity
3YouUpdate the order quantity to the filled quantity or less
WhereObservation
FIX-TROrder is accepted, a PARTIAL fill is received, the update is accepted, then a CANCEL is received
UIOrder is placed on the order book, updated on fill, then removed
UI, FIX-OBThe order is created, updated, then removed for that order's IOI ID
FIX-DCA TRADE/PARTIAL execution report is received

Update Price after Partial Fill and Complete

Goal: Check that you can accept multiple fills on the same order at different prices.

StepByAction
1YouPlace a good limit order/quote on the market
2OpenYieldHit/lift that order with a smaller quantity
3YouUpdate the order PRICE
4OpenYieldHit/lift that order for the remaining quantity
WhereObservation
FIX-TROrder is accepted, a PARTIAL fill is received, the update is accepted, then a FILLED is received at the new price
UIOrder is placed on the order book, updated on fill, updated again on update, then removed after the second execution. The price moves as expected.
UI, FIX-OBThe order is created, updated on fill, updated on price, then removed on final fill for that order's IOI ID
FIX-DCA TRADE/PARTIAL execution report, followed by a TRADE/FILLED execution report