Execution cancellation and OrdStatus

Imported from previous forum

FIX 4.2
Client sends us an order (e.g. Q = 1000), then a replacement to increase order quantity to 2000 shares >> We reply with OrdStatus<39> = Replaced(5) and OrderQty<38> = 2000 in the ER on replacement acceptance.
A number of executions are created:
q1 = 300 >> OrdStatus<39> = Partially Filled, CumQty<14> = 300
g2= 500 >> OrdStatus<39> = Partially Filled, CumQty<14> = 800
q3 = 1200 >> OrdStatus<39> = Filled, CumQty<14> = 2000
Then all the executions are cancelled one by one.
What OrdStatus<39> should we send when cancelling the last one of these executions? Should it be Replaced or New?

Thanks in advance,
Julia

[ original email was from John Prewett - jprewett@lavatrading.com ]
> FIX 4.2 Client sends us an order (e.g. Q = 1000), then a replacement to

increase order quantity to 2000 shares >> We reply with OrdStatus<39> =
Replaced(5) and OrderQty<38> = 2000 in the ER on replacement acceptance.
A number of executions are created:
q1 = 300 >> OrdStatus<39> = Partially Filled, CumQty<14> = 300
q2 = 500 >> OrdStatus<39> = Partially Filled, CumQty<14> = 800
q3 = 1200 >> OrdStatus<39> = Filled, CumQty<14> = 2000
Then all the executions are canceled one by one.
What OrdStatus<39> should we send when canceling the last one of these
executions? Should it be Replaced or New?

Thanks in advance, Julia

A simple question with a complex answer. Here goes.

If executions are canceled, the most important point is whether the busted shares are “re-opened” or not. This depends on the execution venue’s policy.

If busted shares are re-opened as a result of the cancellation of an execution, life is easy. The answer to your question when CumQty becomes zero as a result of the last execution being canceled is OrdStatus=new.

If busted shares are not re-opened as a result of the cancelation of an execution and the order was already closed when the execution cancels start to appear, life isn’t too bad.
You should see the OrdStatus change to canceled, which then permits LeavesQty to remain at 0 and the equation LeavesQty = OrderQty - CumQty need not hold true (according to the FIX standards).

Problems start to arise when the order is still open when execution cancels start to flow from a venue that doesn’t re-open busted shares.
Note that this is unusual. Most often executions are canceled long after the order is closed. It is also not the example you gave.
According to the protocol standard, there appears to be no way to indicate that a certain amount of shares have not been re-opened as the equation LeavesQty = OrderQty - CumQty is supposed to hold true.

So I have answered your precise example, but left another problem unanswered.

I hope this helps.

JohnP

[ original email was from Carfield Yim - carfield.w.yim@jpmorgan.com ]
> > FIX 4.2 Client sends us an order (e.g. Q = 1000), then a replacement

to increase order quantity to 2000 shares >> We reply with
OrdStatus<39> = Replaced(5) and OrderQty<38> = 2000 in the ER on
replacement acceptance. A number of executions are created: q1 = 300

OrdStatus<39> = Partially Filled, CumQty<14> = 300 q2 = 500 >>
OrdStatus<39> = Partially Filled, CumQty<14> = 800 q3 = 1200 >>
OrdStatus<39> = Filled, CumQty<14> = 2000 Then all the executions are
canceled one by one. What OrdStatus<39> should we send when canceling
the last one of these executions? Should it be Replaced or New?

Thanks in advance, Julia

A simple question with a complex answer. Here goes.

If executions are canceled, the most important point is whether the
busted shares are “re-opened” or not. This depends on the execution
venue’s policy.

If busted shares are re-opened as a result of the cancellation of an
execution, life is easy. The answer to your question when CumQty becomes
zero as a result of the last execution being canceled is OrdStatus=new.

If busted shares are not re-opened as a result of the cancelation of an
execution and the order was already closed when the execution cancels
start to appear, life isn’t too bad. You should see the OrdStatus change
to canceled, which then permits LeavesQty to remain at 0 and the
equation LeavesQty = OrderQty - CumQty need not hold true (according to
the FIX standards).

Problems start to arise when the order is still open when execution
cancels start to flow from a venue that doesn’t re-open busted shares.
Note that this is unusual. Most often executions are canceled long after
the order is closed. It is also not the example you gave. According to
the protocol standard, there appears to be no way to indicate that a
certain amount of shares have not been re-opened as the equation
LeavesQty = OrderQty - CumQty is supposed to hold true.

