全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 金融工程(数量金融)与金融衍生品
1627 0
2010-05-16
由于美式期权没有解析解,编完了也不知道算的对不对,向大家请教了

function price=bidimen_binomial(sigma1,sigma2,T,S10,S20,K,rho,q1,q2,r,n)%rho为相关系数,n为步数%
t=T/n;
u1=exp(sigma1*sqrt(t));
d1=exp(-sigma1*sqrt(t));
u2=exp(sigma2*sqrt(t));
d2=exp(-sigma2*sqrt(t));
v1=r-q1-sigma1^2/2;
v2=r-q2-sigma2^2/2;
p_uu=0.25*(1+sqrt(t)*(v1/sigma1+v2/sigma2)+rho);
p_ud=0.25*(1+sqrt(t)*(v1/sigma1-v2/sigma2)-rho);
p_du=0.25*(1+sqrt(t)*(-v1/sigma1+v2/sigma2)-rho);
p_dd=0.25*(1+sqrt(t)*(-v1/sigma1-v2/sigma2)+rho);
for i=1:n
    for j=0:i
        s1(j+1,i)=S10*u1^(i-j)*d1^(j)%求标的S1资产价格%
    end
end
for i=1:n
    for j=0:i
        s2(j+1,i)=S20*u2^(i-j)*d2^(j)%求标的S2资产价格%
    end
end
s1
for i=1:n
    for j=0:i
        for k=0:i
            o(i,j+1,k+1)=max(s1(j+1,i)-s2(k+1,i)-K,0)%求组合交割价格,i为所在步数,j为第一个标的资产的行数,k为第二个标的资产的行数%
        end
    end
end
i=n-1;
while i>0
    for j=1:i
        for k=1:i
            o(i,j,k)=max((o(i+1,j,k)*p_uu+o(i+1,j,k+1)*p_ud+o(i+1,j+1,k)*p_du+o(i+1,j+1,k+1)*p_dd)*exp(-r*t),o(i,j,k))%比较组合持有和交割价格%
        end
    end
i=i-1;
end
price=max((o(2,1,1)*p_uu+o(2,1,2)*p_ud+o(2,2,1)*p_du+o(2,2,2)*p_dd)*exp(-r*t),max(S10-S20-K,0))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群