Unsolicited cancel for GTC orders

Imported from previous forum

What should the client order id be for sending out an unsolicited cancel.
I am acting on behalf of a sell-side in this case.

Incoming order
11=1000

outgoing cancel
11= ??
37=11

Can I just set 11=37=1000

Fix protocol says that a new client order id has to be generated for cancels. But since this is an outgoing unsolicited cancel, I cannot generate a new client order id. Should I just use the previous one.
-Ram

The rule for a new ClOrdID on a cancel applies if the FIX user is sending a cancel request, MsgType=F. But in your example, it’s unsolicited, so you should simply use the original value in tag 11.

Tag 37 should be set to the OrderID assigned when the order was acknowledged, which is probably not the same value in tag 11. Order IDs are generated by the sell-side system, so your unsolicited cancel should be 11=1000, 37=(order ID).

David Rhodes
TransactTools

What should the client order id be for sending out an unsolicited
cancel. I am acting on behalf of a sell-side in this case.

Incoming order 11=1000

outgoing cancel 11= ?? 37=11

Can I just set 11=37=1000

Fix protocol says that a new client order id has to be generated for
cancels. But since this is an outgoing unsolicited cancel, I cannot
generate a new client order id. Should I just use the previous one. -Ram

[ original email was from John Prewett - jprewett@lavatrading.com ]
> What should the client order id be for sending out an unsolicited

cancel. I am acting on behalf of a sell-side in this case.

Incoming order 11=1000

outgoing cancel 11= ?? 37=11

Can I just set 11=37=1000

Fix protocol says that a new client order id has to be generated for
cancels. But since this is an outgoing unsolicited cancel, I cannot
generate a new client order id. Should I just use the previous one. -Ram

Hi Ram,

A new ClOrdID is indeed required for a CancelRequest.
However, you aren’t sending a CancelRequest.
You are sending an unsolicited cancel in the form of an ExecutionReport.
In this case, you should use the “current” ClOrdID for this order.
You shouldn’t send any field in OrigClOrdID.
The OrderID (tag 37) field is whatever you would like it to be.

So the important fields in your unsolicited cancel should be:

35=8 (ExecutionReport)
11=ClOrdID from most recently acknowledged version of order
41=This field should not be sent
37=whatever you want
17=Unique ExecID generated by you
39=4 (OrdStatus=Canceled)
55=Symbol sent on original order
54=side from original order
38=orderqty from most recently acknowledged version of order
32=0 (no LastShares)
31=0 (no LastPx)
14=Current executed quantity
6=Current Average price of executed quantity
58=Some useful text indicating the reason for the unsolicited cancel

I hope this helps.

John Prewett

Thanks for the clarification.
I did not expect such a quick response.
So, since I am sending back an execution report the cliordid should be
"ClOrdID from most recently acknowledged version of order "
I was referring to “OrigClOrdID” when I used tag 37 (it should be 41)
Anyway, the reply already covers that.
Thanks John,
Thanks David.
-Ram

What should the client order id be for sending out an unsolicited
cancel. I am acting on behalf of a sell-side in this case.

Incoming order 11=1000

outgoing cancel 11= ?? 37=11

Can I just set 11=37=1000

Fix protocol says that a new client order id has to be generated
for cancels. But since this is an outgoing unsolicited cancel, I
cannot generate a new client order id. Should I just use the
previous one. -Ram

Hi Ram,

A new ClOrdID is indeed required for a CancelRequest. However, you
aren’t sending a CancelRequest. You are sending an unsolicited
cancel in the form of an ExecutionReport. In this case, you should
use the “current” ClOrdID for this order. You shouldn’t send any
field in OrigClOrdID. The OrderID (tag 37) field is whatever you
would like it to be.

So the important fields in your unsolicited cancel should be:

35=8 (ExecutionReport) 11=ClOrdID from most recently acknowledged
version of order 41=This field should not be sent 37=whatever you want
17=Unique ExecID generated by you 39=4 (OrdStatus=Canceled) 55=Symbol
sent on original order 54=side from original order 38=orderqty from
most recently acknowledged version of order 32=0 (no LastShares) 31=0
(no LastPx) 14=Current executed quantity 6=Current Average price of
executed quantity 58=Some useful text indicating the reason for the
unsolicited cancel

I hope this helps.

John Prewett