How is forex price precision (of the actual floating point number) determined?
How is forex price precision (of the actual floating point number) determined?
Loading saved threads...
TotoposDiagramChaseApp · External communityPost link
External question — Quantitative Finance Stack Exchange
Author: TotoposDiagramChaseApp
Original post: https://quant.stackexchange.com/questions/63782
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
I wrote some python code that tries to calculate this by samplying 1000 forex prices using polygon.io's REST api. However, will the precision ever change or is it fixed by something.
How do they choose the forex price number's precision?
It's important to me because I'm discretizing the price data. I have to multiply this precision by a constant parameter of my code and that determines how many prices fit into a discretized unit (an integer).
Can you point me to a table that lists all of them (supposing they are indeed fixed), of all 128 FX pairs?
By precision I mean the minimum nonzero change I will ever see from polygon.io. For example 0.00001 is commonly seen in some of the pairs.
Thank you!
Quote
Report
user42108 · External communityPost link
External answer — Quantitative Finance Stack Exchange
Author: user42108
Original post: https://quant.stackexchange.com/a/63783
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
"How do they choose the forex price number's precision?"
By convention. And/or by vendor, e.g. BBG has 4dp for some pairs where Oanda has 5. And of course convention for forwards differs from spot, even for the same pair.
There is some colour on the move to 'fractional pips' in the book "Why Aren't They Shouting?".
EDIT: perhaps also worth mentioning that tick sizes on FX futures (on CME) have changed over the years, so neither spot nor futures are fixed.
Quote
Report
Kermittfrog · External communityPost link
External answer — Quantitative Finance Stack Exchange
Author: Kermittfrog
Original post: https://quant.stackexchange.com/a/63784
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
In addition to @user42108's great answer:
Maybe you already had a look on the 'usual' sources.
Wiki
states that the convention is still 4 to 6 digits, and
Bank of Canada
states the same, i.e. up to six digits. There may be currency pairs that are quoted with less digits, this seems to be the case when the exchange rate is above 80 or so.
Depending on your use case (trading? statistical analysis?): If you really need to
quantize
your data, you could do so without that much loss of precision by simply rounding to 4 digits, no?
Quote
Report
Dimitri Vulis · External communityPost link
External answer — Quantitative Finance Stack Exchange
Author: Dimitri Vulis
Original post: https://quant.stackexchange.com/a/63785
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
I had to deal with discrete FX quotes a long time ago. My answer may be badly out of date, sorry.
For each currency pair, there is a "PIP", which stands for "point in percentage" or "price interest point" or "percentage in point", and used to be the smallest amount by which the quote can change. It is usually 1 basis point (i.e. the currency pair is quoted to 4 decimals), but some currency pairs have different PIP. or example for Japanese Yen JPY, a PIP is the second decimal. For some currencies v GBP, PIP is the fifth decimal.
However many modern FX trading platforms actually use 1/10 PIP quotes for spot, i.e. usually 5 decimals, sometimes called "pipettes", "micro PIPs", or "decimal PIPs". Some use 1/2 PIPs. Your data vendor should be able to give you their list of PIPs and precisions (not necessarily the same thing), which in theory may differ a little from other vendors.
For example, this table
https://fx.cboe.com/products/currency.jsp
lists "ECN/FA Min Price Increment" for many currency pairs, most of them in the 5th decimal.
Bloomberg BFIX page
https://www.bloomberg.com/markets/currencies/fx-fixings
sows 4 decimals for most currency pairs, but 5 decimals for a few pairs (and less than 4 for a few others).
This brochure
https://www.eurexchange.com/resource/blob/1621162/59398ad9144b5d1bb81ca4214b6e420d/data/factsheet_eurex_currency_products_brochure.pdf
mentions:
Rolling spot futures
Minimum tick value is OTC spot equivalent; tenths of a pip (0.00001)
This recent paper
https://www.federalreserve.gov/econres/feds/files/2020051pap.pdf
describes how EBS switched to 1/10 PIP precision, but later switched to 1/2 PIP precision (i.e. the fifth decimal can only be "0" or "5").
As for forwards, for example, WM/Refinitiv documentation
https://www.refinitiv.com/content/dam/marketing/en_us/documents/methodology/wm-refinitiv-methodology.pdf
says:
All NDF (non-delivery forward) rates (bid, offer and mid) are rounded to five decimal places after the decimal point. Where a “5” is encountered, the
convention is to round up.
Other vendors' forwards often have 6 digits.
For example:
EUR/USD moves from 1.09128 to 1.09123: EUR has depreciated 1/2 pip (or 5 pipettes). Note that EUR, GBP, and a few other currencies are "quoted cable", the amoung of USD equal to 1 unit of the other currency. 1 pipette is 0.00001 USD.
USD/JPY moves from 107.84 to 107.85: JPY has depreciated 1 pip (or 10 pipettes). Most currencies are quoted as the amount of the other currency equal to 1 USD. 1 pipette is 0.00001 of the other currency.
Quote
Report
Post Reply
Quoted from Forex.com.bd-Editorial External question — Quantitative Finance Stack Exchange Author: TotoposDiagramChaseApp Source score (net votes, not local likes): 0 Original post: https://quant.stackexchange.com/questions/63782 License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/ Adaptation: HTML converted to plain text; contact email addresses removed. I wrote some python code that tries to calculate this by samplying 1000 forex prices using polygon.io's REST api. However, will the precision ever change or is it fixed by something. How do they choose the forex price number's precision? It's important to me because I'm discretizing the price data. I have to multiply this precision by a constant parameter of my code and that determines how many prices fit into a discretized unit (an integer). Can you point me to a table that lists all of them (supposing they are indeed fixed), of all 128 FX pairs? By precision I mean the minimum nonzero change I will ever see from polygon.io. For example 0.00001 is commonly seen in some of the pairs. Thank you!
Checking account access…