Imported from previous forum
In FIX 4.0, does anyone know if you can bust a canceled order status? For example:
MsgA 35=8, 39=1, 17=4
MsgB 35=8, 39=4, 17=5
MsgC 35=8, 20=1, 17=6, 19=5 - Is MsgC possible??
Also in FIX 4.0, after an order has been canceled and a bust has been issued on a partial fill - what is the order status of the bust message?
MsgA 35=8, 39=1, 17=4, 14=500, 32=500
MsgB 35=8, 39=4, 17=5, 14=500, 32=0
MsgC 35=8, 20=1, 17=6, 19=4, 14=0, 32=0, 39=???
Thanks - Kara
[ original email was from Ryan Pierce - rpierce@taltrade.com ]
> In FIX 4.0, does anyone know if you can bust a canceled order status? For example:
>
> MsgA 35=8, 39=1, 17=4
> MsgB 35=8, 39=4, 17=5
> MsgC 35=8, 20=1, 17=6, 19=5 - Is MsgC possible??
I don’t know if any FIX specs prior to FIX 4.3 made statements explicitly prohibiting this. As you’ve noted, it’s technically possible to represent a bust of a cancel, which, presumably, would make the order live again. However, I’d recommend strongly against doing that for two reasons:
#1. It seems like a pretty bad business practice. Telling the customer the order is dead, and then changing your mind and saying that it really is live, can lead to a very angry customer.
#2. The FIX Technical Committee decided that such a behavior should not be supported by the FIX spec, and, in FIX 4.3, removed ExecTransType and added ExecType’s to cancel and correct a trade. Thus, it isn’t technically possible to do this in FIX 4.3.
> Also in FIX 4.0, after an order has been canceled and a bust has been issued on a partial fill - what is the order status of the bust message?
>
> MsgA 35=8, 39=1, 17=4, 14=500, 32=500
> MsgB 35=8, 39=4, 17=5, 14=500, 32=0
> MsgC 35=8, 20=1, 17=6, 19=4, 14=0, 32=0, 39=???
What to do is not really well defined in FIX 4.0.
In FIX 4.1 and later, the OrdStatus of Cancelled was defined to take priority. So OrdStatus=Cancelled, and, if another trade is sent later to replace the one busted, OrdStatus=Cancelled on that as well (although ExecType=Partial Fill, indicating the new trade.) You can see examples of this:
- FIX 4.3 vol 4 Order State Change Matrices example 39
- FIX 4.2 Appendix D35
FIX 4.1 doesn’t have such an example, but it is usually safe to use FIX 4.2 matrices in 4.1, keeping in mind the fact that 4.2 split Pending Cancel and Pending Replace into two distinct states.
In FIX 4.0, there are two lines of thought:
-
Report Cancelled, as that is the OrdStatus used FIX 4.1-4.3.
-
Report Partial Fill, as that is the ExecType value in FIX 4.1-4.2 (where ExecType indicated the type of execution being busted.)
I really don’t think one can make an authoritative argument either way about what is best to do here in FIX 4.0.