首页 > 范文大全 > 正文

美式看跌期权二叉树数值算法比较

开篇:润墨网以专业的文秘视角,为您筛选了一篇美式看跌期权二叉树数值算法比较范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】美式期权的特征赋予其投资者可以选择是否提前执行期权,在什么情况下执行期权便成了主要考虑的问题。当股票不存在分红时,其他参数均相同,那么美式看涨期权与欧式看涨期权的价值相同,即不存在提前执行。然而,不付红利的美式看跌期权却可以提前执行。本文着重分析在为美式看跌期权定价时,二叉树二叉树法中的两种不同的matlab代码的其各自特点。

【关键词】美式看跌期权;二叉树

--------------------------------------------------------------------------------

现今金融创新技术日新月异,金融衍生产品无论从种类还是数量上都已经获得了极大的发展,随着“火箭科学家”的加入,产品的独特性与复杂性也越来越高。但期权依然是其中最基础也是最重要的一种,也依然是学界研究的重点。期权在风险管理和投资理财等领域有着无可替代的重要作用,获得合理地期权定价就成为发挥其功能的主要前提,由此才能进一步促进全球金融市场的健康与稳定发展。1973年,Black和Scholes给出了欧式看涨期权的解析价格,用评价公式可以很简单的得到欧式看跌期权的价格,后续研究者进一步推广了BS定价公式,从而使欧式期权的定价问题得以比较完备的解决。而具有可提前执行特性的美式期权,其定价问题从数学角度看,是一个在随机微分方程下含有自由边界的求值问题,即无法获得封闭解。在无法获得封闭解的情况下,以二叉树为代表的数值方法为美式期权定价就成了可行之道。

1 二叉树法A

针对美式看涨/看跌期权的特点,matlab中的金融工具箱已给出公式――binprice。输入各参数,可得到股票价格的二叉树路径和相应的期权价格。针对美式看跌期权,其代码并不复杂,即:(使用CRR模型)

function price = Binprice(s0,k,r,T,sigma,n)

tt=T/n;

u=exp(sigma*sqrt(tt));

d=exp(-sigma*sqrt(tt));

p=(exp(r*tt)-d)/(u-d);

price=zeros(n+1);

price(1,1)=s0;

for i=1:n+1;

for j=1:n+1;

if j>=i;

price(i,j)=price(1,1)*u^(j-i)*d^(i-1);

end

end

end

opition=zeros(n+1);

opition(:,n+1)=max(k-price(:,n+1),0);

for j=n:-1:1;

for i=1:n;

if i

opition(i,j)=max(k-price(i,j),exp(-r*tt)*((1-p)*opition(i+1,j+1)+p*opition(i,j+1)));

end

end

end

opition

此种方法的有点在于操作简单,结果明显,并输出了股票价格矩阵,令使用者可以非常直观的美式看跌期权的最佳执行边界。并且,稍做修改便可适用于非CRR的其他二叉树模型。然而,其缺点在于当二叉树层数n较大时(例如n=10000),由于要生成n+1阶矩阵,此程序往往不能胜任(matlab会显示out of memory)。根据此特点,我们需要优化代码。

2 二叉树法B

function price = AmPutLattice(S0,K,r,T,sigma,N)

tic

deltaT = T/N;

u=exp(sigma * sqrt(deltaT));

d=1/u;

p=(exp(r*deltaT) - d)/(u-d);

discount = exp(-r*deltaT);

p_u = discount*p;

p_d = discount*(1-p);

SVals = zeros(2*N+1,1);

SVals(N+1) = S0;

for i=1:N

SVals(N+1+i) = u*SVals(N+i);

SVals(N+1-i) = d*SVals(N+2-i);

end

PVals = zeros(2*N+1,1);

for i=1:2:2*N+1

PVals(i) = max(K-SVals(i),0);

end

for tau=1:N

for i= (tau+1):2:(2*N+1-tau)

hold = p_u*PVals(i+1) + p_d*PVals(i-1);

PVals(i) = max(hold, K-SVals(i));

end

end

price = PVals(N+1);

toc

此代码计算速度快的主要原因在于利用了CRR模型中上升比例与下降比例乘积为1(u*d=1)这一特点。

其优点在于只需生成一个列向量来表示股价并进行迭代,计算期权价格,运算速度较快。数值算例:S=52;k=52;r=0.1;sigma=0.4;T=5/12;n=10000;

输出结果 price=4.4555

运行时间 1.897011 seconds

其缺点在于,只输出期权价格,并不能得到最佳执行边界,并且不适用于非CRR模型。

参考文献:

[1]姜礼尚.期权定价的数学模型和方法

[2]约翰・赫尔.