两资产的价差障碍期权定价分析.docx

上传人:b****5 文档编号:11978454 上传时间:2023-04-16 格式:DOCX 页数:27 大小:66.64KB
下载 相关 举报
两资产的价差障碍期权定价分析.docx_第1页
第1页 / 共27页
两资产的价差障碍期权定价分析.docx_第2页
第2页 / 共27页
两资产的价差障碍期权定价分析.docx_第3页
第3页 / 共27页
两资产的价差障碍期权定价分析.docx_第4页
第4页 / 共27页
两资产的价差障碍期权定价分析.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

两资产的价差障碍期权定价分析.docx

《两资产的价差障碍期权定价分析.docx》由会员分享,可在线阅读,更多相关《两资产的价差障碍期权定价分析.docx(27页珍藏版)》请在冰豆网上搜索。

两资产的价差障碍期权定价分析.docx

两资产的价差障碍期权定价分析

变量名称

变量说明

X0 、Y0

资产 X、Y 初始价格

LNX、LNY

资产 X、Y 的价格对数值

X、Y

资产 X、Y 的价格

sigma1、sigma2

资产 X、Y 的波动率

barrier

障碍价格

Rho

资产 X、Y 的相关系数

strike

期权执行价格

nstep

二叉树步数

npath

蒙特卡罗模拟的资产路径数

rfrate

无风险利率

outbarrier

外障碍价格

inbarrier

内障碍价格

基于两资产的价差障碍期权定价分析

——多维二叉树模型、蒙特卡罗模拟

1.基本原理

(1)多维二叉树

He.H.在 1990 年发表的论文“Convergence from Discrete to Continuous Time

Contingent Claims Prices”中提出要使得基于多资产的衍生产品的价格是无套利

的并且市场是完备的,那么基于 K 个资产的标的产品应该有 K+1 种价格状态,

并非之前认为的 K*(K+1)种状态。

并且这 K+1 种价格状态是反应多资产间的相

关系数的。

并进而证明这样的多维二叉树模型计算的价格最终将收敛于 Black-

Scholes 多变量模型。

参照 He.H.的基本思路,Ren-Raw Chen, San-Lin Chung 和 Tyler T. Yang 在

2002 年提出了简单易行的计算 K+1 种价格状态的方法。

在完备市场和无套利原

则下,衍生产品的价格可以通过多个风险资产和一个债券的资产组合价格复制

得到:

 

期初衍生产品的价格为:

 

以基于两资产的衍生产品为例,两个风险资产的价格服从几何布朗运动,且它

们的相关系数为 ρ,我们可以得到:

 

其中:

 

此时资产价格的二叉树三维图形为:

 

Time 0

 

Time 1

 

Time 2

 

Time 3

 

以 Time 1 为例,在 Time 1 两个资产的三个价格状态为:

下面确定 A、B、C 的值。

A、B、C 的值应该一方面反映两个资产各自的波动

率:

σ1,σ2 的值,另一方面反映出两个资产的相关系数 ρ 的值。

前提假设:

资产取每个价格状态是等可能的,那么

1)当两个资产没有相关性时(两个布朗运动独立),即 ρ=0,那么 A、B、C 的

值可以通过在半径为 1 的圆上取等间距的三个点的坐标表示:

 

如图所示,A、B、C 点的坐标或者其他任意三个等间距取的点的坐标代表当资

产没有相关性时资产价格状态的波动程度,此时 Time 1 的价格状态波动项为:

⎛⎫⎛⎫

1⎪ç 01⎪

⎪ç⎪

--

22

1⎪ç⎪

⎝⎭⎝⎭

rx = σ1 dt

ry = σ 2 dt

⎛rx * 0ry *1⎫

ç⎪

2

⎣⎦

⎝⎝2 ⎭⎝ 2 ⎭ ⎭

2)当两个资产的相关性为 ρ 不为零时,通过变换坐标抽的方法计算波动率。

如图转动 X 轴和 Y 轴,转动的角度 φ 代表相关系数 ρ 的大小,它们之间的关

系是:

ρ = sin(2φ )

 

坐标轴转动后 A、B、C 新的坐标表示为:

 

⎡ A* ⎤⎛ 01 ⎫

- 2 ⎪ * ç⎪

1

⎣ ⎦ç22 ⎭

 

