Execution report and cancel reject in FIX 4.2

Imported from previous forum

Hi,

we are switching our order routing system from 4.0 to 4.2. right now we’re close to complete User Acceptance test with our broker, but we’ve just a problem. our broker send to us execution report and cancel reject in the same FIX message… as shown below

<8=FIX.4.29=014235=934=12149=xxxtest50=xxx56=xxx52=20031127-10:08:0443=N97=N37=L33180000311=2003112700000441=20031127000003102=039=2434=110=137>

Our broker said that this is normal behavior in FIX 4.2, but we developed FIX engine in order to receive two different FIX message: the first one is execution report, the second is cancel reject.

am I right or FIX 4.2 works as my broker said?

Please, help me!!!

Giancarlo Cobino
giancarlo.cobino@tradinglab.com
TRADINGLAB® - http://www.tradinglab.com/
Corso Italia, 3 - I - 20122 Milano MI
tel. +39 02 72929811 - fax +39 02 72929309

There is only one type of message here, a cancel reject (35=9). Since FIX 4.1, OrdStatus has been a required tag on a cancel reject. This tells you the status of the order you tried to cancel or cancel/replace. In this case, it would appear that your cancel or cancel replace request was rejected because your order was already completely filled (39=2).

Execution reports will always be message type 8. Perhaps your application is assuming that if a message comes with tag 39 that it must be an execution report? While that was technically true in FIX 4.0, in FIX 4.2, it can be part of an execution report, a cancel reject and even a List Status message.

Hope that helps,

David Rhodes
TransactTools

> Hi,
>
> we are switching our order routing system from 4.0 to 4.2. right now we’re close to complete User Acceptance test with our broker, but we’ve just a problem. our broker send to us execution report and cancel reject in the same FIX message… as shown below
>
> <8=FIX.4.29=014235=934=12149=xxxtest50=xxx56=xxx52=20031127-10:08:0443=N97=N37=L33180000311=2003112700000441=20031127000003102=039=2434=110=137>
>
> Our broker said that this is normal behavior in FIX 4.2, but we developed FIX engine in order to receive two different FIX message: the first one is execution report, the second is cancel reject.
>
> am I right or FIX 4.2 works as my broker said?
>
> Please, help me!!!
>
> Giancarlo Cobino
> giancarlo.cobino@tradinglab.com
> TRADINGLAB® - http://www.tradinglab.com/
> Corso Italia, 3 - I - 20122 Milano MI
> tel. +39 02 72929811 - fax +39 02 72929309
>
>
>

Sorry, there was a mistake. I wrote that my broker sent execution report and cancel reject in the same FIX message, but this is not the truth.
when I received these kind of messages we was testing scenario D4 described in FIX 4.2 manual (about pag. 192) or something like that (we was testing using a complete fill).
What it happen is (and sorry for long e-mail):

  1. we send an order.
    <8=FIX.4.29=20435=D49=xxx56=xxx34=19243=N52=20031127-10:00:53122=20031127-10:00:5311=2003112700000121=354=155=GB000004455138=165040=244=5.39500060=59=015=GBP100=L48=GB000004455122=4207=06210=165>

  2. broker sends Acknowledgement
    <8=FIX.4.29=031235=834=10049=xxx50=xxx56=xxx52=20031127-10:01:0443=N97=N37=L33180000211=2003112700000163=064=2003120222=448=GB000004455155=GB000004455154=138=165032=031=0.00000044=5.39500015=GBP30=L40=247=A60=20031127-10:01:0475=2003112759=017=5812150=020=014=06=0.00000039=0151=165010=162>

  3. we send cancel request
    <8=FIX.4.29=16035=F49=xxx56=xxx34=19843=N52=20031127-10:02:16122=20031127-10:02:1641=2003112700000111=2003112700000254=155=GB000004455138=1650100=L207=10=146>

  4. broker sends Pending Cancel
    <8=FIX.4.29=033035=834=10449=xxx50=xxx56=xxx52=20031127-10:02:1843=N97=N37=L33180000211=2003112700000241=2003112700000163=064=2003120222=448=GB000004455155=GB000004455154=138=165032=031=0.00000044=5.39500015=GBP30=L40=247=A60=20031127-10:02:1875=2003112759=017=5813150=620=014=06=0.00000039=6151=165010=020>

  5. broker sends Execution Report, but TAG 39 is equals 6 and this is quite strange because in FIX 4.0 this TAG identifies a Pending Cancel Message. I mean… the message shown below include all TAG tipically used in execution report (i.e. TAG 6, 14, 151) but my application is assuming that if a message comes with tag 39=6 that it must be a Pending cancel message and not an execution report:
    <8=FIX.4.29=032135=834=10849=xxx50=xxx56=xxx52=20031127-10:03:4643=N97=N37=L33180000211=2003112700000163=064=2003120222=448=GB000004455155=GB000004455154=138=165032=165031=539.50000044=539.50000015=GBP30=L40=247=A60=20031127-10:03:4675=2003112759=017=5814150=220=014=16506=539.50000039=6151=010=172>

  6. broker sends a cancel reject, because the order was already complet filled.
    <8=FIX.4.29=014235=934=11049=xxx50=x56=xxx52=20031127-10:04:3843=N97=N37=L33180000211=2003112700000241=20031127000001102=039=2434=110=133>