So I have answered your precise example, but left another problem
unanswered.

I hope this helps.

JohnP

Great information, as in the spec. there is nothing mentioned about status need to change when trade bust, I thought it just remind the same all the time. Thanks for the information.

FIX 4.2 Client sends us an order (e.g. Q = 1000), then a replacement
to increase order quantity to 2000 shares >> We reply with
OrdStatus<39> = Replaced(5) and OrderQty<38> = 2000 in the ER on
replacement acceptance. A number of executions are created: q1 = 300

OrdStatus<39> = Partially Filled, CumQty<14> = 300 q2 = 500 >>
OrdStatus<39> = Partially Filled, CumQty<14> = 800 q3 = 1200 >>
OrdStatus<39> = Filled, CumQty<14> = 2000 Then all the executions
are canceled one by one. What OrdStatus<39> should we send when
canceling the last one of these executions? Should it be Replaced
or New?

Thanks in advance, Julia

A simple question with a complex answer. Here goes.

If executions are canceled, the most important point is whether the
busted shares are “re-opened” or not. This depends on the execution
venue’s policy.

If busted shares are re-opened as a result of the cancellation of an
execution, life is easy. The answer to your question when CumQty
becomes zero as a result of the last execution being canceled is
OrdStatus=new.

If busted shares are not re-opened as a result of the cancelation of
an execution and the order was already closed when the execution
cancels start to appear, life isn’t too bad. You should see the
OrdStatus change to canceled, which then permits LeavesQty to remain
at 0 and the equation LeavesQty = OrderQty - CumQty need not hold true
(according to the FIX standards).

Problems start to arise when the order is still open when execution
cancels start to flow from a venue that doesn’t re-open busted shares.
Note that this is unusual. Most often executions are canceled long
after the order is closed. It is also not the example you gave.
According to the protocol standard, there appears to be no way to
indicate that a certain amount of shares have not been re-opened as
the equation LeavesQty = OrderQty - CumQty is supposed to hold true.

So I have answered your precise example, but left another problem
unanswered.

I hope this helps.

JohnP

Great information, as in the spec. there is nothing mentioned about
status need to change when trade bust, I thought it just remind the same
all the time. Thanks for the information.

No , in the FIX specificatio there is a matrix which gives what should be the correct status after busts.
please refer to the pdf in the website. it give the values for TAG 150 and TAG 39 what value they should contain after the bust.
basically whenever an ER in FIX.4.2 conatins value 20=1 it means this is a bust execution and then check the Order status which shows the current status of the order.

[ original email was from John Greenan - john.greenan@alignment-systems.com ]
See also http://www.fixprotocol.org/discuss/read/8f68ad19

FIX 4.2 Client sends us an order (e.g. Q = 1000), then a
replacement to increase order quantity to 2000 shares >> We reply
with OrdStatus<39> = Replaced(5) and OrderQty<38> = 2000 in the ER
on replacement acceptance. A number of executions are created: q1
= 300

OrdStatus<39> = Partially Filled, CumQty<14> = 300 q2 = 500 >>
OrdStatus<39> = Partially Filled, CumQty<14> = 800 q3 = 1200 >>
OrdStatus<39> = Filled, CumQty<14> = 2000 Then all the executions
are canceled one by one. What OrdStatus<39> should we send when
canceling the last one of these executions? Should it be Replaced
or New?

Thanks in advance, Julia

A simple question with a complex answer. Here goes.

If executions are canceled, the most important point is whether the
busted shares are “re-opened” or not. This depends on the execution
venue’s policy.

If busted shares are re-opened as a result of the cancellation of an
execution, life is easy. The answer to your question when CumQty
becomes zero as a result of the last execution being canceled is
OrdStatus=new.

If busted shares are not re-opened as a result of the cancelation of
an execution and the order was already closed when the execution
cancels start to appear, life isn’t too bad. You should see the
OrdStatus change to canceled, which then permits LeavesQty to remain
at 0 and the equation LeavesQty = OrderQty - CumQty need not hold
true (according to the FIX standards).