⎡ A⎤⎡ A* ⎤

⎢⎥

⎢C* ⎥

(2)障碍期权定价原理

二叉树下障碍期权定价与一般的期权定价方法一致,唯一差别在于需要设

定障碍条件。

障碍条件涉及以下两个基本特征:

1)障碍设定在当前价格之上或者之下(up or down);

2)触发障碍敲入还是敲出(knock in or knock out)。

以上升敲出期权为例,在价格触发 barrier 之前,期权有效,定价方式与一

般期权定价相同;当触发 barrier 时,期权失效,期权价值变为零。

根据上面的描述,对于一个上升敲出的看涨期权来说,当采用二叉树定价

时,只需将股票在障碍之上的期权价值设为零,然后采用和普通期权一样的定

价方法定价即可。

但存在一个问题,即设定的 barrier 水平不一定正好落在二叉

树的节点水平上,对于这样的情况我们采取设立外障碍与内障碍分别定价的方

法,再通过线性插值法得到相应 barrier 的期权价格。

具体步骤是:

首先选定上下最为临近 barrier 水平的两个节点水平,分别作

为外障碍水平和内障碍水平;其次,分别对外障碍水平下的期权和内障碍水平

下的期权定价;最后,用线性插值方法得到真实障碍水平下的期权价格。

2.多维二叉树定价程序说明

function

[option,mcoption]=barrier(X0,Y0,sigma1,sigma2,strike,barr

ier,t,nstep,npath,rfrate,Rho)

LNX=cell(nstep,1);

LNY=cell(nstep,1);

X=cell(nstep,1);

Y=cell(nstep,1);

Spread=cell(nstep,1);

M=cell(1,nstep);

C=cell(1,nstep);

B=cell(1,nstep);

A=cell(1,nstep);

G=cell(1,nstep);

H=cell(1,nstep);

K=cell(1,nstep);

F=cell(1,nstep);

Option=cell(nstep,1);

dt=t/nstep;

rx=sigma1*sqrt(2*dt);

ry=sigma2*sqrt(2*dt);

Phi=0.5*asin(Rho);

预先设定储存空间

Psi1=[cos(Phi),sin(Phi)];

Psi2=[sin(Phi),cos(Phi)];

R1=rx*(Psi1*[0.5*sqrt(3),0,-0.5*sqrt(3);-0.5,1,-0.5]);

R2=ry*(Psi2*[0.5*sqrt(3),0,-0.5*sqrt(3);-0.5,1,-0.5]);

%%%%计算对数价格%%%%

M{1,1}=[0,0,0;1,1,0;0,0,1];

C{1,1}=[1,1,1;0,0,0;0,0,0];

A{1,1}=[1,0,0;0,1,0;0,0,1];

B{1,1}=[0,0,0;1,0,0;0,1,1];

K{1,1}=[1;0;0];

m=[0;0;1];

for i=2:

nstep

G{1,2}=[C{1,1},M{1,1}];

B{1,i}=[B{1,i-1},m];

A{1,i}=[A{1,i-1},B{1,i-1}];

K{1,i}=[K{1,i-1};0];

if (i==2)

LNX{1,1}=[log(X0),log(X0),log(X0)]*C{1,1}+R1*A{1,1};

计算加入相关

系数的波动项

LNY{1,1}=[log(Y0),log(Y0),log(Y0)]*C{1,1}+R2*A{1,1};

LNX{i,1}=LNX{1,1}*G{1,2}+R1*A{1,i};

LNY{i,1}=LNY{1,1}*G{1,2}+R2*A{1,i};

else

在 Time2 时资产的

对数价格

F{1,i}=[K{1,i-2},eye(i)];

H{1,i}=[zeros(0.5*i*(i-1),i+1);F{1,i}];

C{1,i}=[G{1,i-1};zeros(i,0.5*i*(i+1))];

G{1,i}=[C{1,i},H{1,i}];

LNX{i,1}=LNX{i-1,1}*G{1,i}+R1*A{1,i};

LNY{i,1}=LNY{i-1,1}*G{1,i}+R2*A{1,i};

end;

end;

%%%%%%%%计算资产价格%%%%%%%

for i=1:

nstep

for j=1:

0.5*(i+1)*(i+2)

取指数,得到资

 

