以下是欧式二叉树期权定价的matlab程序代码,求大神指点标黑的d=1/u;(系统显示
??? Error using ==> mldivide
Matrix dimensions must agree.
Error in ==> bino at 10
d=1/u;)
求指导,矩阵不对,怎么 改呢?
function EXS()
S=input('30:\n');%请输入当前股价
K=input('35:\n');%请输入股票执行价格
r=input('0.03:\n');%请输入无风险利率
theta=input('0.01:\n');%请输入波动率
T=input('2:\n');%请输入到期时间
bc=input('0.1:\n');%请输入步长
q=input('0.1:\n');%请输入股息率
KZ=input('1\n');%是否为看涨期权?若是请输入1,若不是请输入其他任意值
u=exp(theta*(T/bc)^0.5);
d=1/u;
a=exp((r-q)*(T/bc));
p=(a-d)/(u-d);
stock=[];
option=[];
stock(1,1)=S;
for i=2:bc+1
for j=1:i
if(j<=i/2)
stock(i,j)=stock(i-1,j)*u;
else
stock(i,j)=stock(i-1,j-1)*d;
end
end
end
for i=1:bc+1
if(KZ==1)
if(stock(bc+1,i)<=K)
option(bc+1,i)=0;
else
option(bc+1,i)=stock(bc+1,i)-K;
end
else
if(stock(bc+1,i)>=S)
option(bc+1,i)=0;
else
option(bc+1,i)=K-stock(bc+1,i);
end
end
end
for i=bc:-1:1;
for j=1:i
option(i,j)=(option(i+1,j)*p+option(i+1,j+1)*(1-p))*exp(-r*T/bc);
end
end
stock,option


雷达卡




京公网安备 11010802022788号







