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.

  • 5
    $\begingroup$ 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}$ $\endgroup$
    – Alex C
    Jan 26, 2017 at 23:34
  • $\begingroup$ @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? $\endgroup$
    – Tim
    Jan 27, 2017 at 8:55
  • 1
    $\begingroup$ 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$. $\endgroup$
    – Alex C
    Jan 28, 2017 at 4:39
  • $\begingroup$ @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. $\endgroup$
    – Tim
    Jan 28, 2017 at 10:19
  • $\begingroup$ @Alex C, I posted a follow up question, you may have a quick look. $\endgroup$
    – Tim
    Jan 28, 2017 at 11:26

3 Answers 3


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. enter image description here

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.

enter image description here 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. enter image description here Now we have a set of continuous rates (360 vs 365 is an adjustment to align different daycount assumptions - specifically converting from simple discounting (ACT/360) to continuous compounding (ACT/365) - you can have a look at this answer to see this is consistent with SWPM) as well as discount factors (if you want to use $e^{-r_{ccy1}*t}$ and $e^{-r_{ccy2}*t}$ directly). Plugging into the models again yields the expected results. enter image description here Which are exact up to a very high precision. enter image description here Eventually there will be a limit due to floating point arithmetics and decimal precision for the normal distribution of the tool you use. Floating-point arithmetic and overflow can cause interesting results in simple tools like future value functions of Excel, Matlab, Numpy etc.

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.

  • 2
    $\begingroup$ Overkill as always, but we love you for it :) +1. $\endgroup$ Aug 10, 2022 at 18:14

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.


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

  • $\begingroup$ 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. $\endgroup$ Jan 27, 2017 at 13:42
  • $\begingroup$ 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? $\endgroup$
    – Tim
    Jan 28, 2017 at 10:27
  • $\begingroup$ 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/… $\endgroup$
    – rupweb
    Jan 30, 2017 at 10:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.