回望期权 matlab,求回望期权的matlab程序,不希望看到指针,越简单越好

function putprice = lookbackusa(s0,sigma,rfrate,q,t,ngrid)

%计算美式看跌回望期权价格的函数

%计算构建二叉树所需要的参数

a=exp((rfrate-q)*t/ngrid);

u=exp(sigma*(t/ngrid)^0.5);

d=1/u;

p=(a-d)/(u-d);

q=1-p;

X=cell(ngrid+1,ngrid+1);

for i=1:(ngrid+1)

for j=1:i

for k=1:j

X{i,j}.StrikeV(k)=S(s0,u,d,i-k+1,j-k+1)-S(s0,u,d,i,j);

end;

if(i==ngrid+1)

X{ngrid+1,j}.OptV=X{ngrid+1,j}.StrikeV;

end;

end;

end;

for subi=ngrid:-1:1

for subj=1:subi

X{subi,subj}.NoStrikeV(1)=exp(-rfrate*t/ngrid)*...

(p*X{subi+1,subj}.OptV(1)+q*X{subi+1,subj+1}.OptV(2));

if(subj>1)

for subk=2:subj

X{subi,subj}.NoStrikeV(subk)=exp(-rfrate*t/ngrid)*...

(p*X{subi+1,subj}.OptV(subk-1)+q*X{subi+1,subj+1}.OptV(subk+1));

end;

end;

X{subi,subj}.OptV=max(X{subi,subj}.NoStrikeV,X{subi,subj}.StrikeV);

end;

end;

putprice=X{1,1}.OptV;

end

function s=S(szero,u,d,i,j)

s=szero*u^(i-1)*d^(2*(j-1));

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值