Advanced Derivatives Pricing: Stochastic Volatility and Jump Models
Module: Fintech AI | Difficulty: Advanced
Heston Model
Local Volatility
Numerical Methods
| Method | Dimension | Speed | Accuracy | |--------|-----------|-------|----------| | Monte Carlo | Any | Slow | High | | Finite Difference | 1-2 | Medium | High | | Trees | 1-2 | Medium | Medium |
import numpy as np
class HestonPricer:
def __init__(self, S0, v0, kappa, theta, xi, rho, r):
self.S0 = S0; self.v0 = v0; self.kappa = kappa
self.theta = theta; self.xi = xi; self.rho = rho; self.r = r
def monte_carlo_price(self, K, T, n_sims=100000):
dt = T / 252
S = np.full(n_sims, self.S0)
v = np.full(n_sims, self.v0)
for _ in range(252):
z1 = np.random.standard_normal(n_sims)
z2 = self.rho * z1 + np.sqrt(1 - self.rho**2) * np.random.standard_normal(n_sims)
S = S * np.exp((self.r - 0.5*v)*dt + np.sqrt(v*dt)*z1)
v = np.abs(v + self.kappa*(self.theta - v)*dt + self.xi*np.sqrt(v*dt)*z2)
payoffs = np.maximum(S - K, 0)
return np.exp(-self.r * T) * payoffs.mean()
Research Insight: The Heston model captures the volatility smile by allowing volatility to be stochastic. The key insight is that the correlation between price and volatility creates skew β negative correlation produces the typical equity volatility smile. Calibration to market data is essential for accurate pricing.