Partial fill after Cancel response (39=4)

Imported from previous forum

Hi,

From a DMA perspective, we are facing an issue where the exchange sends a cancel response first and then sends us the fills for the same order. How should the above scenario be handled at the sell side?

Following is the description:
For a cancel request received from the buy side, our sell side application received the cancel response (39=4) from the exchange first and soon after that received 2 partial fills (39=1) from exchagne. In such case local order status 39 is changed from 4 to 1 for the same order id. In such a scenario, the buy side has the status as 1 which can be again send for amend/cancel.

Following are our solutions:

  1. Is there any way/tag to intimate the buy side that the order is already cancelled. After sending the partial fill response.
  2. Can we send self generated order status response to the buy side for the same order ID after sending every partial fill response?
  3. Should we inform buy side with tag58 with sutitable message stating the order status?

Please advice what should be the correct way to handle in FIX 4.2.

Regards,
Sachin

[ original email was from Tushar Deshpande - tushar.deshpande@citi.com ]
The buy-side order-management function needs to handle this (e.g. they can apply the fills on the order while keeping the order status intact as canceled). Sell-side may not need to do any changes.

Thx,
Tushar

Hi,

From a DMA perspective, we are facing an issue where the exchange sends
a cancel response first and then sends us the fills for the same order.
How should the above scenario be handled at the sell side?

Following is the description: For a cancel request received from the buy
side, our sell side application received the cancel response (39=4) from
the exchange first and soon after that received 2 partial fills (39=1)
from exchagne. In such case local order status 39 is changed from 4 to 1
for the same order id. In such a scenario, the buy side has the status
as 1 which can be again send for amend/cancel.

Following are our solutions:

  1. Is there any way/tag to intimate the buy side that the order is
    already cancelled. After sending the partial fill response.
  2. Can we send self generated order status response to the buy side for
    the same order ID after sending every partial fill response?
  3. Should we inform buy side with tag58 with sutitable message stating
    the order status?

Please advice what should be the correct way to handle in FIX 4.2.

Regards, Sachin

Sachin,

Ideally speaking in a scenario like this, the buy side OMS has to DK any subsequent fills recieved on an already cancelled order. In your case its a good thing for your side that the client OMS is able to accept the partial fills after receiving the cancelled ER. The problem with Exchange interface is that there is a latency involved in sending the ER’s due to which the cancelled ER is sent prior to sending the partial fills on the order. I have also seen this kind of scenario in practice.

One way to have a work-around on this is to generate an unsolicited cancel ER after having sent the partial fills on the cancelled order. Since the client OMS is able to take the partial-fills, it will also be able to take the unsol cxl. The logic of sending an auto Unsol Cxl from your side is something which you need to look at and build in your system.

Regards,
Sunil Singh

Sachin,

Ideally speaking in a scenario like this, the buy side OMS has to DK any
subsequent fills recieved on an already cancelled order. In your case
its a good thing for your side that the client OMS is able to accept the
partial fills after receiving the cancelled ER. The problem with
Exchange interface is that there is a latency involved in sending the
ER’s due to which the cancelled ER is sent prior to sending the partial
fills on the order. I have also seen this kind of scenario in practice.

One way to have a work-around on this is to generate an unsolicited
cancel ER after having sent the partial fills on the cancelled order.
Since the client OMS is able to take the partial-fills, it will also
be able to take the unsol cxl. The logic of sending an auto Unsol Cxl
from your side is something which you need to look at and build in
your system.

Regards, Sunil Singh

Thanks Sunil/Tushar,

But as a sell side vendor we have multiple buy side connections and luckily this buy side accepts the fills post cancel ER. But if another buy side client do not accept fills post cancel, then how would that need to be handled in FIX?
We have also encountered that most of the buy side do not support unsolicited messages.

From a multiple connectivity perspective what could be the best solution and acceptable to all?

regards,
Sachin

This is a common scenario in most exchange connections.

One work around is to delay processing the “Cancel Accept” from the exchange by a configurable number of milliseconds.

Some exchange “Cancel” messages includes a field called “Canceled Quantity”; which indicate how much of the order was remaining. You can compare that number with your order book remaining quantity. if they are equal; then there are no outstanding fills. If not; then you got to w wait for outstanding fills.

hope this help.

Ismail.

Sachin,

Ideally speaking in a scenario like this, the buy side OMS has to DK
any subsequent fills recieved on an already cancelled order. In your
case its a good thing for your side that the client OMS is able to
accept the partial fills after receiving the cancelled ER. The problem
with Exchange interface is that there is a latency involved in sending
the ER’s due to which the cancelled ER is sent prior to sending the
partial fills on the order. I have also seen this kind of scenario in
practice.

One way to have a work-around on this is to generate an unsolicited
cancel ER after having sent the partial fills on the cancelled order.
Since the client OMS is able to take the partial-fills, it will also
be able to take the unsol cxl. The logic of sending an auto Unsol Cxl
from your side is something which you need to look at and build in
your system.

