Order Cancel Replace FIX 4.x

Imported from previous forum

Dear FIX developers

Let’s assume that I send Order Cancel Replace that modifies OrderType (e.g. from Limit to Market Order).

My question is:
Should I expect that the field OrderType would be set in the Execution Report sent in response to this Order Cancel Replace?

FIX documentation states that the OrderType is optional in execution reports but maybe in such reports it should be set.

How do your systems work?

Do you transmit all fields that have been changed due to the Cancel Replace Request in the Execution Report (sent in response to this Cancel Replace Request)?

If all fields that have been changed are transmitted, maintaining the order book is much easier.

Janusz

[ original email was from Ryan Pierce - rpierce@taltrade.com ]
> My question is:
> Should I expect that the field OrderType would be set in the Execution Report sent in response to this Order Cancel Replace?
>
> FIX documentation states that the OrderType is optional in execution reports but maybe in such reports it should be set.
>
> How do your systems work?
>
> Do you transmit all fields that have been changed due to the Cancel Replace Request in the Execution Report (sent in response to this Cancel Replace Request)?

Fields are classified as Required, Conditionally Required (i.e. in certain cases they become required), or Not Requred. You should not assume that fields not required, or not conditionally required for the particular situation, will be sent.

The other side does not need to echo that field back for you to know the state of the order. You know the ClOrdID of every change you send on an order. You can store the contents of those chagnes (i.e. the OrdType value). The other party tells you when the order has been replaced, and gives you the ClOrdID of the most currently active change, which you can then correlate to the appropriate OrdType.

That said, it is nice for the sell-side to echo back OrdType, as it can make resoloving trade problems easier. The sell-side FIX implementations I’ve written all do so. But if it isn’t required in the spec, you can run into problems if your implementation depends upon it being there.