Merton Jump Diffusion Option Price (Matrixwise)

Calculates Merton's 1976 Jump Diffusion Model by Closed Form Matrixwise Calculation for Full Surface
1.6K Downloads
Updated 28 May 2013

View License

Calculates Option Prices by Merton's 1976 Jump Diffusion Model by Closed Form Matrixwise Calculation for Full Surface

Inputs:
cp [1,-1] Call,Put
S Current Price
K Strike Vector
T Time-to-Maturity Vector
sigma Volatility of Diffusion
r Risk-free-Rate
q Div Yield
lambda Poisson Rate
a Jump Mean
b Jump Std Deviation
n Event Count (Limited to 170 since factorial(170)=7.26e306)

Example:
S = 100; K = (20:5:180)'; T = (0.1:0.1:5)';
sigma = 0.2; r = 0.0075; q = 0; lambda = 0.01; a = -0.2; b = 0.6; n = 50;
P = ia_calcMJDOptionPrice(cp,S,K,T,sigma,r,q,lambda,a,b,n);

[mK,mT] = meshgrid(K,T); [sigma,C] = calcBSImpVol(cp,P,S,mK,mT,r,q);
subplot(2,1,1); mesh(mK,mT,P); subplot(2,1,2); mesh(mK,mT,sigma);

References:
Merton, 1976, Option Pricing When Underlying Stock Returns are Discontinuous
http://www.people.hbs.edu/rmerton/optionpricingwhenunderlingstock.pdf

Cite As

Mark Whirdy (2024). Merton Jump Diffusion Option Price (Matrixwise) (https://www.mathworks.com/matlabcentral/fileexchange/41939-merton-jump-diffusion-option-price-matrixwise), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Financial Toolbox in Help Center and MATLAB Answers
Acknowledgements

Inspired by: calcBSImpVol(cp,P,S,K,T,r,q)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.1.0.0

Fixed small bug in the example given which omitted defining the variable "cp", and called "ia_calcMJDOptionPrice" instead of "calcMJDOptionPrice"

1.0.0.0