Regards, Sunil Singh

Thanks Sunil/Tushar,

But as a sell side vendor we have multiple buy side connections and
luckily this buy side accepts the fills post cancel ER. But if another
buy side client do not accept fills post cancel, then how would that
need to be handled in FIX? We have also encountered that most of the buy
side do not support unsolicited messages.

From a multiple connectivity perspective what could be the best solution
and acceptable to all?

regards, Sachin

Ismail,

But the problem is the fills are received after some seconds and not milliseconds. Therefore this may not be the viable solution.

What do you think of Sunil’s solution to forward unsolicited cancel ER after receiving the trade?

Regards,
Sachin

This is a common scenario in most exchange connections.

One work around is to delay processing the “Cancel Accept” from the
exchange by a configurable number of milliseconds.

Some exchange “Cancel” messages includes a field called “Canceled
Quantity”; which indicate how much of the order was remaining. You can
compare that number with your order book remaining quantity. if they are
equal; then there are no outstanding fills. If not; then you got to w
wait for outstanding fills.

hope this help.

Ismail.

Sachin,

Ideally speaking in a scenario like this, the buy side OMS has to DK
any subsequent fills recieved on an already cancelled order. In your
case its a good thing for your side that the client OMS is able to
accept the partial fills after receiving the cancelled ER. The
problem with Exchange interface is that there is a latency involved
in sending the ER’s due to which the cancelled ER is sent prior to
sending the partial fills on the order. I have also seen this kind
of scenario in practice.

One way to have a work-around on this is to generate an unsolicited
cancel ER after having sent the partial fills on the cancelled
order. Since the client OMS is able to take the partial-fills, it
will also be able to take the unsol cxl. The logic of sending an
auto Unsol Cxl from your side is something which you need to look at
and build in your system.

Regards, Sunil Singh

Thanks Sunil/Tushar,

But as a sell side vendor we have multiple buy side connections and
luckily this buy side accepts the fills post cancel ER. But if another
buy side client do not accept fills post cancel, then how would that
need to be handled in FIX? We have also encountered that most of the
buy side do not support unsolicited messages.

From a multiple connectivity perspective what could be the best
solution and acceptable to all?

regards, Sachin

Sachin

If you know for sure that there are outstanding fills (by checking the Canceled Quantity field); then you have to wait for a given time period. I have seen some OMSs that waits for up to 1 minute (Fidessa for example).

After that period of time; you have to give up and process the Cancel request; and also issue an alert so manual intervention is required.

If we are talking straight-through-processing (aka DMA); the trades will always arrives in a reasonable time (below 1 minute). If it didn’t then you have to assume the downstream system (in this case the Exchange) has problems.

In this case; you system should be able to send alerts to the Trader/System Administrator so appropriate action need to be taken to reconcile the order details with clients manually.

The solution you proposed may work with some OMSs; but certainly not all of them. Talking legal; once the order is canceled; it’s canceled. Any trade received after that; it is up to the client to take it or not; depending if it is in their favour. You don’t want to be in that position.

regards.

Ismail.

Ismail,

But the problem is the fills are received after some seconds and not
milliseconds. Therefore this may not be the viable solution.

What do you think of Sunil’s solution to forward unsolicited cancel ER
after receiving the trade?

Regards, Sachin

This is a common scenario in most exchange connections.

One work around is to delay processing the “Cancel Accept” from the
exchange by a configurable number of milliseconds.

Some exchange “Cancel” messages includes a field called “Canceled
Quantity”; which indicate how much of the order was remaining. You can
compare that number with your order book remaining quantity. if they
are equal; then there are no outstanding fills. If not; then you got
to w wait for outstanding fills.

hope this help.

Ismail.

Sachin,

Ideally speaking in a scenario like this, the buy side OMS has to
DK any subsequent fills recieved on an already cancelled order. In
your case its a good thing for your side that the client OMS is
able to accept the partial fills after receiving the cancelled ER.
The problem with Exchange interface is that there is a latency
involved in sending the ER’s due to which the cancelled ER is sent
prior to sending the partial fills on the order. I have also seen
this kind of scenario in practice.

One way to have a work-around on this is to generate an
unsolicited cancel ER after having sent the partial fills on the
cancelled order. Since the client OMS is able to take the partial-
fills, it will also be able to take the unsol cxl. The logic of
sending an auto Unsol Cxl from your side is something which you
need to look at and build in your system.

Regards, Sunil Singh

Thanks Sunil/Tushar,

But as a sell side vendor we have multiple buy side connections and
luckily this buy side accepts the fills post cancel ER. But if
another buy side client do not accept fills post cancel, then how
would that need to be handled in FIX? We have also encountered that
most of the buy side do not support unsolicited messages.

From a multiple connectivity perspective what could be the best
solution and acceptable to all?

regards, Sachin