FX Option pricing on Forward vs. Spot

In a GBM world with riskless domestic and foreign interest rates, what would be the correct model for a FX plain vanilla option given the statement that this option is priced on the forward? I guess it would be the Garman Kohlhagen model or the Black (76) model but I'm a bit confused between the two in the context of pricing on spot vs. pricing on forward. I would appreciate an answer that scetches the main differences.

• Black76 formula uses "F" and GK uses "S", but they are the same when you make the substitution $F \leftrightarrow S e^{(r-q)T}$ Jan 26 '17 at 23:34
• @Alex C, that's what I was thinking as well. I just didn't believe it;) For the sake of clarity, pricing on forward or spot is a matter of convinience depending on the inputs used, right?
– Tim
Jan 27 '17 at 8:55
• Yes, I find that one or the other is more convenient in a given situation. For example if it is difficult to know r and q I prefer to work in terms of $F$ rather than $S$. Jan 28 '17 at 4:39
• @Alex C, thx, if you could write up a short answer, also for the reference to others, I can accept this. For me it was really a matter of confusion about the mentioned statements.
– Tim
Jan 28 '17 at 10:19
• @Alex C, I posted a follow up question, you may have a quick look.
– Tim
Jan 28 '17 at 11:26

The Black76 formula uses "F" (the forward price) and Garman-Kohlhagen uses "S" (the spot price), but they are the same formula when you make the substitution $F ↔ Se^{(r−q)T}$

Which formula to use then becomes a matter of convenience. In some cases F is publicly quoted but r and q would have to be estimated, in that case (being lazy) I prefer to use F directly in the relevant formula.

As long as you price on the outright forward and not on forward points (which is how most forwards are quoted in the market), this is essentially the same coin, looked at from different sides. If you had an option on points, you would ideally need a hybrid model for FX and IR to take into account stochastic interest rates. I have seen this being traded, but it is very niche. If you have access to market quotes, compare historical vol of spot (or the outright forward) with that of points for any given tenor and you will see what I mean.

Garman-Kohlhagen as well as Black-76 in FX are directly connected by covered interest rate parity.

In reality, using it interchangeably requires a lot of detail. Many pricers actually imply one rate to make the model internally consistent (no arb is default assumption). So you use covered interest rate parity, and use for example spot, fwd and domestic rate to imply the foreign rate (EUR in case of EURUSD). Alternatively, you can also imply forward and so forth. Most tools allow for flexibility (what interest rate curves, what will be implied and so forth).

Also, interest rates are usually discrete annualized rates, and not continuous. If you have a set of Spot, FWD, and interest rates, usually you need to take good care to end up with the same result. Therefore, pricers usually will never use Black but always Garman-Kohlhagen (and imply one of the 4 parts in the covered interest rate parity). Why? Frequently, quotes are not from the same source (Spot vs forward, also a reason why points are being quoted), at different times (not so much an issue in FX which is super liquid for many pairs), and interest rates are fetched from bootstrapped curves. For broken dates, values are generally theoretical constructs as opposed to actual quotes.

The below should demonstrate this in Julia code. Using values (that are correct in terms of how they are market quoted) that are usually displayed as inputs in the respective formulas will result in values that seem to contradict what was postulated. For 1 million notional and ATMF it is not "too" bad but clearly violates no arbitrage.

One needs to carefully adjust the interest rates (or imply as mentioned above) to make this work. Now we have a set of continuous rates (360 vs 365 is an adjustment to align different daycount assumptions between implied vol quotes and interest rates) as well as discount factors (if you want to use $$e^{-r_{ccy1}*t}$$ and $$e^{-r_{ccy2}*t}$$ directly). Pluging into the models again yields the expected results. Which are exact up to a very high precision. Eventually there will be a limit due to floating point arithmetics and decimal precision for the normal distribution of the tool you use.

If you liked that post, you may have a look here for some more Garman-Kohlhagen stuff. It will also show why I chose to use the CCY1CCY2 (EURUSD) notation as opposed to the commonly used domestic vs foreign one.

Pricing on spot takes the mid price of all the bids and offers available in the market and then skews that mid according to any proprietary position (ie you're getting too long EUR so to maintain a less risky position you want to sell EUR so lower your price in the market and participants will be attracted to buy your EUR off you), and then adds a spread to cover hedging costs and client counterparty risks depending on the market venue. Pricing on the forwards takes that spot price and adds in money market interest rate differentials. You can see more at FX / MM training

• I don't think this answers the question. You describe how you can compute a spot or forward price. The question was about pricing options on them. Jan 27 '17 at 13:42
• Thank you for the additional information. I aggree with the comment of @LocalVolatility, however, I also find your infos about "microstructure" interesting. In principle, you seem to agree with the comment from Alex C written above?
– Tim
Jan 28 '17 at 10:27
• Yes, a forward is derived from spot & interest rate differential, so the answer to your question about options pricing models that use either spot or forward is they are "substitutable". The basic point of options pricing is intrinsic value + time value, and the latter is fraught with risk due to volatility. See this answer: quant.stackexchange.com/questions/30987/… Jan 30 '17 at 10:15