ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:131.68KB ,
资源ID:28622078      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28622078.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(期权定价的有限差分方法.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

期权定价的有限差分方法.docx

1、期权定价的有限差分方法第九章期权定价的有限差分方法在本章中,我们将给出几个简单的例子来说明基于偏微分方程(PDE框架的期权定价方法。具体的方法的是利用第五章中讲述的有限差分方法来解决Black-scholes偏微分方程。在9.1节中,我们会回顾衍生品定价的数值解法以及指出如何利用适当的边界条件来模拟一个特定的期权。在9.2节中我们将会应用简单的显式(差分)方法来求解一个简单的欧式期权。正如你已熟知的那样,这种方法只能解出一些可以从金融角度来解释的不稳定的数值解。在9.3节中我们将可以看到使用完全的隐式方法可以解决这种不稳定问题。在9.4节中我们将介绍Crank-Nicolson方法在障碍期权定

2、价中的应用,它可以看做是一种显式与完全隐式方法的混合。最后,在9.5节中,我们会看到迭代松弛方法可以用于解决使用全隐式方法来解决美式期权定价时由于存在提前执行的可能性而导致的自由边界问题。9.1使用有限差分法解BS方程在2.6.2节中,我们给出了一个标的资产在时间t的价格为S(t)的期权,该期权的价格是一个函数f(S,t),且f(S,t)满足偏微分方程客翼+慧”(9.1)通过不同的边界条件可以让这个方程刻画不同的期权的特征。在某些地方可能因为假设的改变或者对路径依赖的改变而导致方程式的具体形式改变,但是此处仅仅作为一个起点,帮助读者了解如何应用基于有限差分方法来解决期权定价的问题。正如我们在第

3、五章中遇到的情况那样,要用有限差分方法来解偏微分方程,在此处我们必须建立资产价格和时间的离散网格。设T是期权的到期日,而Sma娓一个足够大的资产价格,在我们所考虑的时间范围内,S的数值不能超过Smax设定SmaxM因为偏微分方程的区域关于资产价格是无边界的。但是为了达到计算的目的,必须要求它是有界的。Sma而当于+8。网格通过点(S,t)取得,其中(S,t)满足S=0,6S,25S,t=0,比,2dt2,NSt=T。本章中使用网格符号为二/四品)阴,我们回顾一下(9.1)方程式的几种不同解法:向前差分dS53向后差分dfjdS52/=(九厂九_J一力爵8S8S+1厂2力十九.as?至于究竟采用

4、哪种方法进行离散化,我们将在后面的实际操作过程中对显式和隐式的方法作出详细的阐述说明另一个值得我们注意的问题是如何设置边界条件。对于执行价格为K的欧式看涨期权,其终值条件为/GT)=maxS-KQVS对于执行价格为K的欧式看跌期权,其终值条件为/T)=maxKS,0VS但是当我们涉及到资产价格的边界问题时,这个问题就变得复杂了。因为在数学上要求必须在一个有界区域里来解这个方程,而资产价格的区域是无界的。我们可以通过一些例子来说明这个问题。例9.1我们首先考虑一支简单的欧式看跌期权。当资产的价格S(t)非常大时,看跌期权几乎是一文不值,因为我们几乎可以肯定的是其执行价低于现价:4皿/)=。Sma

5、x的值必须足够大才能使得假设的边界条件是合理的。当资产的价格S=0时,鉴于资产的价格符合几何布朗运动的动力学模型,我们可以认为资产的价格会保持为0;因此到期收益为K,在时间t贴现值为其边界条件可以写为:N=T3&0,i=0,LM九炉,=。工,N例9.2我们可以从9.1推导出处理普通欧式看涨期权的方法。不妨设资产的价格S(t)=0,那么在任何时刻t,我们都可以知道该期权价值为0:而对于一个足够大的资产价格S(t),我们可以肯定的是该期权一定为价内期权,即具有大于零的价值的期权,那么期满行权我们可以得到收益为S(T)_K。将终值K贴现到t时刻,并且考虑标的资产的价格是一个函数S,那么我们根据无套利

