##order states open2cancel/replace

Each OMS (order management system) in an OMS chain [2] remembers the state of each order [1]. Let’s focus on OMS4. When OMS4 receives an order-cancel/replace request message from upstream, will OMS4 accept the request and send the message downstream? Depends on the order state (of the order8) in question.

I believe if the order has been already rejected or fully filled or cancelled then not possible. OMS4 would reject the request.

What if order8 is in New state? That means acknowledged by liquidity venue but no fill received yet. Yes request is acceptable.

What if order8 is in PendingNew? That means OMS4 has not received the acknowledgement from downstream. meaning the liquidity venue has yet to enqueue the order. Well, in this case cancel (or replace) request will be forwarded to liquidity venue. OMS4 can optionally send back a PendingCancel or PendingReplace to indicate the current order status. In time, liquidity venue will either accept the request, or reject it because “already filled”, and send this response to OMS4.

[1] in non-volatile memory, and can respond to status queries and can often broadcast the order status to subscribers.

[2] A large trading platform often has a chain consisting of multiple OMS nodes, such as clientConnectivity, smartOrderRouter, AlgoEngine. I feel should not be more than 5 nodes, unless some aggregation is required.

Posted in ECN

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s