Imported from previous forum
I am writing a program that will route orders between a FIX 4.2 client and an exchange. If I sent an order status request to the exchange, and receive a NAK in response, how should the NAK be mapped back to FIX?
I am thinking about using a business message reject with a reason of "0" for "Other." Then in the text field I will write the error message from the exchange. Any suggestions?
Thanks,
Dave
[ original email was from Jim Northey - jnorthey@lasalletech.com ]
The Order Status Request should be rejected using an Execution Report (refer to pg 133 or thereabouts in the section describing the Business Reject Message).
Here is a recommended implementation (not explicitly documented - so please respond with any refutations):
Set OrdStatus[39]=8 (Rejected)
Set OrdRejReason[103]= an appropriate value - for instance 5 (Unknown Order) would be a likely reason for rejecting an order status request. If one of the other values is not applicable used OrdRejReason[103]=0 (Broker Option). While this may sound unusual Broker Option - we have redefined the description of this value to mean "Broker / Exchange Option" - its use means that the request was valid from a FIX perspective but rejected because of counterparty broker or exchange business rules.
ON ALL EXECUTION REPORTS - THE ORDERID[37] MUST BE PROVIDED. By convention if the ORDERID is unknown (as would likely be the case for an invalid Order Status Request) ORDERID[37] should be set to the string "UNKNOWN".
The ClOrdID[11] is not required on Execution Reports - but you should provide on the Execution Report reporting the reject the value of ClOrdID[11] provided on the Order Status Request (ClOrdID[11] is required on this message).
The value for ExecTransType[20] could be open for debate in this case - but I would recommend using the value ExecTransType[20]=3 (Status) - as this Execution Report reporting the rejection of an Order Status Request is related to status of an order and is not a NEW Execution Report (reporting new state of an order).
The value of ExecType[150] should be set to 8 (Rejected) - as is done in the OrdStatus[39] field.
It is highly recommended that the Text[58] field be set to a brief, meaningful description of why the Order Status Request was rejected.
> I am writing a program that will route orders between a FIX 4.2 client and an exchange. If I sent an order status request to the exchange, and receive a NAK in response, how should the NAK be mapped back to FIX?
>
> I am thinking about using a business message reject with a reason of "0" for "Other." Then in the text field I will write the error message from the exchange. Any suggestions?
>
> Thanks,
>
> Dave
>