Imported from previous forum
[ original email was from Carlyle Gordon - junk@gordonvideo.com ]
Both tags <39> and <150> have basically the same values. I would just like to hear an official explanation for why we have 2 tags with the same possible values.
I Assume the real purpose of both tags is really only for the times when they are not the same. <150> seems to deal generally with reporting executions, while <39> is generally a status indication. The main times when I see the tags not matching is when the order is in a <39>=8 condition where <150>=0 is typical. I gues what confuses me is technically speaking every transaction could be easily considered “new”(<150>=0), but I guess the reason <150> changes is because there are usually more important things to communicate other than that a transaction is new. This would lead you to think that <150>=0 actually means nothing new(executions/changes) has happened to this order, so it’s simply “new” and you’ll need to check the OrdStatus to find out why nothing has been done AND if the status is also new, then I’m simply acknowledging your order.
I would apreciate a clarification on what the full range of possibilities are for <150> and <39>.
[ original email was from Kevin English - kevin.english@citigroup.com ]
Carlyle,
As far as FIX 4.2 goes and put simply as possible:
OrdStatus always contains the status of the order and if the order
exists in more than one state, the status with the highest
precedance is stored in OrdStatus.
The ExecType identifies the purpose of the Execution Report and may be
different to that of the OrdStatus. An example may help …
Consider this scenario:
-
New Order 001 from Buy-Side to Sell-Side;
-
Order Acked (OrdStatus=0;ExecType=0) from Sell-Side to Buy-Side;
-
Partial Fill (OrdStatus=1;ExecType=1) from Sell-Side to Buy-Side;
-
Order Cancel Replace (ClOrderID=002;OrigClOrderID=001) from Buy-Side to Sell-Side;
-
Order Cancel-Replace Acked (OrdStatus=1;ExecType=5) from Sell-Side to Buy-Side;
In this response OrdStatus is still ‘Partially Filled’ however the
ExecType is ‘Replaced’. If you check the precedance table in the
documentation you will see that Partially Filled has a higher
precedance than replaced…
NB: There are other cases where the difference can be observed
and the FIX 4.2 documentation on this subject is quite good.
Please bear in mind that the ExecTransType attribute also comes
into play.
These attributes have also been revamped somewhat in FIX 4.3 and
FIX 4.4 and a review of their application in the documentation
would be useful.
hope this helps,
Kevin
thanks,
Kevin
Both tags <39> and <150> have basically the same values. I would just
like to hear an official explanation for why we have 2 tags with the
same possible values.I Assume the real purpose of both tags is really only for the times when
they are not the same. <150> seems to deal generally with reporting
executions, while <39> is generally a status indication. The main times
when I see the tags not matching is when the order is in a <39>=8
condition where <150>=0 is typical. I gues what confuses me is
technically speaking every transaction could be easily considered
“new”(<150>=0), but I guess the reason <150> changes is because there
are usually more important things to communicate other than that a
transaction is new. This would lead you to think that <150>=0 actually
means nothing new(executions/changes) has happened to this order, so
it’s simply “new” and you’ll need to check the OrdStatus to find out why
nothing has been done AND if the status is also new, then I’m simply
acknowledging your order.I would apreciate a clarification on what the full range of
possibilities are for <150> and <39>.
[ original email was from Carlyle Gordon - junk@gordonvideo.com ]
Ok…it IS true. The 2 tags are used to acount for multiple order states and as you pointed out the precedence goes to the the priority state, as designated by the spec. Thanks for the clarification Kevin!
Carlyle,
As far as FIX 4.2 goes and put simply as possible:
OrdStatus always contains the status of the order and if the order
exists in more than one state, the status with the highest precedance
is stored in OrdStatus.The ExecType identifies the purpose of the Execution Report and may be
different to that of the OrdStatus. An example may help …Consider this scenario:
New Order 001 from Buy-Side to Sell-Side;
Order Acked (OrdStatus=0;ExecType=0) from Sell-Side to Buy-Side;
Partial Fill (OrdStatus=1;ExecType=1) from Sell-Side to Buy-Side;
Order Cancel Replace (ClOrderID=002;OrigClOrderID=001) from Buy-
Side to Sell-Side;Order Cancel-Replace Acked (OrdStatus=1;ExecType=5) from Sell-Side
to Buy-Side; In this response OrdStatus is still ‘Partially Filled’
however the ExecType is ‘Replaced’. If you check the precedance
table in the documentation you will see that Partially Filled has a
higher precedance than replaced…NB: There are other cases where the difference can be observed and the
FIX 4.2 documentation on this subject is quite good.Please bear in mind that the ExecTransType attribute also comes into play. These attributes have also been revamped somewhat in FIX 4.3 and FIX 4.4 and a review of their application in the documentation would be useful.hope this helps, Kevin
thanks, KevinBoth tags <39> and <150> have basically the same values. I would just
like to hear an official explanation for why we have 2 tags with the
same possible values.I Assume the real purpose of both tags is really only for the times
when they are not the same. <150> seems to deal generally with
reporting executions, while <39> is generally a status indication. The
main times when I see the tags not matching is when the order is in a
<39>=8 condition where <150>=0 is typical. I gues what confuses me is
technically speaking every transaction could be easily considered
“new”(<150>=0), but I guess the reason <150> changes is because there
are usually more important things to communicate other than that a
transaction is new. This would lead you to think that <150>=0 actually
means nothing new(executions/changes) has happened to this order, so
it’s simply “new” and you’ll need to check the OrdStatus to find out
why nothing has been done AND if the status is also new, then I’m
simply acknowledging your order.I would apreciate a clarification on what the full range of
possibilities are for <150> and <39>.