Better rate in Execution Report (msgType=8)

Imported from previous forum

May I seek for the advice on how should the Order executed rate be marked in the Execution Report (msgType=8)? There are multiple tags in the Execution Report: tag 44 (Price), tag 31 (LastPx) and tag 6 (AvgPx).

If the order is filled with the client order rate, I believe all these 3 field can be marked with the client order rate for FX.

However, what if the client order is executed with a better rate? For example, client buy on USD/JPY with order rate=87.1 in the New Order- Single (msgType=D); But the market maker execute this order with a better rate(e.g. rate = 86.8); In this case, should we put the better rate(86.8) in the Execution Report in the above tag? Or should specific tag should be marked with the original client’s order rate (87.1)? Thanks.

A price improvement given in trade is conveyed using Execution Reports in the following way
LastPx [31] - the price associated with the trade (e.g. 86.8)
LastShares [32] - amount of the last trade to which the lastPx applies

Note
Price [44] - always echoes back the price of the order (e.g. 87.1)
is the expected price and applies to OrdQty [38]
AvgPx [6] - average price of what has been traded so far
(applies to CumQty [14])

Thanks. So tag 44 (price) and tag 31 (lastPx) should be marked with different value in the case of price improvement.
Any there any reference/hints we can find in the FIXimate? As the description of these 2 tags actually don’t tell about this usage.
Or it is a common practice in the FX market? Thanks for further information.

A price improvement given in trade is conveyed using Execution Reports in the following way
LastPx [31] - the price associated with the trade (e.g. 86.8)
LastShares [32] - amount of the last trade to which the lastPx applies

Note
Price [44] - always echoes back the price of the order (e.g. 87.1)
is the expected price and applies to OrdQty [38]
AvgPx [6] - average price of what has been traded so far
(applies to CumQty [14])

[ original email was from Greg Wood - greg.wood@credit-suisse.com ]
Hi Gary,

I wouldn’t say that this behaviour is common practice for FX specifically, but more common practice for trading any asset class via FIX.

Tag 44 is the limit set by the client, it dictates the absolute maximum that anything can be bought for, or the absolute minimum that anything can be sold for.

Tag 31 will be the price of the last fill. It should not violate the limit price set in tag 44, so for a sell is should be the limit price or higher, and for a buy it should be the limit price or lower. Tag 6 is the average price across all fills. If an order is filled in a single clip then there will be a single execution report and tag 6 equals tag 31.

Historically in FX of course you hit a quote and you either got completed at the limit price or you did not deal at all. There was very little room for price improvement in a quote driven model compared to an order driven model.

I would say that as traditional FX trading evolves you will see more situations where FX orders are filled at a rate better than the limit price, as well as being filled in multiple clips at different prices that generate a weighted average price across several execution reports. I know from experience that a lot of traditional FX systems have trouble with partial fills, but that is slowly changing.

Is this something to highlight in FIXIMATE ? I would say no, just because this is conceptually more about the rules of trading than the FIX protocol. FIX just provides the ability to convey these different values - the original instruction, the fills and the average across the fills.

Regards,

  • Greg

Thanks. So tag 44 (price) and tag 31 (lastPx) should be marked with different value in the case of price improvement.
Any there any reference/hints we can find in the FIXimate? As the description of these 2 tags actually don’t tell about this usage.
Or it is a common practice in the FX market? Thanks for further information.

A price improvement given in trade is conveyed using Execution Reports in the following way
LastPx [31] - the price associated with the trade (e.g. 86.8)
LastShares [32] - amount of the last trade to which the lastPx applies

Note
Price [44] - always echoes back the price of the order (e.g. 87.1)
is the expected price and applies to OrdQty [38]
AvgPx [6] - average price of what has been traded so far
(applies to CumQty [14])

Hi Greg,

Thanks very much for your thorough explaination. It’s very helpful.

Regards,
Gary

Hi Gary,

I wouldn’t say that this behaviour is common practice for FX specifically, but more common practice for trading any asset class via FIX.

Tag 44 is the limit set by the client, it dictates the absolute maximum that anything can be bought for, or the absolute minimum that anything can be sold for.

Tag 31 will be the price of the last fill. It should not violate the limit price set in tag 44, so for a sell is should be the limit price or higher, and for a buy it should be the limit price or lower. Tag 6 is the average price across all fills. If an order is filled in a single clip then there will be a single execution report and tag 6 equals tag 31.

Historically in FX of course you hit a quote and you either got completed at the limit price or you did not deal at all. There was very little room for price improvement in a quote driven model compared to an order driven model.

I would say that as traditional FX trading evolves you will see more situations where FX orders are filled at a rate better than the limit price, as well as being filled in multiple clips at different prices that generate a weighted average price across several execution reports. I know from experience that a lot of traditional FX systems have trouble with partial fills, but that is slowly changing.

Is this something to highlight in FIXIMATE ? I would say no, just because this is conceptually more about the rules of trading than the FIX protocol. FIX just provides the ability to convey these different values - the original instruction, the fills and the average across the fills.

Regards,

  • Greg

Thanks. So tag 44 (price) and tag 31 (lastPx) should be marked with different value in the case of price improvement.
Any there any reference/hints we can find in the FIXimate? As the description of these 2 tags actually don’t tell about this usage.
Or it is a common practice in the FX market? Thanks for further information.

A price improvement given in trade is conveyed using Execution Reports in the following way
LastPx [31] - the price associated with the trade (e.g. 86.8)
LastShares [32] - amount of the last trade to which the lastPx applies

Note
Price [44] - always echoes back the price of the order (e.g. 87.1)
is the expected price and applies to OrdQty [38]
AvgPx [6] - average price of what has been traded so far
(applies to CumQty [14])