Skip to content
All library documents

Relating Garman–Kohlhagen and Black–76 for FX Options

Article Quant Q&A · Author: Tim

Summary

The document explains why pricing a plain vanilla foreign exchange option from spot or from the outright forward can lead to equivalent formulations. Garman–Kohlhagen uses spot and domestic and foreign interest rates, while Black–76 uses the forward price. Covered interest rate parity connects the inputs, allowing one formulation to be translated into the other when rates and forwards are consistent.

The discussion emphasizes practical input handling. Market rates may be simple or discretely annualized, curves may be bootstrapped, quotes can come from different sources or times, and day-count conventions may differ. A pricer may therefore imply one input from the others to maintain internal consistency and avoid arbitrage. The equivalence is less direct for options on forward points, where stochastic interest rates may call for a hybrid model. The document includes an illustrative code-based discussion but gives no general market calibration results; exact agreement depends on carefully aligned conventions and inputs.

Key ideas

  • Garman–Kohlhagen expresses FX option value from spot and domestic and foreign rates.
  • Black–76 expresses value using the outright forward, with covered interest rate parity linking the formulations.
  • Input conventions, curve construction, timing, and day counts affect whether the models agree in practice.
  • Options on forward points may require accounting for stochastic interest rates.
  • Consistency among market inputs is necessary for the no-arbitrage equivalence to hold.

Tags

Full text
# FX Option pricing on Forward vs. Spot


# 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.

## Answer by AKdemy (score 11)

https://quant.stackexchange.com/a/63661

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 - 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. 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. 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.

## Answer by Alex C (score 3)

https://quant.stackexchange.com/a/34418

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.

## Answer by rupweb (score 0)

https://quant.stackexchange.com/a/32122

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

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.