Problems start to arise when the order is still open when execution
cancels start to flow from a venue that doesn’t re-open busted
shares. Note that this is unusual. Most often executions are
canceled long after the order is closed. It is also not the example
you gave. According to the protocol standard, there appears to be no
way to indicate that a certain amount of shares have not been re-
opened as the equation LeavesQty = OrderQty - CumQty is supposed to
hold true.

So I have answered your precise example, but left another problem
unanswered.

I hope this helps.

JohnP

Great information, as in the spec. there is nothing mentioned about
status need to change when trade bust, I thought it just remind the
same all the time. Thanks for the information.

No , in the FIX specificatio there is a matrix which gives what should
be the correct status after busts. please refer to the pdf in the
website. it give the values for TAG 150 and TAG 39 what value they
should contain after the bust. basically whenever an ER in FIX.4.2
conatins value 20=1 it means this is a bust execution and then check the
Order status which shows the current status of the order.

From Amit
Taking the same situatin ahead, can some one help me, what should be the value of ClOrdId to carry while sending Trade Bust msg for case where multiple replaces / amendments have been processed on the same order.
For e.g
if For tag11=A1, tag32=100, tag14=100, tag38=100, tag17=111
then For tag11=B1, tag41=A1, tag32=100, tag14=200, tag17=222
now while sending trade bust what value should these 2 fills shall carry
in tag 11
Thanks in advance.

[ original email was from Harish Kamaley - harish.kamaley@wipro.com ]
> > > > > FIX 4.2 Client sends us an order (e.g. Q = 1000), then a

replacement to increase order quantity to 2000 shares >> We
reply with OrdStatus<39> = Replaced(5) and OrderQty<38> = 2000
in the ER on replacement acceptance. A number of executions are
created: q1
= 300

OrdStatus<39> = Partially Filled, CumQty<14> = 300 q2 = 500

OrdStatus<39> = Partially Filled, CumQty<14> = 800 q3 = 1200 >>
OrdStatus<39> = Filled, CumQty<14> = 2000 Then all the
executions are canceled one by one. What OrdStatus<39> should we
send when canceling the last one of these executions? Should it
be Replaced or New?

Thanks in advance, Julia

A simple question with a complex answer. Here goes.

If executions are canceled, the most important point is whether
the busted shares are “re-opened” or not. This depends on the
execution venue’s policy.

If busted shares are re-opened as a result of the cancellation of
an execution, life is easy. The answer to your question when
CumQty becomes zero as a result of the last execution being
canceled is OrdStatus=new.

If busted shares are not re-opened as a result of the cancelation
of an execution and the order was already closed when the
execution cancels start to appear, life isn’t too bad. You should
see the OrdStatus change to canceled, which then permits LeavesQty
to remain at 0 and the equation LeavesQty = OrderQty - CumQty need
not hold true (according to the FIX standards).

Problems start to arise when the order is still open when
execution cancels start to flow from a venue that doesn’t re-open
busted shares. Note that this is unusual. Most often executions
are canceled long after the order is closed. It is also not the
example you gave. According to the protocol standard, there
appears to be no way to indicate that a certain amount of shares
have not been re- opened as the equation LeavesQty = OrderQty -
CumQty is supposed to hold true.

So I have answered your precise example, but left another problem
unanswered.

I hope this helps.

JohnP

Great information, as in the spec. there is nothing mentioned about
status need to change when trade bust, I thought it just remind the
same all the time. Thanks for the information.

No , in the FIX specificatio there is a matrix which gives what should
be the correct status after busts. please refer to the pdf in the
website. it give the values for TAG 150 and TAG 39 what value they
should contain after the bust. basically whenever an ER in FIX.4.2
conatins value 20=1 it means this is a bust execution and then check
the Order status which shows the current status of the order.

From Amit Taking the same situatin ahead, can some one help me, what
should be the value of ClOrdId to carry while sending Trade Bust msg for
case where multiple replaces / amendments have been processed on the
same order. For e.g if For tag11=A1, tag32=100, tag14=100, tag38=100,
tag17=111 then For tag11=B1, tag41=A1, tag32=100, tag14=200, tag17=222
now while sending trade bust what value should these 2 fills shall carry
in tag 11 Thanks in advance.

Hi Amit

When you bust a trade, the importance will be given to tag 19(ExecRefID-it will tell us which ExecID you wanted to bust) and tag 11 will carry the latest ClOrdID value.

I saw a slightly similar e.g. in fix-42-with_errata_20010501.doc, page no. 234, D35 matrix.

Regards