right now I understand that I am wrong, because in FIX 4.2, tag 39=6 can be a complete fill if it come togheter TAG 150=2 (is this correct?)

hope that is correct. but could you confirm that flow described above is correct?

thanks a lot for your help

> There is only one type of message here, a cancel reject (35=9). Since FIX 4.1, OrdStatus has been a required tag on a cancel reject. This tells you the status of the order you tried to cancel or cancel/replace. In this case, it would appear that your cancel or cancel replace request was rejected because your order was already completely filled (39=2).
>
> Execution reports will always be message type 8. Perhaps your application is assuming that if a message comes with tag 39 that it must be an execution report? While that was technically true in FIX 4.0, in FIX 4.2, it can be part of an execution report, a cancel reject and even a List Status message.
>
> Hope that helps,
>
> David Rhodes
> TransactTools
>
> > Hi,
> >
> > we are switching our order routing system from 4.0 to 4.2. right now we’re close to complete User Acceptance test with our broker, but we’ve just a problem. our broker send to us execution report and cancel reject in the same FIX message… as shown below
> >
> > <8=FIX.4.29=014235=934=12149=xxxtest50=xxx56=xxx52=20031127-10:08:0443=N97=N37=L33180000311=2003112700000441=20031127000003102=039=2434=110=137>
> >
> > Our broker said that this is normal behavior in FIX 4.2, but we developed FIX engine in order to receive two different FIX message: the first one is execution report, the second is cancel reject.
> >
> > am I right or FIX 4.2 works as my broker said?
> >
> > Please, help me!!!
> >
> > Giancarlo Cobino
> > giancarlo.cobino@tradinglab.com
> > TRADINGLAB® - http://www.tradinglab.com/
> > Corso Italia, 3 - I - 20122 Milano MI
> > tel. +39 02 72929811 - fax +39 02 72929309
> >
> >
> >
>

If you look at scenario D5 in Appendix D of the 4.2 spec, you’ll see a scenario very similar to this one. It does end with the same three messages you show here - the pending cancel, the fill, then the cancel reject. It looks like the broker is doing it correctly.

As you point out, you should not assume that 39=6 always means a pending cancel message. 150=2 tells you that this message is a fill, 39=6 tells you that when the fill happened, the order was in a pending cancel state.

  • Dave

