Я получаю некоторые неправильные результаты, и я не могу найти какую-либо ошибку в своем коде, поэтому я подумал, может ли кто-нибудь из вас выяснить, правильно ли я реализую этот алгоритм Binomial-Lattice или нет , Вот что я получаю в качестве результатов и чего я ожидаю в качестве своих результатов:
Фактические результаты:
Я начинаю с [S0,K,sigma,r,T,nColumn]=[1.5295e+009,6e+008,0.0023,0.12,20,15]
и получаю p=32.5955
, price=-6.0e+18
и BLOV_lattice
, как показано на рисунке 1.
Ожидаемые результаты:
p
- это вероятность, поэтому она не должна быть больше 1. Даже если я увеличу nColumn
до 1000, все равно p
будет больше 1 в приведенных выше фактических результатах.
price
должно получиться таким же, как S0
, число, с которого я начинаю в первом столбце, после обратной индукции, т.е. должна быть обратная совместимость.
Рисунок 1: BLOV_lattice
Мой код Matlab:
function [price,BLOV_lattice]=BLOV_general(S0,K,sigma,r,T,nColumn)
% BLOV stands for Binomial Lattice Option Valuation
%% Constant parameters
del_T=T./nColumn; % where n is the number of columns in binomial lattice
u=exp(sigma.*sqrt(del_T));
d=1./u;
p=(exp(r.*del_T)-d)./(u-d);
a=exp(-r.*del_T);
%% Initializing the lattice
Stree=zeros(nColumn+1,nColumn+1);
BLOV_lattice=zeros(nColumn+1,nColumn+1);
%% Developing the lattice
%# Forward induction
for i=0:nColumn
for j=0:i
Stree(j+1,i+1)=S0.*(u.^j)*(d.^(i-j));
end
end
for i=0:nColumn
BLOV_lattice(i+1,nColumn+1)=max(Stree(i+1,nColumn+1)-K,0);
end
%# Backward induction
for i=nColumn:-1:1
for j=0:i-1
BLOV_lattice(j+1,i)=a.*(((1-p).*BLOV_lattice(j+1,i+1))+(p.*BLOV_lattice(j+2,i+1)));
end
end
price=BLOV_lattice(1,1);
%% Converting the lattice of upper traingular matrix to a tree format
N = size(BLOV_lattice,1); %# The size of the rows and columns in BLOV_lattice
BLOV_lattice = full(spdiags(spdiags(BLOV_lattice),(1-N):2:(N-1),zeros(2*N-1,N)));
Рекомендации:
Кокс, Джон С., Стивен А. Росс и Марк Рубинштейн. 1979. «Ценообразование опционов: упрощенный подход». Журнал финансовой экономики 7: 229-263.
E. Георгиадис, "У цены биномиальных опционов нет закрытого решения". Алгоритмические финансы Предстоящие (2011).
Ричард Дж. Рендлман-младший и Брит Дж. Барттер. 1979. "Двухстороннее опционное ценообразование". Журнал финансов 24: 1093-1110. DOI: 10,2307 / 2327237