毕业论文

打赏
当前位置: 毕业论文 > 数学论文 >

MATLAB期权数值解算法及股票预测模型(6)

时间:2017-01-16 19:43来源:毕业论文
function [price,lattice]=LatticeEurCall(S0,E,r,T,sigma,N) deltaT=T/N; u=exp(sigma*sqrt(deltaT)); d=1/u; p=(exp(r*deltaT)-d)/(u-d); lattice=zeros(N+1,N+1); for i=0:N end for j=N-1:-1:0 for i=0:j lattic


function [price,lattice]=LatticeEurCall(S0,E,r,T,sigma,N)
deltaT=T/N;
u=exp(sigma*sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT)-d)/(u-d);
lattice=zeros(N+1,N+1);
for i=0:N
end
for j=N-1:-1:0
    for i=0:j
        lattice(i+1,N+1)=max(0,S0*(u-i)*(d-(N-i))-E);
        lattice(i+1,j+1)=exp(-r*deltaT)*(p*lattice(i+2,j+2)+(1-p)*lattice(i+1,j+2));
    end
end
price=lattice(1,1);

function[price,lattice]=LatticeEurPut(S0,E,r,T,sigma,N)
deltaT=T/N;
u=exp(sigma*sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT)-d)/(u-d);
lattice=zeros(N+1,N-1);
for j=0:N
    lattice(N+1,j+1)=max(E-S0*(u^j)*(d^(N-j)),0);
end
for i=N-1:-1:0
    for j=0:i
        lattice(i+1,j+1)=exp(-r*deltaT)*(p*lattice(i+2,j+2)+(1-p)*lattice(i+2,j+1));
    end
end
price=lattice(1,1)
    例2.2.1  考虑一个标的资产价格是$100, 行权价格是$100, 无风险年利率是2.5%, 年波动率是25%, 权利期间还有1年的欧式看涨期权.
解  在本例中,  .本例的计算步骤如下:
    根据二叉树法的基本原理计算期权价格, 步骤如下:
    ①设定时间步数和时间步长.将丁一£分成i00等份, 步长为
    ②计算二义树的相关参数
 
 
    ③构建二叉树, 计算标的资产价格;
    ④通过二叉树倒推汁算欧式看涨期权的价格.
    注  由于是欧式期权.故不需要在每个结点检查行权.
    //程序调用;
>> LatticeEurCall(100,100,0.025,1,0.25,100)

ans =

  1.1610e+005
 >> LatticeEurPut(100,100,0.025,1,0.25,100)

price =  8.6145   8.6145
    (2) 美式期权的定价
    美式期权存在着提前行权问题, 因此要在上述欧式期权定价程序的基础上增加检查提前行权的语句.下面是考虑到提前行权问题后而给出的程序.
程序2.2.2 美式看涨、看跌期权定价的二叉树法.
function[price,lattice]=LatticeAmCall(S0,E,r,T,sigma,N)
deltaT=T/N;
u=exp(sigma*sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT)-d)/(u-d);
lattice=zeros(N+1,N+1);
for j= 0:N    
    Lattice(N+1,j+1)= max(0,S0*(u^j)*(d^(N-j))-E);
end
for i=N-1:-1:0   
    for j =0:i         
        lattice (i+1,j+1)=max(exp(-r*deltaT)*(p*lattice(i+2,j+2)+(1-p)*lattice(i+2,j+1)),S0*u^j*d^(i-j)-E);
    end
end
price=lattice(1,1)


function[price,lattice]=LatticeAmPut(S0,E,r,T,sigma,N)
deltaT=T/N;
u=exp(sigma*sqrt(deltaT));
d=1/u;
p=(exp(r*deltaT)-d)/(u-d);
lattice=zeros(N+1,N+1);
for j= 0:N    
    Lattice(N+1,j+1)= max(0,E-S0*(u^j)*(d^(N-j)));
end
for i=N-1:-1:0   
    for j =0:i         
        lattice (i+1,j+1)=max(E-S0*u^j*d^(i-j),exp(-r*deltaT)*(p*lattice(i+2,j+2)+(1-p)*lattice(i+2,j+1)));
    end
end
price=lattice(1,1)
例2.2.2  考虑标的资产价格是$100.0, 行权价格是$100.0, 无风险年利率是10%年波动率是25%, 权利期间还有1年的美式看涨期权和美式看跌期权.试用二叉树法计算两者的价格. MATLAB期权数值解算法及股票预测模型(6):http://www.751com.cn/shuxue/lunwen_2320.html
------分隔线----------------------------
推荐内容