Arte SheetsLearn. Try. Understand.

Financial Modeling

Margrabe Exchange Option Formula & Correlation-Adjusted Spread Volatility

Value a European option to exchange asset 2 for asset 1 (stock-for-stock mergers, outperformance fees, spark spreads) using William Margrabe’s (1978) risk-free-rate-independent formula.

Why correlation rho—not the risk-free interest rate—governs exchange-option value

William Margrabe (1978) proved that a European option giving the right to deliver asset S_2 in exchange for asset S_1 at maturity T—payoff MAX(0, S_1(T) - S_2(T))—uses S_2 itself as the pricing numeraire, causing the risk-free interest rate r to cancel out completely! Instead, the decisive driver is composite ratio volatility sigma_ex = SQRT(sigma_1^2 + sigma_2^2 - 2 * rho * sigma_1 * sigma_2).

Predict the correlation effect before calculating: when S_1 = S_2 = 100 with sigma_1 = sigma_2 = 20% and rho = 0.50, sigma_ex = SQRT(0.04 + 0.04 - 0.04) = 20.00%, yielding option value 7.97. Push correlation to rho = 1.00: two identically volatile assets moving in lockstep have sigma_ex = 0.00%, collapsing time value to zero!

Correlation rho (S1=S2=100, sig1=sig2=20%, T=1y)Composite Volatility sigma_exMargrabe Option Value
rho = 0.00 (Uncorrelated)SQRT(0.08) = 28.28%11.25
rho = 0.50 (Moderately Linked)SQRT(0.04) = 20.00%7.97
rho = 1.00 (Perfect Lockstep)SQRT(0.00) = 0.00%0.00 (Intrinsic MAX(0, S1-S2) only)

Composite Exchange Volatility Formula

Combine individual asset volatilities B4, B5 and correlation B6 inside SQRT(MAX(0, ...)) to guard floating-point rounding near rho = 1.

=ROUND(SQRT(MAX(0, (B4 ^ 2) + (B5 ^ 2) - 2 * B6 * B4 * B5)), 4)

Closed-Form Margrabe Exchange Option Formula

Discount S_1 and S_2 by continuous dividend/convenience yields q_1 (B7) and q_2 (B8), return intrinsic value when sigma_ex * SQRT(T) = 0, and evaluate d_1, d_2 with Abramowitz-Stegun normal probabilities (max error < 7.5E-8).

=LET(pv_one, B2 * EXP(-B7 * B9), pv_two, B3 * EXP(-B8 * B9), sig_ex, SQRT(MAX(0, (B4 ^ 2) + (B5 ^ 2) - 2 * B6 * B4 * B5)), vol_t, sig_ex * SQRT(B9), IF(vol_t <= 0, ROUND(MAX(0, pv_one - pv_two), 2), LET(d_one, (LN(pv_one / pv_two) + 0.5 * (vol_t ^ 2)) / vol_t, d_two, d_one - vol_t, az_one, ABS(d_one), kt_one, 1 / (1 + 0.2316419 * az_one), tp_one, (EXP(-0.5 * az_one * az_one) / SQRT(2 * PI())) * kt_one * (0.31938153 + kt_one * (-0.356563782 + kt_one * (1.781477937 + kt_one * (-1.821255978 + 1.330274429 * kt_one)))), nd_one, IF(d_one >= 0, 1 - tp_one, tp_one), az_two, ABS(d_two), kt_two, 1 / (1 + 0.2316419 * az_two), tp_two, (EXP(-0.5 * az_two * az_two) / SQRT(2 * PI())) * kt_two * (0.31938153 + kt_two * (-0.356563782 + kt_two * (1.781477937 + kt_two * (-1.821255978 + 1.330274429 * kt_two)))), nd_two, IF(d_two >= 0, 1 - tp_two, tp_two), ROUND(pv_one * nd_one - pv_two * nd_two, 2))))

Try the example

Use the original values or change them to test your understanding.

Further reading