The goal of this project is to calibrate options pricing models to a recent set of market data, including dividend rates, jumps, stochastic volatility and interest rates, and use the result to price American options with a Monte Carlo approach.
- Bates (Jumps + Stochastic Volatility)
- The code also includes a second version of the Bates model
with a constant jump in volatility coinciding with a jump in spot
- The code also includes a second version of the Bates model
- Heston Stochastic Volatility
- Merton Jump Diffusion
- CIR Interest Rate Model
- American Option using Monte Carlo
We are working with S&P Index options for the following maturities: 6/21/2024 (10 options), 9/20/2024 (10 options), 12/20/2024 (10 options), 3/21/2025 (9 options), 6/20/2025 (6 options), and 12/19/2025 (3 options). Prices are as of 04/12/2024. We will use the closing price for that day ($5,123.41) as our index price in the models.
where 𝑆, K_{i}, T_{i}, 𝑟_{i}, 𝐶_{i}, 𝑃_{i} are, respectively, current SPX index price, strike price of the call-put pair for that strike price, expiration date, interest rate to that expiration date, call and put price. Minimize E over all values of y.
We used Newton's method to find:
The partial derivative is:
We calculate the least squares error of calibration for each model:
The stars mean “theoretical” value, obtained with the calibrated parameters.
Model | Error |
---|---|
Bates | 26.669 |
Bates (with constant jump | 26.687 |
Heston | 42.802 |
Merton | 28.822 |
Parameter | Value |
---|---|
kappa_v | 16.24 |
theta_v | 0.01 |
sigma_v | 0.094 |
rho | -0.43 |
v0 | 0.02 |
lambda | 0.211 |
mu | -0.312 |
delta | 0.192 |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Just like with Bates, we will calculate the least squares error for Heston (
Parameter | Value |
---|---|
kappa_v | 16.32 |
theta_v | 0.01 |
sigma_v | 0.09 |
rho | -0.44 |
v0 | 0.02 |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Parameter | Value |
---|---|
sigma | 0.112 |
lambda | 0.155 |
mu | -0.382 |
delta | 0.16 |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
We put everything together for a 3-factor model
![]() ![]() |