Code covered by the BSD License

# Valuation of stock option with discrete dividend

by

### Biao (view profile)

Compare different pricing models for stock option with discrete dividend.

DiscreteDividend(s,k,r,t,vol,d,dt)
```function callprice = DiscreteDividend(s,k,r,t,vol,d,dt)
%compare different methods for a single discrete dividend adjustments,
%writen by abiao at www.mathfinance.cn for illustration only, read paper...
%Back to Basics: a new approach to the discrete dividend problem by Haug for detail;
%s: current stock price;
%k: strike price;
%r: risk-free interest rate;
%t: time to maturity of option;
%vol: volatility;
%d: discrete dividend amount, dt: dividend time
BSprice = blsprice(s,k,r,t,vol,0);
%%%%%%%%%Chriss, 1997%%%%%%%%%%
vol1 = vol*s/(s-d*exp(-r*dt));
%%%%%%%%%Haug, 1998%%%%%%%%%%
vol2 = sqrt(vol^2*dt+vol1^2*(t-dt)/t);
%%%%%%%%Bos et al. (2003)%%%%%%%%%%
lns = log(s);
lnk = log((k+d*exp(-r*dt))*exp(-r*t));
z1 = (lns-lnk)/(vol*sqrt(t))+vol*sqrt(t)/2;
z2 = z1+vol*sqrt(t)/2;
vol3 = sqrt(vol^2+vol*sqrt(pi/(2*t))*(4*exp(z1^2/2-lns)*d*exp(-r*dt)*...
(normcdf(z1)-normcdf(z1-vol*dt/sqrt(t)))+exp(z2^2/2-2*lns)*d^2*...
exp(-r*2*dt)*(normcdf(z2)-normcdf(z2-2*vol*dt/sqrt(t)))));