6、定价原理可以得到其边界条件如下:/(Smax二Sjnax-底卬-。具体条件可以写为:工小郎-&0Li=QLM尸题-鼓tj=OJ.,A对于资产价格S较大时,需要一个替代的边界条件,但这时候必须要求期权的为1;在这种情况下,我们所提出的边界条件一般针对未知函数的倒数,而非函数本身。这便是数学物理方程中所谓的Neumann边界条件。我们不会采取这种做法,因为这将使得数值解法复杂化了。当我们面对障碍式期权时,事情可能就变得简单了。对敲出期权来说,例如一个向下触及失效看跌期权,在标的资产价格触碰到障碍时期权作废,价值为0。向上触及失效看涨期权的情况也是类似的,它们的优点都在于我们计算必须涉及到的边界即域

7、是自然有界的(显然存在的)。美式期权的定价就显得更加复杂难以处理了,因为这涉及到了提前执行边界的问题。我们必须考虑什么水平的资产价格和在什么时间是期权的最佳实施点。因此,在我们解决问题的过程中必然产生一个自由边界。这就需要为不同的奇异期权设定不同的边界条件。如何计算出正确的边界条件以及使用数值方法逼近正确的结果,这依赖于对具体期权的选择。利用显式法求解欧式期权由于初次尝试解方程(9.1),我们不妨考虑一个简单的欧式看跌期权。我们分别用中心差分对S进行求导,用向后差分对时间进行求导来逼近求解。这并不是唯一的方法,但是无论采取什么样的方法都必须保证边界条件是符合特定期权模型的。例9.1中的边界条件

8、差分后的结果可以用以下的方程式来表示:(9.2)需要特别指出说明的是,由于存在终点条件的假设,因此方程必须适当地用回推法求解。不妨设(9.2)式中有j=N,由于存在给定的终点条件,我们有一个未知量fi,N,可以认为它是关于三个已知量的函数。对其他的每个时间层(i)作同样的考虑。整理方程,我们可以得到:%广4:力tj+号叫+啦&j(9.3)/二NLN2rLeL此时有b;=1-况functionprice=EuPutExpl(S0,K,r,T,sigma,Smax,dS,dt)犍立网格,并且在必要时调整增量M=round(Smax/dS);dS=Smax/M;N=round(T/dt);dt=T/

9、N;matval=zeros(M+1,N+1);vetS=linspace(0,Smax,M+1);veti=0:M;vetj=0:N;犍立边界条件matval(:,N+1)=max(K-vetS,0);matval(1,:)=K*exp(-r*dt*(N-vetj);matval(M+1,:)=0;犍立三对角矩阵a=0.5*dt*(sigmaA2*veti-r).*veti;b=1-dt*(sigmaA2*veti.A2+r);c=0.5*dt*(sigmaA2*veti+r).*veti;用解方程forj=N:-1:1fori=2:Mmatval(i,j)=a(i)*matval(i-1,

10、j+1)+b(i)*matval(i,j+1)+c(i)*matval(i+1,j+1);endend领回价格,有可能在网格外线性插值生成price=interp1(vetS,matval(:,1),S0);图9.1简易欧式期权显式差分方法定价的MATLAB弋码定价不是直接利用MATLA来完成白图9.1中是定价所使用的MATLA的程序代码,另外计算还需要给出Smax的值以及上文提到的两个离散步骤。唯一一点需要注意的是,在数学符号中哥指数可以从0开始,但是在MATLA的矩阵计算中,哥指数是从1开始的。另外,如果资产的初始价格不在网格上,那么我们只能够寻找两个相邻点进行插值。一般我们采取比较粗略的

11、线性插值。但是如果有需要计算分析期权价格的敏感性(在实际案例中经常需要这样做)则需要进行更加复杂的插值计算。c,p=blsprice(50,50,0.1,5/12,0.4);PP=4.076EuPutExpl(50,50,0.1,5/12,0.4,100,2,5/1200)ans=4.0669c,p=blsprice(50,50,0.1,5/12,0.3);PP=2.8446EuPutExpl(50,50,0.1,5/12,0.3,100,2,5/1200)ans=2.8288我们可以看到,数值方法能够提供比较精确的结果,为了提高精度,我们也可以采用更加精细的网格进行计算。EuPutExpl(

12、50,50,0.1,5/12,0.3,100,1.5,5/1200)ans=2.8597EuPutExpl1(50,50,0.1,5/12,0.3,100,1,5/1200)ans=-2.8271e+022在此处我们看到在第五章中分析过的不稳定数值解的例子。有一种解决方案就是使用隐式方法进行求解。另外一种方法则是进行稳定性分析,然后在从离散化过程中导出边界。此处我们不会再使用第二种方案,这与第五章中对热传导方程进行的简易变换处理方法十分相似。接着,本章在下一节中将从金融的角度来阐释不稳定性,这暗示我们需要通过改变变量来改变方程式。9.2显式法不稳定性的金融学解释在显式法中,我们通过f(S+3S

13、,t+5t),f(S,t+)和f(Sgt+Et)三个值得到f(S,t)。这看起来与我们在7.4这部分(见图9.2(a)介绍过的三叉树方法有点类似。这样方便我们从显式法推导出新的方法。如下【参考文献1中第18章】,假设在点(i,j)和点(i,j+1)对S求一阶导数和二阶导数是相等的:4ij+i熬一放2/+1J+1-2工j+i1Z-L#1另外一种方法可以取得同样的效果,用品代替9.2式右侧的fi,jO这种方法引入的误差是有界的,并且这种方法的网格细化至趋于零。改变过后的替换后的差分方程变成了:/J+一十】J+1LJ+1-a2SS+1/+LJ+12片J+/LJ+12市也可写成(当i=1,2,M-1且

14、j=1,2,N-1时):%二用力-1j+i+,工J+1十弓加j+i同时有:&=i(_1方拉+2M=1翼:227T+rSidh.=1(l仃2超阳=1r九,用函*1+rdr0c一L_(1fiJt+g仃2讣二1笈工+rSi221+rSlu这个方法仍然是显式的而且仍然受到不稳定性的影响。系数哥,白以及己本身也对此作出了很好的解释。回顾之前我们使用过的二叉树和三叉树方法,我们是在风险中性的假设下将后继节点对期权的预期价值进行贴现得到期权的价格。事实上,上述系数,包括1/(1+咖)可以看做是长度为黄的时间间隔的贴现系数。此外我们还有:71Jln=1这也说明了上述系数等于概率乘以一个折现系数。他们是否是风险

15、中性的概率呢?我们应当首先测试资产价格在时间间隔6t内增长的值:A=SSttd4-十=ri6S3t=rSSt这正是我们所期望的风险中性世界,对于其方差的增加,有:此外,当&极小时有:=即/i2一E*A=j2S2抗尸22(次)2%b2s2拉这也是服从风险中性假设的几何布朗运动的。因此我们可以认为排除一些小问题后,显式法是可以和三叉树方法取得同样的效果的。即“概率%和队可能是负数。细心的读者可能会发现一个循环,在第五章中我们学习了一个线性组合的系数的稳定性条件。在热传导方程中,我们必须确定这个组合是一个凸组合,即系数是正的并且相加等于1。就像一个概率函数。有一种解决这个问题的方法,就是【参考文献U

16、中通过改变变量来实现的。通过Z=lnS来代换重写B-S方程,我们得到了实现稳定性的简单条件。然而,变量的改变对某些奇异期权来说却也未必是好事。在下一节中我们将使用隐式法来避免数值不稳定的问题。9.3使用全隐式法对欧式期权定价为了克服显式法带来的不稳定性问题,我们采用全隐式法。首对时间t采用向前差分求其偏导数。我们得到一个网格方程:7+1F+对5sL+L/3tJ26S25s2J7也可写成(当i=1,2,M-1且j=1,2,N-1时):此时有:M1+1J7KJ-1工22b=1+c,p=blsprice(50,50,0.1,5/12,0.4);PP=4.0760EuPutlmpl(50,50,0.1

17、,5/12,0.4,100,0.5,5/2400)ans=4.0718这个计算结果是非常精确的,这是因为使用了排除不稳定因素存在的更加精细的网格的结果。另外一种方法就是通过Crank-Nicolson方法来提高精度,这将在后面的章节中做进一步的介绍。9.4使用Crank-Nicolson方法对障碍式期权定价Crank-Nicolson方法已经在5.3.3节中提到过,它通过结合使用显式法和隐式法来提高数值解的精确度。在B-S模型的求解中应用此方法可以得到:%Aj-i.6sf二i-八一i上6s(/i-1j一St-FUS)26S)4I(2J汽3S)2rv=,-1十上述方程可以改写为:+(1-A)Aj

18、-l_+(1+(9.5)此时有:-ri)4(村+)(cr2i2+ri),4我们首先考虑在2.7,1中介绍过的向下触及失效期权,假设该障碍期权是处于连续监测下的。在这种情况下我们需要考虑&DOPut(50,50,0.1,5/12,0.4,40)ans=0.5424DOPutCK(50,50,0.1,5/12,0.4,40,100,0.5,1/1200)ans=0.5414障碍期权还有很多种,可以在【参考文献9中找到更多的关于障碍式期权定价的偏微分方程应用。functionprice=DOPutCK(S0,K,r,T,sigma,Sb,Smax,dS,dt)%建立网格并且在必要的时候调整增量M=r

19、ound(Smax-Sb)/dS);dS=(Smax-Sb)/M;N=round(T/dt);dt=T/N;matval=zeros(M+1,N+1);vetS=linspace(Sb,Smax,M+1);veti=vetS/dS;vetj=0:N;%建立边界条件matval(:,N+1)=max(K-vetS,0);matval(1,:)=0;matval(M+1,:)=0;%建立系数矩阵alpha=0.25*dt*(sigmaA2*(veti.A2)-r*veti);beta=-dt*0.5*(sigmaA2*(veti.A2)+r);gamma=0.25*dt*(sigmaA2*(vet

20、i.A2)+r*veti);M1=-diag(alpha(3:M),-1)+diag(1-beta(2:M)-diag(gamma(2:M-1),1);L,U=lu(M1);M2=diag(alpha(3:M),-1)+diag(1+beta(2:M)+diag(gamma(2:M-1),1);%求解线性方程组forj=N:-1:1matval(2:M,j)=U(L(M2*matval(2:M,j+1);end%返回价格,这个结果可能因为初始资产价格在网格外而有线性插值产生。price=interp1(vetS,matval(:,1),S0);图9.4Crank-Nicolson方法对向下触及

21、失效期权定价的MATLAB码。9.5美式期权定价有限差分方法在对简单的欧式期权进行定价时的确是十分方便的,但是这在美式期权定价中却显得并不是很实用。我们将这个方法应用于美式期权定价的时候,精确的公式就不大适用了。这是因为美式期权定价时必须考虑存在提前行权的可能性。根据无套利原理,在(S,t)空间中任一点的期权的价格不能低于其内在价值(即立刻行权的所得收益)。对于一个一般的美式期权,这意味着:从一个实际操作来看,在显式法中要充分考虑这种情况是很困难的。但是我们可以做一些修改以便能够简单的应用9.2节中提到的方法。在计算得到fi,j后,我们可以检测提前行权的概率。并且可以像我们处理二叉树模型那样设

22、:fij=max伉-K-iSS,由于存在着不稳定性问题,我们可能更加倾向于使用隐式法。但是这样处理后又导致了另一个复杂的问题,即根据上述关系要求,必须是已知的,而在隐式法中却并不能已知均要解决这个问题,我们可以采取一个迭代的方法来求解这个线性方程组,而不是基于LU分解直接求解。在3.2.5节中我们介绍了Gauss-Seide松弛迭代算法。为了方便我们先回顾一下这个方法。给出一个线性方程组,如下:Ax=b我们将使用下面的迭代方法,初始点为x(0):(i-lN瓦一口同川二工国同i=l,N,其中k是迭代计数器,而是松弛变量。该迭代将会一直进行到满足收敛条件,如:|限佳+1)一“r其中是容限参数。现在

23、我们将尝试使用Crank-Nicolson方法对美式期权进行定价。我们要解决的是和(9.6)式大致相同的一个线性方程组,但是这里的边界条件有一点不同,价值为0的期权不用再考虑是否有障碍。我们要用回推法求解的线性方程组如下:M107=门其中右边有:/oj-1+/oj0*=MaG+ai.90式子中额外增加的一项是为了将看跌期权独有的边界条件带入模型方程。在使用松弛方法的时候应当考虑矩阵M1的三对角性质,并且这能够适应美式期权提前执行的特征。设gi为内在价值,i=1,2,,M-1,同时S=i6S。对于每个时间层j,我们进行如下迭代:,严=口皿班,居+E?卜-a-)君+到段*=max虑+卜空+山,产)

24、-(1-伪)唐、为石?rAf-J+Alf-1)皮Li4当计算从一个时间层进行到下一个时间层的时候,将上一个时间层的计算结果作为下一个时间层迭代计算的初始向量可能是更加合理的。完成上述步骤需要的代码在图9.5中将列出。使用该代码有点麻烦,原因在于MATLA的向量募运算是从1开始的,而现实却要求从0开始。这样我们便不能建立一个包含所有fi,j的向量矩阵,同时系数矩阵M1也无法储存。上述迭代最好是直接通过口、P和计算得该代码的实际效果可能要比MATLA金融工具箱中附带的使用二叉树方法对美式期权定价的binprice函数(见7.1节)要好。tic,pr,opt=binprice(50,50,0.1,5

25、/12,1/1200,0.4,0);,tocElapsedtimeis0.408484seconds.opt(1,l)ans=4.2830tic,AmPutCK(50,50,0.1,5/12,0.4,100,1,1/600,1.5,0.001),tocans=4.2815Elapsedtimeis0.031174seconds.tic,AmPutCK(50,50,0.1,5/12,0.4,100,1,1/600,1.8,0.001),tocans=4.2794Elapsedtimeis0.061365seconds.tic,AmPutCK(50,50,0.1,5/12,0.4,100,1,1/

26、600,1.2,0.001),tocans=4.2800Elapsedtimeis0.023053seconds.tic,AmPutCK(50,50,0.1,5/12,0.4,100,1,1/1200,1.2,0.001),tocans=4.2828Elapsedtimeis0.036693seconds.tic,AmPutCK(50,50,0.1,5/12,0.4,100,1,1/100,1.2,0.001),tocans=4.2778Elapsedtimeis0.009989seconds.functionpriceAmPutCK(S0,K,r,T,sigma,Smax,dS,dt,omega,tol)M=round(Smax/dS);dS=Smax/M;%建立网格N=round(T/dt);dt=T/N;oldval=zeros(M-1,1);%Gauss-Seidel更新向量newval=zeros(M-1,1);vetS=linspace(0,Smax,M+1);veti=0:M;vetj=0:N;%建立边界条件payoff=max(K-vetS(2:M),0);pastval=payoff;%valuesforthelastlayerboundval=K*exp(-r*dt*(N-vetj);%边界值%建立系数矩阵和式子右边矩阵

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

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