Time   2 之后到

Time nstep 的资产

对数价格

X{i,1}(j)=exp(LNX{i,1}(j));

产的价格

Y{i,1}(j)=exp(LNY{i,1}(j));

%%%%%计算价差%%%%

Spread{i,1}(j)=abs(X{i,1}(j)-Y{i,1}(j));

end;

end;

%%%%%设定内外barrier%%%%

for i=1:

nstep

for j=1:

0.5*(i+1)*(i+2)

if (Spread{i,1}(j)>=barrier)

outbarrier=min(Spread{i,1}(j));

end;

if (Spread{i,1}(j)<=barrier)

inbarrier=max(Spread{i,1}(j));

end;

end;

end;

%%%%%%计算outbarrier期权价格%%%%%

for i=nstep:

-1:

1

N=0.5*(i+1)*(i+2);

k=i;

for j=0.5*(i+1)*(i+2):

-1:

1

if(i==nstep)

if(Spread{nstep,1}(j)>=outbarrier)

Option{nstep,1}(j)=0;

else

Option{nstep,1}(j)=max(Spread{nstep,1}(j)-

strike,0);

end;

else

if(N-j<=k+1)

Option{i,1}(j)=exp(-

rfrate*dt)*1/3*(Option{i+1,1}(j)+Option{i+1,1}(j+k+1)+Opt

ion{i+1,1}(j+k+2));

else

k=k-1;

N=N-(k+2);

Option{i,1}(j)=exp(-

rfrate*dt)*1/3*(Option{i+1,1}(j)+Option{i+1,1}(j+k+1)+Opt

ion{i+1,1}(j+k+2));

end;

end;

end;

end;

outprice=exp(-

rfrate*dt)*1/3*(Option{1,1}

(1)+Option{1,1}

(2)+Option{1,1}

(3));

%%%%计算inbarrier期权价格%%%%%%

for i=nstep:

-1:

1

N=0.5*(i+1)*(i+2);

k=i;

for j=0.5*(i+1)*(i+2):

-1:

1

if(i==nstep)

if(Spread{nstep,1}(j)>=inbarrier)

Option{nstep,1}(j)=0;

else

Option{nstep,1}(j)=max(Spread{nstep,1}(j)-

strike,0);

end;

else

if(N-j<=k+1)

Option{i,1}(j)=exp(-

rfrate*dt)*1/3*(Option{i+1,1}(j)+Option{i+1,1}(j+k+1)+Opt

ion{i+1,1}(j+k+2));

else

k=k-1;

N=N-(k+2);

Option{i,1}(j)=exp(-

rfrate*dt)*1/3*(Option{i+1,1}(j)+Option{i+1,1}(j+k+1)+Opt

ion{i+1,1}(j+k+2));

end;

end;

end;

end;

inprice=exp(-

rfrate*dt)*1/3*(Option{1,1}

(1)+Option{1,1}

(2)+Option{1,1}

(3));

%%%%%%插值计算最终期权价格%%%%%%

option=inprice+(outprice-inprice)*(barrier-

inbarrier)/(outbarrier-inbarrier);

 

3.蒙特卡罗模拟定价

1.基本原理

假设两个资产 S1,S2 的相关系数为 ρ,ξ1 与 ξ2 是两个独立的标准正态

分布,则有:

1

2

1

2

关键是怎样产生两个独立的标准正态分布,这里有许多方法可供选择,我们采

取的是 Box-Muller 方法。

Box-Muller 方法的基本原理

两个独立的标准正态分布 X、Y 的联合密度函数为:

f (x,y)=

1

- - - -

2 2 2

2 2

2π 2π 2π

令θ = tan-1 (

Y

X

2

),通过极坐标变换可得到:

f (d,θ )=

1 1

2 2π

d

e 2

此时,可以将看(d,θ是两个独立随机变量d与的联合分布密度函数,其中

11

22

θ :

 U (

),即参数为的均匀分布。

Box-Muller 方法的步骤:

1)生成两个独立均匀分布随机变量U1,U2 :

 U (0,1);

2)d=-2log(U1),;=2πU2

3)X = d cosθ,Y = d sinθ

此时得到的随机变量 X、Y 是两个独立的标准正态随机变量。

2.程序说明

%%%%%%%MC模拟%%%%%%%%

