Skip to content
All library documents

Why the Risk-Free Rate Cancels in Margrabe’s Exchange Option Formula

Article Quant Q&A · Author: SmallChess

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.