Monte Carlo Simulation for Derivative Pricing › Multi-Asset Options
Quantitative FinanceAll chapters Monte Carlo Simulation for Derivative Pricing › Multi-Asset OptionsOne section · Sections in this chapter9 / 13 ↓
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
Monte Carlo extends naturally to options on multiple correlated assets, such as basket options or spread options. The key challenge in multi-asset simulation is generating random variables with the correct correlation structure. For two assets with correlation , we generate correlated normal random variables using the Cholesky decomposition, a mathematical technique for expressing the correlation structure in a computationally convenient form.
If are independent standard normals, then the following transformation produces correlated standard normals:
where:
- : correlated standard normal variables
- : independent standard normal variables
- : correlation coefficient
- : component of the second asset's return driven by the common factor
- : idiosyncratic component unique to the second asset
This construction preserves unit variance for both and (since ) while ensuring the correct correlation. The intuition is that we decompose the second asset's randomness into two parts: a portion that comes from the same source as the first asset (the "common factor"), and a portion that is unique to the second asset (the "idiosyncratic factor"). When , the second asset moves perfectly with the first. When , they are independent. When , they move in opposite directions.
For a basket call option on two assets with weights , the payoff is simply the call payoff applied to the weighted sum:
where:
- : cash flow received at expiration
- : weights of the assets in the basket
- : asset prices at time
- : strike price
def monte_carlo_basket_call(
S1_0, S2_0, K, T, r, sigma1, sigma2, rho, w1, w2, n_simulations
):
"""
Price a call option on a weighted basket of two assets.
Payoff = max(w1*S1_T + w2*S2_T - K, 0)
"""
# Generate correlated normals
Z1 = np.random.standard_normal(n_simulations)
Z2 = np.random.standard_normal(n_simulations)
eps1 = Z1
eps2 = rho * Z1 + np.sqrt(1 - rho**2) * Z2
# Simulate terminal prices
S1_T = S1_0 * np.exp((r - 0.5 * sigma1**2) * T + sigma1 * np.sqrt(T) * eps1)
S2_T = S2_0 * np.exp((r - 0.5 * sigma2**2) * T + sigma2 * np.sqrt(T) * eps2)
# Basket value
basket_T = w1 * S1_T + w2 * S2_T
# Payoffs
payoffs = np.maximum(basket_T - K, 0)
discount_factor = np.exp(-r * T)
price = discount_factor * np.mean(payoffs)
std_error = discount_factor * np.std(payoffs) / np.sqrt(n_simulations)
return price, std_errornp.random.seed(42)
# Equal-weighted basket of two assets
basket_price, basket_se = monte_carlo_basket_call(
S1_0=100,
S2_0=100,
K=100,
T=1.0,
r=0.05,
sigma1=0.2,
sigma2=0.3,
rho=0.5,
w1=0.5,
w2=0.5,
n_simulations=100000,
)
basket_ci_width = 1.96 * basket_seBasket call price: $11.1603 ± $0.1007
The basket option benefits from diversification. Even though one asset has 30% volatility, the combined basket has lower volatility due to imperfect correlation. This makes basket calls cheaper than calls on the individual assets with equivalent total notional.

For higher dimensions with more than two assets, the Cholesky decomposition of the correlation matrix generalizes this approach systematically:
where:
- : vector of correlated random variables
- : lower triangular Cholesky matrix
- : vector of independent standard normal variables
- : correlation matrix ()
The Cholesky decomposition factors the correlation matrix into the product of a lower triangular matrix and its transpose. By multiplying a vector of independent standard normals by , we obtain a vector of correlated normals with exactly the desired correlation structure. This procedure generalizes efficiently to any number of assets.
Key Parameters
The key parameters for multi-asset basket options are:
- S: Initial asset prices ().
- σ: Volatilities of the individual assets.
- ρ: Correlation coefficient between asset returns.
- w: Weights of the assets in the basket.