%%%%%将相关系数矩阵进行Cholesky分解%%%%%

cov=[1,Rho;Rho,1];

L=chol(cov);

L=L';

U1=rand(npath,nstep);

U2=rand(npath,nstep);

R=sqrt(-2*log(U1));

Theta=2*pi*U2;

rand1=R.*cos(Theta);

rand2=R.*sin(Theta);

生成两个独立的均匀分布随机变量

 

得到两个独立的标准正态随机变量

Payoff=zeros(npath,nstep);

Drift1=(rfrate-0.5*sigma1^2)*dt;

Volatility1=sigma1*sqrt(dt)*L(1,1)*rand1;

Increments1=Drift1+Volatility1;

LogPaths1=cumsum(Increments1,2)+log(X0);

 

模拟第一个资产的

价格路径

PricePaths1=exp(LogPaths1);

Drift2=(rfrate-0.5*sigma2^2)*dt;

Volatility2=sigma2*sqrt(dt)*(L(2,1)*rand1+L(2,2)*rand2); 模拟第二个资产的

Increments2=Drift2+Volatility2;

LogPaths2=cumsum(Increments2,2)+log(Y0);

PricePaths2=exp(LogPaths2);

价格路径

Spread=abs(PricePaths1-PricePaths2);

for j=1:

npath

if (Spread(j,nstep)>=barrier)

Payoff(j,nstep)=0;

else

计算价差,判断是否在障碍水

平之上

方法

期权价

步数

N=10

N=20

N=30

N=40

N=50

N=60

多维二

叉树

0.6466

0.3997

0.5570

0.4501

0.4055

0.4919

蒙特卡

罗模拟

0.3594

0.3977

0.4035

0.4435

0.3485

0.4306

end;

Payoff(j,nstep)=max(Spread(j,nstep)-strike,0);

最后一期的 payoff

折现,求得期权初

期价格

 

4.运行结果比较

以 X、Y 两只股票价格差的绝对值水平为标的,看涨上升敲出期权的价格计算。

基本参数设置如下:

X 0=40,;0=40

σ1=0.2,, σ 2 =0.3;

相关系数ρ =0 5

执行价格:

 10

障碍水平:

 15

期限一年:

t=1

无风险利率:

 5%

蒙特卡罗模拟的路径数:

 1000条

 

5.结论

从上表的运行结果可以看到,两种方法计算出的价格大体上比较一致,需要进

一步研究的地方有:

验证一:

增加蒙特卡罗模拟路径的路径数到 10000 条,查看运行结果:

方法

期权价

ρ

ρ=-1

ρ=-0.7

ρ=-0.2

ρ=0

ρ=0.2

ρ=0.7

ρ=1

多维二

叉树

1.0421

0.3617

0.5438

0.5937

0.6801

0.7077

0.2187

蒙特卡

罗模拟

0.3472

0.4083

0.4135

0.4218

0.4581

0.2865

0.0591

方法

期权价

N

N=10

N=20

N=30

N=40

N=50

N=60

多维二

叉树

0.6466

0.3997

0.5570

0.4501

0.4055

0.4919

蒙特卡

罗模拟

0.3995

0.3955

0.3951

0.3851

0.3957

0.3801

树结果随着步数增加逐渐向蒙特卡罗模拟值收敛,但是在 N=60 步时收敛趋势

出现逆转。

验证二:

相关系数的由-1 到 1 变化时,期权价格变化结果:

相关系数与期权价格的关系,如图所示:

(N=20 步,路径条数=1000 条,其他值保持不变)

相关系数在等于 1 和等于-1 处明显出现异常值,在 ρ=-1 时,多维二叉树计算

的期权价格高于正常价格水平;ρ=1 时,两种方法计算出的期权价格跳跃下降,

低于正常价格水平。

验证三:

障碍水平的变化与期权价格的关系,如图所示:

(N=20,路径=1000,K=10)

 

随着障碍水平的升高,期权价格也逐渐上升。

附:

完整程序

function

[option,mcoption]=barrier(X0,Y0,sigma1,sigma2,strike,barr

ier,t,nstep,npath,rfrate,Rho)

LNX=cell(nstep,1);

LNY=cell(nstep,1);

X=cell(nstep,1);

Y=cell(nstep,1);

