Discussion Forums

Determining Filled order status when another status takes precedence on fills?
Dot Dot /
24 Feb 2010 11:43AM ET

If my order fills while a cancel is pending (ie the fills have orderstatus=PendingCxl, taking precedence over Filled, as in step 6 of FIX4.2 state-change matrix D4), and then the cancel is rejected, then:

Is there a reliable way of detecting that my order has moved into the Filled status, based on status-like fields (rather than quantities) ?

My sessions are a mix of 4.0, 4.2 and 4.4.

For 4.2 sessions, it's easy: I could either look at the ExecType on the fills (which would be "Partial Fill" and then "Fill") and/or look at the OrderStatus on the CancelReject that follows (which would be OrderStatus=Filled)

But what should I do for 4.0 sessions, where neither of those tags are present in those messages?
(Maybe 4.0 has no precedence rule, but some of our counterparties apply it anyway.)

And in FIX 4.4, ExecType values of PartialFill and Fill have both been merged to just "Trade" - which isn't as useful for determining when the order is completely filled. Is looking at the CancelReject's status the only option here ?

(I realise I could just check whether ExecQty=OrderQty on each fill, but was wondering if there was something I'm missing here.)

Thanks in advance.