Imported from previous forum
Hi,
I have a question regarding reporting ExecutionReport.LastPx in units different from ExecutionReport.Price
Let me explain for FX FWDs NewOrderSingle(PriceType=6, Price=200) would mean placing new order at price of 200 forward points. According to spec in ExecutionReport I should report original PriceType&Price.
In contrary I have a requirement of reporting LastPx (price of trade) either in pips or percentage (depending on premium currency).
The question is how to do this? there is no LastPxType or something. Is the only option to introduce custom field (LastPxType)? Am I missing something?
Hi Nick,
You probably refer to Swaps trades, not Forwards (Outright Forwards).
An Order on EUR/USD Swaps could be 200.1 (basis points), meaning a difference in price between Leg1 Value Date and Leg2 Value Date is 0.02001
When you send the Exec Report, you need to give the full price of each leg, that would look like this:
Leg1 1.32100
Leg2 1.30099
Hope this helps…
Franck
Hi,
I have a question regarding reporting ExecutionReport.LastPx in units different from ExecutionReport.Price
Let me explain for FX FWDs NewOrderSingle(PriceType=6, Price=200) would mean placing new order at price of 200 forward points. According to spec in ExecutionReport I should report original PriceType&Price.
In contrary I have a requirement of reporting LastPx (price of trade) either in pips or percentage (depending on premium currency).
The question is how to do this? there is no LastPxType or something. Is the only option to introduce custom field (LastPxType)? Am I missing something?
Hi Franck,
I’m referring deliverable forwards. we allow to specify forward price in points rather than rate. So given spot_rate=1.2000 someone can place an order at 1000 points meaning forward_rate=1.3000. So in execution report for trades on this order I would like to set fields as following:
ExecutionReport {
Price=1000 // as in original limit order
PriceType=6 // as in original limit order
LastPx=1.3000 // let’s say I want deliver price as rate
}
So what are my options to let client know in what units I’m publishing lastPx?
I’ve read “FX GAP Analysis doc” http://www.fixprotocol.org/specifications/EP100
but it says that PriceType describes types of everything at once (i.e. Price, LastPx, LastSpotRate) and I would say that such approach creates more gaps than it tries to solve unfortunately. ![]()
Hi Nick,
You probably refer to Swaps trades, not Forwards (Outright Forwards).
An Order on EUR/USD Swaps could be 200.1 (basis points), meaning a difference in price between Leg1 Value Date and Leg2 Value Date is 0.02001
When you send the Exec Report, you need to give the full price of each leg, that would look like this:
Leg1 1.32100
Leg2 1.30099Hope this helps…
Franck
Hi,
I have a question regarding reporting ExecutionReport.LastPx in units different from ExecutionReport.Price
Let me explain for FX FWDs NewOrderSingle(PriceType=6, Price=200) would mean placing new order at price of 200 forward points. According to spec in ExecutionReport I should report original PriceType&Price.
In contrary I have a requirement of reporting LastPx (price of trade) either in pips or percentage (depending on premium currency).
The question is how to do this? there is no LastPxType or something. Is the only option to introduce custom field (LastPxType)? Am I missing something?
I think you’re trying to stretch the definition of LastPx too much. The documentation for Foreign Exchange in Volume 7 consistently describes Price and LastPx as the all-in rate:
“When reporting an execution or trade (partial or full fill) the LastPx (31) field is used to specify the “all in” rate for the partial or full fill. It is considered best practice that the spot rate and forward points used to arrive at the “all in” rate be specified in LastSpotRate (194) and LastForwardPoints (195) when appropriate.” [Field Usage Notes #10 under Execution Report]
Also, from the definition of Price (44):
“For F/X orders, should be the “all-in” rate (spot rate adjusted for forward points).” [from FIXimate]
Unfortunately, there do not appear to be Spot and Points fields associated with Price. There are Bid and Offer versions of Px(132/133), SpotRate(188/190), and ForwardPoints(189/191).
Hi Franck,
I’m referring deliverable forwards. we allow to specify forward price in points rather than rate. So given spot_rate=1.2000 someone can place an order at 1000 points meaning forward_rate=1.3000. So in execution report for trades on this order I would like to set fields as following:
ExecutionReport {
Price=1000 // as in original limit order
PriceType=6 // as in original limit order
LastPx=1.3000 // let’s say I want deliver price as rate
}So what are my options to let client know in what units I’m publishing lastPx?
I’ve read “FX GAP Analysis doc” http://www.fixprotocol.org/specifications/EP100
but it says that PriceType describes types of everything at once (i.e. Price, LastPx, LastSpotRate) and I would say that such approach creates more gaps than it tries to solve unfortunately.
Hi Nick,
You probably refer to Swaps trades, not Forwards (Outright Forwards).
An Order on EUR/USD Swaps could be 200.1 (basis points), meaning a difference in price between Leg1 Value Date and Leg2 Value Date is 0.02001
When you send the Exec Report, you need to give the full price of each leg, that would look like this:
Leg1 1.32100
Leg2 1.30099Hope this helps…
Franck
Hi,
I have a question regarding reporting ExecutionReport.LastPx in units different from ExecutionReport.Price
Let me explain for FX FWDs NewOrderSingle(PriceType=6, Price=200) would mean placing new order at price of 200 forward points. According to spec in ExecutionReport I should report original PriceType&Price.
In contrary I have a requirement of reporting LastPx (price of trade) either in pips or percentage (depending on premium currency).
The question is how to do this? there is no LastPxType or something. Is the only option to introduce custom field (LastPxType)? Am I missing something?
Nick, adding to what Philip stated below, there are a number of other fields in the ExecutionReport for use in the context of FX and the FX section of Vol. 7 of the standard FIX spec is quite clear on how to use these in conjuction with the all-in LastPx:
LastSwapPoints(1071)
LastSpotRate(194)
LastForwardPoints(195)
You can find Vol. 7 via this link:
http://www.fixprotocol.org/specifications/FIX.5.0SP2#Specification
I think you’re trying to stretch the definition of LastPx too much. The documentation for Foreign Exchange in Volume 7 consistently describes Price and LastPx as the all-in rate:
“When reporting an execution or trade (partial or full fill) the LastPx (31) field is used to specify the “all in” rate for the partial or full fill. It is considered best practice that the spot rate and forward points used to arrive at the “all in” rate be specified in LastSpotRate (194) and LastForwardPoints (195) when appropriate.” [Field Usage Notes #10 under Execution Report]Also, from the definition of Price (44):
“For F/X orders, should be the “all-in” rate (spot rate adjusted for forward points).” [from FIXimate]Unfortunately, there do not appear to be Spot and Points fields associated with Price. There are Bid and Offer versions of Px(132/133), SpotRate(188/190), and ForwardPoints(189/191).
Hi Franck,
I’m referring deliverable forwards. we allow to specify forward price in points rather than rate. So given spot_rate=1.2000 someone can place an order at 1000 points meaning forward_rate=1.3000. So in execution report for trades on this order I would like to set fields as following:
ExecutionReport {
Price=1000 // as in original limit order
PriceType=6 // as in original limit order
LastPx=1.3000 // let’s say I want deliver price as rate
}So what are my options to let client know in what units I’m publishing lastPx?
I’ve read “FX GAP Analysis doc” http://www.fixprotocol.org/specifications/EP100
but it says that PriceType describes types of everything at once (i.e. Price, LastPx, LastSpotRate) and I would say that such approach creates more gaps than it tries to solve unfortunately.
Hi Nick,
You probably refer to Swaps trades, not Forwards (Outright Forwards).
An Order on EUR/USD Swaps could be 200.1 (basis points), meaning a difference in price between Leg1 Value Date and Leg2 Value Date is 0.02001
When you send the Exec Report, you need to give the full price of each leg, that would look like this:
Leg1 1.32100
Leg2 1.30099Hope this helps…
Franck
Hi,
I have a question regarding reporting ExecutionReport.LastPx in units different from ExecutionReport.Price
Let me explain for FX FWDs NewOrderSingle(PriceType=6, Price=200) would mean placing new order at price of 200 forward points. According to spec in ExecutionReport I should report original PriceType&Price.
In contrary I have a requirement of reporting LastPx (price of trade) either in pips or percentage (depending on premium currency).
The question is how to do this? there is no LastPxType or something. Is the only option to introduce custom field (LastPxType)? Am I missing something?
Hi,
I’ve read all referenced specs before asking my question but probably didn’t make my points clear. Here is second attempt:
FIRST PROBLEM
- DirectRate IS all-in price
- InverseRate IS all-in price
- Price in pips (i.e. 13000 instead of 1.3000) IS all-in price
- … I can think of other ways to specify ALL-IN price
So when you saying ‘all-in price’ what do you mean? How this is being reflected at message level? (That’s wouldn’t be PriceType obviously because of SECOND PROBLEM)
SECOND PROBLEM
- If someone placing NewOrder with particular Price & PriceType fields set I MUST report them back (as they were specified) in ExecutionReport (as per spec)
- The same spec says that PriceType (if specified in ExecutionReport) sets types ALL the following fields (Price, LastPx, LastSpotRate)
So what if I accept specifying price in points for forwards, or in volatility (via custom PriceType value) for options? HOW can I report LastSpotRate in volatility or points for example???
Am I missing something?
According to the ‘common sense’ LastPx should be a rate which being multiplied by LastQty should give an amount in Premium currency (i.e. cost of trade in premium currency (not counting commission & fees)) but there is no such statement anywhere within spec. (again) Am I missing something?
Nick, adding to what Philip stated below, there are a number of other fields in the ExecutionReport for use in the context of FX and the FX section of Vol. 7 of the standard FIX spec is quite clear on how to use these in conjuction with the all-in LastPx:
LastSwapPoints(1071)
LastSpotRate(194)
LastForwardPoints(195)You can find Vol. 7 via this link:
http://www.fixprotocol.org/specifications/FIX.5.0SP2#SpecificationI think you’re trying to stretch the definition of LastPx too much. The documentation for Foreign Exchange in Volume 7 consistently describes Price and LastPx as the all-in rate:
“When reporting an execution or trade (partial or full fill) the LastPx (31) field is used to specify the “all in” rate for the partial or full fill. It is considered best practice that the spot rate and forward points used to arrive at the “all in” rate be specified in LastSpotRate (194) and LastForwardPoints (195) when appropriate.” [Field Usage Notes #10 under Execution Report]Also, from the definition of Price (44):
“For F/X orders, should be the “all-in” rate (spot rate adjusted for forward points).” [from FIXimate]Unfortunately, there do not appear to be Spot and Points fields associated with Price. There are Bid and Offer versions of Px(132/133), SpotRate(188/190), and ForwardPoints(189/191).
Hi Franck,
I’m referring deliverable forwards. we allow to specify forward price in points rather than rate. So given spot_rate=1.2000 someone can place an order at 1000 points meaning forward_rate=1.3000. So in execution report for trades on this order I would like to set fields as following:
ExecutionReport {
Price=1000 // as in original limit order
PriceType=6 // as in original limit order
LastPx=1.3000 // let’s say I want deliver price as rate
}So what are my options to let client know in what units I’m publishing lastPx?
I’ve read “FX GAP Analysis doc” http://www.fixprotocol.org/specifications/EP100
but it says that PriceType describes types of everything at once (i.e. Price, LastPx, LastSpotRate) and I would say that such approach creates more gaps than it tries to solve unfortunately.
Hi Nick,
You probably refer to Swaps trades, not Forwards (Outright Forwards).
An Order on EUR/USD Swaps could be 200.1 (basis points), meaning a difference in price between Leg1 Value Date and Leg2 Value Date is 0.02001
When you send the Exec Report, you need to give the full price of each leg, that would look like this:
Leg1 1.32100
Leg2 1.30099Hope this helps…
Franck
Hi,
I have a question regarding reporting ExecutionReport.LastPx in units different from ExecutionReport.Price
Let me explain for FX FWDs NewOrderSingle(PriceType=6, Price=200) would mean placing new order at price of 200 forward points. According to spec in ExecutionReport I should report original PriceType&Price.
In contrary I have a requirement of reporting LastPx (price of trade) either in pips or percentage (depending on premium currency).
The question is how to do this? there is no LastPxType or something. Is the only option to introduce custom field (LastPxType)? Am I missing something?
I don’t think price in pips is a reasonable way to specify the all-in rate. I don’t recall specific documentation at the moment, but in general all prices are expected to be in “true-decimals.” For example, even forward points are not specified in pips, but rather in the appropriate units for directly adding to the spot rate, without scaling.
Therefore, PriceType is not intended to specify the unit of measure. That is already assumed because of the FIX Specs.
So, for forwards, you wouldn’t accept price in points.
For Options, I’m not sure.
Hi,
I’ve read all referenced specs before asking my question but probably didn’t make my points clear. Here is second attempt:
FIRST PROBLEM
- DirectRate IS all-in price
- InverseRate IS all-in price
- Price in pips (i.e. 13000 instead of 1.3000) IS all-in price
- … I can think of other ways to specify ALL-IN price
So when you saying ‘all-in price’ what do you mean? How this is being reflected at message level? (That’s wouldn’t be PriceType obviously because of SECOND PROBLEM)SECOND PROBLEM
- If someone placing NewOrder with particular Price & PriceType fields set I MUST report them back (as they were specified) in ExecutionReport (as per spec)
- The same spec says that PriceType (if specified in ExecutionReport) sets types ALL the following fields (Price, LastPx, LastSpotRate)
So what if I accept specifying price in points for forwards, or in volatility (via custom PriceType value) for options? HOW can I report LastSpotRate in volatility or points for example???
Am I missing something?
According to the ‘common sense’ LastPx should be a rate which being multiplied by LastQty should give an amount in Premium currency (i.e. cost of trade in premium currency (not counting commission & fees)) but there is no such statement anywhere within spec. (again) Am I missing something?
Nick, adding to what Philip stated below, there are a number of other fields in the ExecutionReport for use in the context of FX and the FX section of Vol. 7 of the standard FIX spec is quite clear on how to use these in conjuction with the all-in LastPx:
LastSwapPoints(1071)
LastSpotRate(194)
LastForwardPoints(195)You can find Vol. 7 via this link:
http://www.fixprotocol.org/specifications/FIX.5.0SP2#SpecificationI think you’re trying to stretch the definition of LastPx too much. The documentation for Foreign Exchange in Volume 7 consistently describes Price and LastPx as the all-in rate:
“When reporting an execution or trade (partial or full fill) the LastPx (31) field is used to specify the “all in” rate for the partial or full fill. It is considered best practice that the spot rate and forward points used to arrive at the “all in” rate be specified in LastSpotRate (194) and LastForwardPoints (195) when appropriate.” [Field Usage Notes #10 under Execution Report]Also, from the definition of Price (44):
“For F/X orders, should be the “all-in” rate (spot rate adjusted for forward points).” [from FIXimate]Unfortunately, there do not appear to be Spot and Points fields associated with Price. There are Bid and Offer versions of Px(132/133), SpotRate(188/190), and ForwardPoints(189/191).
Hi Franck,
I’m referring deliverable forwards. we allow to specify forward price in points rather than rate. So given spot_rate=1.2000 someone can place an order at 1000 points meaning forward_rate=1.3000. So in execution report for trades on this order I would like to set fields as following:
ExecutionReport {
Price=1000 // as in original limit order
PriceType=6 // as in original limit order
LastPx=1.3000 // let’s say I want deliver price as rate
}So what are my options to let client know in what units I’m publishing lastPx?
I’ve read “FX GAP Analysis doc” http://www.fixprotocol.org/specifications/EP100
but it says that PriceType describes types of everything at once (i.e. Price, LastPx, LastSpotRate) and I would say that such approach creates more gaps than it tries to solve unfortunately.
Hi Nick,
You probably refer to Swaps trades, not Forwards (Outright Forwards).
An Order on EUR/USD Swaps could be 200.1 (basis points), meaning a difference in price between Leg1 Value Date and Leg2 Value Date is 0.02001
When you send the Exec Report, you need to give the full price of each leg, that would look like this:
Leg1 1.32100
Leg2 1.30099Hope this helps…
Franck
Hi,
I have a question regarding reporting ExecutionReport.LastPx in units different from ExecutionReport.Price
Let me explain for FX FWDs NewOrderSingle(PriceType=6, Price=200) would mean placing new order at price of 200 forward points. According to spec in ExecutionReport I should report original PriceType&Price.
In contrary I have a requirement of reporting LastPx (price of trade) either in pips or percentage (depending on premium currency).
The question is how to do this? there is no LastPxType or something. Is the only option to introduce custom field (LastPxType)? Am I missing something?