Why do I receive erroneous results using BINPRICE in Financial Toolbox 3.5 (R2008b)?

2 views (last 30 days)
I am using BINPRICE: An American Call and I assume the stock pays a dividend of 30 in 0.5 years. Thus it is very likely that the call is exercised at 0.5 - eps. The price that binprice gives me is 0.44. If I use European Black--Scholes--Merton with an `escrowed' dividend, the price of a European call is already 0.50.
If I price an American Call that matures in 0.5, ie., right before the dividend, its value is 6.91. This appears strange as for the 1-year call could always be exercised at 0.5 - eps, and hence give about the same payoff as the 0.5-year call. I would expect the magnitude to be roughly the same.
My code is as follows:
clc, clear all, close all hidden
S0 = 100;
X = 100;
r = 0.05;
tau = 1;
sigma = 0.2;
M = 101; % steps
D = 30;
tauD = 0.5;
fprintf('American Call Dividend\n')
[S, C0] = binprice(S0, X, r, tau, tau/M, sigma, 1, 0, D,tauD);
C0(1,1)
fprintf('\nB--S--M (European) escrowed dividend\n')
blsprice(S0 - D*exp(-r * tauD), X, r, tau, sigma, 0)
fprintf('Matlab Financial Toolbox without div, tau/2\n')
[ign, C0] = binprice(S0, X, r, tau/2, tau/M, sigma, 1);
C0(1,1)

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 28 Jan 2010
This change has been incorporated into the documentation in Release 2009b (R2009b). For previous releases, read below for any additional information:
In the code described, note that the Ex-dividend date (ExDiv (optional argument)) is specified in number of periods. So it cannot be just 'tauD' but has to be in terms of increments. Hence you have to divide 'tauD' with increments which is 'tau/M'. Then you will get a reasonable answer.
[S, C0] = binprice(S0, X, r, tau, tau/M, sigma, 1, 0, D,M*tauD/tau)

More Answers (0)

Categories

Find more on Dates and Time in Help Center and File Exchange

Tags

No tags entered yet.

Products


Release

R2008b

Community Treasure Hunt

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

Start Hunting!