> Sorry, there was a mistake. I wrote that my broker sent execution report and cancel reject in the same FIX message, but this is not the truth.
> when I received these kind of messages we was testing scenario D4 described in FIX 4.2 manual (about pag. 192) or something like that (we was testing using a complete fill).
> What it happen is (and sorry for long e-mail):
>
> 1) we send an order.
> <8=FIX.4.29=20435=D49=xxx56=xxx34=19243=N52=20031127-10:00:53122=20031127-10:00:5311=2003112700000121=354=155=GB000004455138=165040=244=5.39500060=59=015=GBP100=L48=GB000004455122=4207=06210=165>
>
> 2) broker sends Acknowledgement
> <8=FIX.4.29=031235=834=10049=xxx50=xxx56=xxx52=20031127-10:01:0443=N97=N37=L33180000211=2003112700000163=064=2003120222=448=GB000004455155=GB000004455154=138=165032=031=0.00000044=5.39500015=GBP30=L40=247=A60=20031127-10:01:0475=2003112759=017=5812150=020=014=06=0.00000039=0151=165010=162>
>
> 3) we send cancel request
> <8=FIX.4.29=16035=F49=xxx56=xxx34=19843=N52=20031127-10:02:16122=20031127-10:02:1641=2003112700000111=2003112700000254=155=GB000004455138=1650100=L207=10=146>
>
> 4) broker sends Pending Cancel
> <8=FIX.4.29=033035=834=10449=xxx50=xxx56=xxx52=20031127-10:02:1843=N97=N37=L33180000211=2003112700000241=2003112700000163=064=2003120222=448=GB000004455155=GB000004455154=138=165032=031=0.00000044=5.39500015=GBP30=L40=247=A60=20031127-10:02:1875=2003112759=017=5813150=620=014=06=0.00000039=6151=165010=020>
>
> 5) broker sends Execution Report, but TAG 39 is equals 6 and this is quite strange because in FIX 4.0 this TAG identifies a Pending Cancel Message. I mean… the message shown below include all TAG tipically used in execution report (i.e. TAG 6, 14, 151) but my application is assuming that if a message comes with tag 39=6 that it must be a Pending cancel message and not an execution report:
> <8=FIX.4.29=032135=834=10849=xxx50=xxx56=xxx52=20031127-10:03:4643=N97=N37=L33180000211=2003112700000163=064=2003120222=448=GB000004455155=GB000004455154=138=165032=165031=539.50000044=539.50000015=GBP30=L40=247=A60=20031127-10:03:4675=2003112759=017=5814150=220=014=16506=539.50000039=6151=010=172>
>
> 6) broker sends a cancel reject, because the order was already complet filled.
> <8=FIX.4.29=014235=934=11049=xxx50=x56=xxx52=20031127-10:04:3843=N97=N37=L33180000211=2003112700000241=20031127000001102=039=2434=110=133>
>
> right now I understand that I am wrong, because in FIX 4.2, tag 39=6 can be a complete fill if it come togheter TAG 150=2 (is this correct?)
>
> hope that is correct. but could you confirm that flow described above is correct?
>
> thanks a lot for your help
>
>
> > There is only one type of message here, a cancel reject (35=9). Since FIX 4.1, OrdStatus has been a required tag on a cancel reject. This tells you the status of the order you tried to cancel or cancel/replace. In this case, it would appear that your cancel or cancel replace request was rejected because your order was already completely filled (39=2).
> >
> > Execution reports will always be message type 8. Perhaps your application is assuming that if a message comes with tag 39 that it must be an execution report? While that was technically true in FIX 4.0, in FIX 4.2, it can be part of an execution report, a cancel reject and even a List Status message.
> >
> > Hope that helps,
> >
> > David Rhodes
> > TransactTools
> >
> > > Hi,
> > >
> > > we are switching our order routing system from 4.0 to 4.2. right now we’re close to complete User Acceptance test with our broker, but we’ve just a problem. our broker send to us execution report and cancel reject in the same FIX message… as shown below
> > >
> > > <8=FIX.4.29=014235=934=12149=xxxtest50=xxx56=xxx52=20031127-10:08:0443=N97=N37=L33180000311=2003112700000441=20031127000003102=039=2434=110=137>
> > >
> > > Our broker said that this is normal behavior in FIX 4.2, but we developed FIX engine in order to receive two different FIX message: the first one is execution report, the second is cancel reject.
> > >
> > > am I right or FIX 4.2 works as my broker said?
> > >
> > > Please, help me!!!
> > >
> > > Giancarlo Cobino
> > > giancarlo.cobino@tradinglab.com
> > > TRADINGLAB® - http://www.tradinglab.com/
> > > Corso Italia, 3 - I - 20122 Milano MI
> > > tel. +39 02 72929811 - fax +39 02 72929309
> > >
> > >
> > >
> >
>