Why the Risk-Free Rate Cancels in Margrabe’s Exchange Option Formula
Summary
The document asks why QuantLib’s implementation of Margrabe’s formula computes forward prices using a risk-free discount factor when the familiar formula for an option to exchange one asset for another is often presented without an explicit risk-free rate. It also raises a concern about zero dividends and a possible logarithm of zero in the implementation’s expression.
The response explains that the risk-free rate is not essential to the final exchange-option price in this implementation: it enters both forward prices and cancels when their ratio is formed. This reconciles the implementation’s intermediate calculation with the rate-free appearance of the formula. The brief answer addresses the risk-free-rate question but does not explain the zero-dividend concern, provide a derivation, or discuss model assumptions and implementation details. It should therefore be read as a concise explanation of a cancellation in the formula, not as a complete treatment of every issue raised.
Key ideas
- Margrabe’s formula prices an option to exchange one asset for another.
- The implementation forms forward prices using risk-free discounting.
- The shared risk-free component cancels when the two forwards are divided in the formula.
- The response does not resolve the question about zero dividends or provide a derivation.
Tags
Full text
# Why risk-free interest is needed for Margrabe's Formula?
# Why risk-free interest is needed for Margrabe's Formula?
The source code for Margarble's formula in QuantLib is here. The implementation requires a forward price be computed:
```
Real forward1 = process1_->stateVariable()->value() *
dividendDiscount1 / riskFreeDiscount;
Real forward2 = process2_->stateVariable()->value() *
dividendDiscount2 / riskFreeDiscount;
```
Why do we have to calculate the forward price? Margrable's formula explicity states that risk-free interest rate is not assumed because we can price the option under a stock measure. The formula in the original paper and wikipedia doesn't require it.
```
Real d1 = (std::log((quantity1*forward1)/(quantity2*forward2))
+ 0.5*variance) / stdDev;
```
If one of the dividends is zero, we would get into a situation of log(0). Where do the extra terms that not shown come from?
## Answer by Mark Joshi (score 2, accepted)
https://quant.stackexchange.com/a/18603
you don't need the risk-free rate, it's just the way it's been implemented. It will cancel out when you take the ratio of the forwards.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.