Spread=cell(nstep,1);

M=cell(1,nstep);

C=cell(1,nstep);

B=cell(1,nstep);

A=cell(1,nstep);

G=cell(1,nstep);

H=cell(1,nstep);

K=cell(1,nstep);

F=cell(1,nstep);

Option=cell(nstep,1);

dt=t/nstep;

rx=sigma1*sqrt(2*dt);

ry=sigma2*sqrt(2*dt);

Phi=0.5*asin(Rho);

Psi1=[cos(Phi),sin(Phi)];

Psi2=[sin(Phi),cos(Phi)];

R1=rx*(Psi1*[0.5*sqrt(3),0,-0.5*sqrt(3);-0.5,1,-0.5]);

R2=ry*(Psi2*[0.5*sqrt(3),0,-0.5*sqrt(3);-0.5,1,-0.5]);

M{1,1}=[0,0,0;1,1,0;0,0,1];

C{1,1}=[1,1,1;0,0,0;0,0,0];

A{1,1}=[1,0,0;0,1,0;0,0,1];

B{1,1}=[0,0,0;1,0,0;0,1,1];

K{1,1}=[1;0;0];

m=[0;0;1];

for i=2:

nstep

G{1,2}=[C{1,1},M{1,1}];

B{1,i}=[B{1,i-1},m];

A{1,i}=[A{1,i-1},B{1,i-1}];

K{1,i}=[K{1,i-1};0];

if (i==2)

LNX{1,1}=[log(X0),log(X0),log(X0)]*C{1,1}+R1*A{1,1};

LNY{1,1}=[log(Y0),log(Y0),log(Y0)]*C{1,1}+R2*A{1,1};

LNX{i,1}=LNX{1,1}*G{1,2}+R1*A{1,i};

LNY{i,1}=LNY{1,1}*G{1,2}+R2*A{1,i};

else

F{1,i}=[K{1,i-2},eye(i)];

H{1,i}=[zeros(0.5*i*(i-1),i+1);F{1,i}];

C{1,i}=[G{1,i-1};zeros(i,0.5*i*(i+1))];

G{1,i}=[C{1,i},H{1,i}];

LNX{i,1}=LNX{i-1,1}*G{1,i}+R1*A{1,i};

LNY{i,1}=LNY{i-1,1}*G{1,i}+R2*A{1,i};

end;

end;

%%%%%%%%计算价格%%%%%%%

for i=1:

nstep

for j=1:

0.5*(i+1)*(i+2)

X{i,1}(j)=exp(LNX{i,1}(j));

Y{i,1}(j)=exp(LNY{i,1}(j));

%%%%%差价计算%%%%

Spread{i,1}(j)=abs(X{i,1}(j)-Y{i,1}(j));

end;

end;

%%%%%设定内外barrier%%%%

for i=1:

nstep

for j=1:

0.5*(i+1)*(i+2)

if (Spread{i,1}(j)>=barrier)

outbarrier=min(Spread{i,1}(j));

end;

if (Spread{i,1}(j)<=barrier)

inbarrier=max(Spread{i,1}(j));

end;

end;

end;

%%%%%%计算outbarrier期权价格%%%%%

for i=nstep:

-1:

1

N=0.5*(i+1)*(i+2);

k=i;

for j=0.5*(i+1)*(i+2):

-1:

1

if(i==nstep)

if(Spread{nstep,1}(j)>=outbarrier)

Option{nstep,1}(j)=0;

else

Option{nstep,1}(j)=max(Spread{nstep,1}(j)-

strike,0);

end;

else

if(N-j<=k+1)

Option{i,1}(j)=exp(-

rfrate*dt)*1/3*(Option{i+1,1}(j)+Option{i+1,1}(j+k+1)+Opt

ion{i+1,1}(j+k+2));

else

k=k-1;

N=N-(k+2);

Option{i,1}(j)=exp(-

rfrate*dt)*1/3*(Option{i+1,1}(j)+Option{i+1,1}(j+k+1)+Opt

ion{i+1,1}(j+k+2));

end;

end;

end;

end;

outprice=exp(-

rfrate*dt)*1/3*(Option{1,1}

(1)+Option{1,1}

(2)+Option{1,1}

(3));

%%%%计算inbarrier期权价格%%%%%%

for i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1