ClOrdId and OrgClOrdId

Imported from previous forum

[ original email was from Chandrasekhar Turlapati - chandrasekhar.turlapati@headstrong.com ]
Hi,

Can anyone tell me how an exchange order cancellation must send out execution report with Tag 11 and Tag 41 to the clients?

For example
Client order ID Original Client Order ID
11= 41=

New order 5002
Order Modification 5003 5002
Order Modification 5004 5003
Order Cancellation(by exchange)-? ?

What should be sent in the Tag 11 and Tag 41 for the order cancel confirmation message to clients where the exchange cancels the order.

Regards
T.C

Hi,

Can anyone tell me how an exchange order cancellation must send out
execution report with Tag 11 and Tag 41 to the clients?

               11=  41=

New order 5002
Order Modification 5003 5002
Order Modification 5004 5003
Order Cancellation(by exchange)-? ?

What should be sent in the Tag 11 and Tag 41 for the order cancel
confirmation message to clients where the exchange cancels the order.

For a normal cancel issued the client, tag 41 would contain the reference to the order to be cancelled and tag 11 the reference to the cancel request. Since there is no client cancel request, I would send

ExecutionReport(OrigClOrdID=5004)

But scenario E.1.b “Unsolicited cancel of a part-filled order” in FIX 4.4 spec, vol. 4 says

ExecutionReport(ClOrdID=5004,ExecRestatementReason=…)

where ExecRestatementReason should give the reason for unsolicited cancels. So I would adhere to the FIX spec here.

Any more comments on this?

Cheers, Jörg

Hi,

Can anyone tell me how an exchange order cancellation must send out
execution report with Tag 11 and Tag 41 to the clients?

               11= 41= New order 5002 Order Modification 5003 5002
               Order Modification 5004 5003 Order Cancellation(by
               exchange)-? ?

What should be sent in the Tag 11 and Tag 41 for the order cancel
confirmation message to clients where the exchange cancels the order.

For a normal cancel issued the client, tag 41 would contain the
reference to the order to be cancelled and tag 11 the reference to the
cancel request. Since there is no client cancel request, I would send

ExecutionReport(OrigClOrdID=5004)

But scenario E.1.b “Unsolicited cancel of a part-filled order” in FIX
4.4 spec, vol. 4 says

ExecutionReport(ClOrdID=5004,ExecRestatementReason=…)

where ExecRestatementReason should give the reason for unsolicited
cancels. So I would adhere to the FIX spec here.

Any more comments on this?

Cheers, Jörg

=============================================================

if ClOrdID=5004 is sent in the cancel confirmation message should we be sending OrigClOrdID also as 5004 ? Or what value.

regards,
bipin

I believe this is what you’re looking for:

                             11= 41= New order 5002 Order
                             Modification 5003 5002 Order
                             Modification 5004 5003 Order
                             Cancellation(by exchange)- 5005 5004

No. The term “Cancellation(by exchange)” is misleading. The exchange does not have to (should not?) allocate a new ClOrdID, if it cancels orders without client request. Therefore, the ExecutionReport cannot reference some ClOrdID in the same way as it does in response to client-initiated OrderCancelRequests.

Let me give two example scenarios to compare:

  1. Cancel initiated by client:

=> NewOrderSingle(11=5002)
<= ExecutionReport(New, 11=5002)
=> OrderModificationRequest(11=5003, 41=5002)
<= ExecutionReport(Replaced, 11=5003, 41=5002)
=> OrderModificationRequest(11=5004, 41=5003)
<= ExecutionReport(Replaced, 11=5004, 41=5003)
=> OrderCancelRequest(11=5005, 41=5004)
<= ExecutionReport(Cancelled, 11=5005, 41=5004)

  1. Cancel initiated by exchange:

=> NewOrderSingle(11=5002)
<= ExecutionReport(New, 11=5002)
=> OrderModificationRequest(11=5003, 41=5002)
<= ExecutionReport(Replaced, 11=5003, 41=5002)
=> OrderModificationRequest(11=5004, 41=5003)
<= ExecutionReport(Replaced, 11=5004, 41=5003)
== exchange initiated cancel ==
<= ExecutionReport(Cancelled, 11=5004, 378={6, 7, 9, 99})

where tag 378 (ExecRestatementReason) should give the reason for this unsolicited cancel.

Now you can see the difference between the two ERs at the end?

Did I miss(understand) something?

Cheers, Jörg

=============================================================

if ClOrdID=5004 is sent in the cancel confirmation message should we
be sending OrigClOrdID also as 5004 ? Or what value.

regards, bipin

Hi,

Can anyone tell me how an exchange order cancellation must send out
execution report with Tag 11 and Tag 41 to the clients?

               11= 41= New order 5002 Order Modification 5003
               5002 Order Modification 5004 5003 Order
               Cancellation(by exchange)-? ?

What should be sent in the Tag 11 and Tag 41 for the order cancel
confirmation message to clients where the exchange cancels the
order.

For a normal cancel issued the client, tag 41 would contain the
reference to the order to be cancelled and tag 11 the reference to the
cancel request. Since there is no client cancel request, I would send

ExecutionReport(OrigClOrdID=5004)

But scenario E.1.b “Unsolicited cancel of a part-filled order” in FIX
4.4 spec, vol. 4 says

ExecutionReport(ClOrdID=5004,ExecRestatementReason=…)

where ExecRestatementReason should give the reason for unsolicited
cancels. So I would adhere to the FIX spec here.

if ClOrdID=5004 is sent in the cancel confirmation message should we be
sending OrigClOrdID also as 5004 ? Or what value.

The “cancel confirmation message” is ExecutionReport(OrdStatus=Cancelled). So if the client did not send any OrderCancelRequest(ClOrdID=5005, OrigClOrdID=5004), but the exchange cancelled the message invisibly, there is nothing the OrigClOrdID could refer to. I.e. just return ClOrdID=5004 and omit OrigClOrdID altogether.

Cheers, Jörg