版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章期权定价的二叉树和三叉树方法在这一章中,我们利用二叉树和三叉树方法为期权定价。在第 2.1节中我们已经介绍了利用基础途径的二叉树方法解决期权价格不 确定性的模型。二叉树方法依赖于对相关随机过程的离散化并利用计 算和内存的结合以满足易于管理的要求。 我们也在,我们必须把原来 的单步格方法扩展到多步格方法,但是我们必须校对格使它能够反映 出相关模型,且这个模型是连续时间、连续状态的随机微分方程。然 后我们就可以推广到多步的二叉树格和三叉树格。在7.1节中,我们从如何利用在离散概率分布的时刻下随机价格 波动校准简单的二叉树格。从这点来看,弄清楚网格技术和蒙特卡洛 模拟之间的联系是非常重要的,而
2、利用时刻匹配技术缩减方差可以看 作一种快捷的抽样排序。然后我们讨论内存效率的实现是如何设计 的,美式期权定价是7.2节的主题。同时,还是要注重它和其他技术 方法的联系。现在我们要做的本质上是一个非常简单满足动态规划原 则的程序,我们将在第10章程序中进一步拓展。在7.3节中,我们 把上述方法推广到双标的资产的情形,虽然这是一个最简单的情形, 但是我们可以从这个情形中看出内存控制是这一情形的基础。另一种一般化的代表是三叉树格方法,三叉树格方法可以作为一种更普遍的 有限差分方法(具体将在,最后,我们在7.5节中具体讨论网格化方 法的优势和劣势。期权定价的二叉树和三叉树格方法图7.1单时期二叉树格7
3、.1二叉树定价方法在,我们已经考虑过单步二叉树方法在无套利情况下的期权定价, 这里我们为了方便直接利用图7.1。其主要思想是复制两个资产,一 个是无风险资产,另一个是相关股票。利用这两项资产,我们可以通 过它们的组合塑造任何收益率的资产。如果我们令u和d为任意两个价格的角标,我们可以看到期权的价格应该为fo则,3=e'& pfu +(1 - p) fd(7.1 )在公式7.1中九和fd是标的资产在涨跌两种情况的期权价格,p是风 险中性前提下相关资产升值的概率。为了寻找一个更好的不确定性模型,我们可以增加分类的情况, 复制期权收益,甚至我们可以使用更多的资产,或允许中间日期交易。
4、 第二种可能性更为实际,并且也是必不可少的,例如,对于在期权的 存续期内可以随时执行的美式期权来说。对其求极限,就会得到连续时间模型,并且其最后收敛于 Blacksholes方程。当Blacksholes 方程没有解析解的时候,我们必须采取一些离散化的途径, 比如说可 以通过蒙特卡洛模拟从而估计出风险中性条件下预期收益,或者建立一个自适应网格的有限差分方法去解决相应的PDE模型。就像我们在图7.2中展示的一样,多级二叉树格方法就是一种可以选择的离散 化方法。我们也可以考虑利用树图,但是要注意使计算方法易于控制。二叉树格定价 图7.2新生成的二叉树图 这里我们为了方便令U=1/d。虽然这个不是必
5、须的,但是在后面 我们可以看到,这个假设令模型简化了很多即每上一步紧接着下一步 都会得到相同的初始价格。正如我们从图中看到的一样,我们仅用了有限个价格步。这个有 可能就是实施该方法的优势。但是,我们该怎么恰当的确定 u和d的 值呢,我们应该利用近似相关的连续过程去校对网格。二叉树格方法应该是风险中性过程一个良好的相似。因此,我们应以这样的方式参数设置晶格,即保持着连续时间模型的一些基本属性,这一过程就叫做校准。从 St开始,经过一个小的时间 步况,从2.5节我们可以看到新价格是一个随机变量 St无,且 利用对数正态对数分布的特性,我们得到ESt,t/St =ert(7.2)和VarSt 比/S
6、ke2%-1)(7.3)一个合理的要求是这些离散的动态点必须和它们的时刻相匹配。要注意的是,我们只有两个个等式,却有3个参数,p,u和d,所以三个变 量有一个为自由变量,我们令u=l/d,这样做是为了计算简便,但不 是必须的。在网格点上,我们有:ESt燧=pu.St +(1 p)d.St ,和(7.2)联立得注意,p是风险中性条件下的概率,它不依赖于真实浮动,为了和方差匹配,在晶格上我们看到从(7.3)中我们也可以看到把最后两个等式联立可得最终得到将p带入最后一个等式的右侧,化简得最后我们得到这样的等式其中,利用u=1/d,可以转化为二次方程:方程的一个跟为利用一阶条件拓展,只受&的影
7、响,我们可以简化表达式,对平方根 近似化简可得因此但是对于二阶条件,我们对二年拓展,最终获得参数r、t叫d=eRa,p=J,(7.4)u - d这就是著名的CR心示这里强调一下:这个方法以及文献中所用的参数都不是唯一的, 例如我们可以取p=0.5,经计算可得:.一 2,_2(r -) _t .二、三(H、t_;二、tp =0.5,u = e 2,d = e 2这就是杰诺-拉德参数,止匕外,我们一直在努力结束涉及计算以 及线性方程组的计算,通过对数转换的方法,我们尽量的避免这些困 难。在以后,我们都将采用这个方法。假设无风险利率和波动是时间常数,我们所得的结果适用于整个 晶格参数,为一个期权定价
8、,我们需要对标的资产制定一个网格,然 后从以往的时间倒推。事实上,期权价格在到期日的时候已经知道了, 那时已经给出了期权的收益。因此,我们利用方程 (7.1)按每一个时 间步倒推递归,直到到达我们的初始节点。二叉树格方法在欧式看涨 期权得到最佳的应用。例7.1假设我们假设为一个欧式看涨期权定价& = K = 50 , r = 0.1 ,仃=0.4,存续期为5个月,利用B-S模型,我们知道结果是: >>call =blsprice (50,50,0.1,5/12,0.4) >>call =6.1165如果我们想用二叉树格方法逼近结果的话,我们首先就要定义格 参数,
9、假定每个时间步为一个月,然后对股票价格产生的格和选项值显示在图7.3 ,在晶格的最右面是期权的价格,为了便于计算,让我们考虑如何从最后一层至第二层逐层倒 推:在递归后,我们看到,由此计算出的期权价格大约为6.36,结果不太接近确切价格,一个更好的改进近似就是缩小时间步长。为了更好的在MATLA坤实现这一方法,我们需要一个向前倒推的 代数式。令fj为在节点的期权的价值,其中 j为第j个时期 (j =0 N),i表示为在j时期内上升了 i。我们利用倒推思想,N是我 们考虑的时间步,因此总共有 N+1格,N6t=T,即整个期权存续期。 在这样的定义下,晶格点的标的资产价格即为SJdi,在存续期内,我
10、们有:fi,N = max0, SuidNj - K,i=0,1,.,N时间逆推(下降时间标j ),我们得到fj =eypfiWj由 +(1-p)fiH(7.5 )这些工作在MATLA冲生成非常简单,代码在图7.4给出,唯一要注意的一点是,矩阵索引在 MATLA叶要从一开始,这需要一个微小的调整。7.3欧式看涨期权的二叉树格function price, lattice = LatticeEurCall(SO,K,r,T,sigma,N)deltaT = T/N;u=exp(sigma * sqrt (deltaT) ;d=l/u;p=(exp(r*deltaT) - d)/(u-d);lat
11、tice = zeros(N+l,N+l);for i=O:Nendfor j=N-1: -1 : 0for i=O:jlattice(i+l,N+l)=max(O , SO*(u-i)*(d-(N-i)- K);lattice(i+l,j+l) = exp(-r*deltaT) *.(p * lattice(i+2,j+2) +(1-p) * lattice(i+l,j+2);endendprice = lattice(1,l);图7.4 MATLAB代码一为欧式看涨期权定价欧式看涨期权接收到通常我们所定义的参数和在此情况下的时 间步N,通过增加最后一个参数,我们得到了更为精确的价格(同一
12、计算时间的增加)。>>call = latticeEur call (50,50,0.1,5/12,0.4,5)>>call =6.3595>>call -latticeEur call (50,50,0.1,5/12,0.4,500)>>call =6.1140更有趣的是探讨二叉树方法计算的价格如何收敛于正确价格的。我们可以通过图7.5的代码和图7.6的结果输出来看出。在这种情况 下,我们看到随着时间步的增加的震荡情况。我们刚才讨论的执行结果也有一些缺陷。首先,它使用的是一个 大型的矩阵存储格,但是其中近一半为空,我们把返回的整个存储格 作为一
13、个输出参数,这个也许对与之相关的图7.3非常有用,但是可 能在实际运用中毫无作用,实际上为我们只需要连续的两个存储层存 储所需资料就能有所改善。在内循环中,我们用贴现系数乘以时间的 风险中性概率,我们可以通过循环外计算节省时间。我们将努力在 7.3节中进行改进,在下一节中,我们将把二叉树方法运用到其它非 标准型期权定价中。C0mpLatticeBLS.mSO = 50;K = 50;r = 0.1;sigma = 0.4;T = 5/12;N=50 ;BlsC = blsprice (SO,K,r ,T, Sigma);LatticeC = zeros(1,N); for i=(l:N) en
14、dplot(l:N, ones(l,N)*BlsC);hold on;plot(l:N, LatticeC);Latt iceC (i)= Latt iceEurCal1 (SO, K , r , T, sigma, i)图7.5脚本检查减少6t的二叉树格的精确性图7.6 二叉树方法中精确价格和增加了时间步后相似价格的差距7.1.2 把俩者结合起来,为后付费期权定价在这里,我们无红利股票的付费后期权1。后付费期权的特点是预 先不支付担保金,当合约成立以后,将在以后支付。如果期权的存期 满后,则期权必须执行,并归还担保金,否则期权就毫无价值可言, 因为没有担保金。请注意,期权持有者的净盈利可以是
15、负数,当期权这个例子是建立在(参考文献5第13章练习11) 的收益小于担保金的时候就会出现净盈利为负。在无套利的情况下, 如果净回报总是为负,我们不能拥有一份在t=0时亥价值为0的合约, 我们怎么样才能找到公平的担保金价值呢?给出一个担保金为P,则回报是:对于每一个给定的价格P,我们都可以利用二叉树方法算出期权 价格,现在我们必须寻找到一个值P,使得在风险中性的前提下,于 St相关的期望回报为0 :注意这里的贴现因子,因为利率是恒定的,因此贴现因子并没有任何 作用。为了解决这个含P的方程,我们对晶格利用二分法解决非线性 方程组(见,我们建立一个函数对给定P条件下的期望进行估计;MATLA玳码在
16、图7.7中给出。让我们考虑一个标的资产为股票的期 权,股票的价格为12美元,波动率为20%无风险利率为10%执行 价格为14美元;存续期为10个月。我们用二叉树方法为其定价,取 时间步长为一个月,所以总共有10个时间步。当P给定的时候,我们可以建立匿名函数返回贴现后的回报。然后我们利用二分法,以 fzero为出发点进行探讨。>>f = (PI Lll(P,12,14,0.1,0.2, 10/12, 10) f =(P) Lll(P,l2,14,0.1,0.2, 10/12, 10)>> fzero(f ,2) ans =2.0432exercise 11 chapter
17、 13 from Luenberger, Investment Science% exercise 11, chapter 13, from Luenberger, Investment Sciencefunction ExpPayoff = L11(premium,S0,K,r,sigma,T,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 if (S0*(uAi)*(dA(N-i) >= K) latti
18、ce(i+1,N+1)=S0*(uAi)*(dA(N-i) - K - premium; end end for j=N-1:-1:0 for i=0:j lattice(i+1,j+1) = p * lattice(i+2,j+2) + (1-p) * lattice(i+1,j+2); end end ExpPayoff = lattice(1,1);图7.7用二叉树方法为后支付期权定价的MATLAB;7.1.3 二叉树方法的一个执行改进我们原来使用过的改进后的二叉树方法现在也可以改进了(从 CPU运行时间和内存要求上)。首先,循环中没有必要重复计算贴现 的概率,我们可以乘以贴现因子和概率
19、一次来计算。止匕外,我们可以 看到,随着对二叉树晶格的校准,即令 ud=1,我们可以使用向量而 不是二维矩阵来记忆资产价格从而节约存储。例如在图7.3中,我们看到只有11个不同的值用于标的资产价格。用此种格校准,如果有 N个时间步,则我们就有了 2N+1个不同的价格。因此,他们可以存 储在单一列中,可以节省相当大的存储空间。如果我们需要 1000步 来准确估计,那么1000*1000的矩阵就和2001项的向量有了很大的 差距。一个可行性方案存储价格的方法可以见图7.8。这些数字如图所示是在矢量的位置。1是存储中的最小值,造成步骤序列是下跌序 列。我们可以看到奇数项对应的是最后一层,偶数项对应的
20、是倒数第 二层。在格上是奇数还是偶数取决于时间步。 图7.8 节省存储的二叉树格同样方法可以用来存储期权价值。原则上,我们应该使用俩个向量对应时间的连续俩个层。但是,我们可以利用让偶数的元素一层, 奇数的元素另一层,这样就可以使用含有2N+1个元素的向量了。由此产生的代码可以看图7,9。下面是我们上述工作的一些评论。*我们预先计算的,包括贴现概率等等的数量不变(在代码第一部 分)。*当我们编写标的资产价格的载体 SVals时,我们从最小的元素 开始,即SodN;然后乘以u;为了更好的准确性,最好把So存到中间 元素 SVals(N+1)中,然后继续正推或者倒推。* 注意的是我们在与调用值(通过
21、索引)计算的时候分为2步,其数额为交替奇数和偶数索引值连续对应层。* 当到期时间为T的时候,我们只须考虑CVals数组中的2(N-T)+1个核心元素。期权的价格是储存在格中的,它对应的是与之相对 应的格位置。我们可以检查一下一个计算上更有效率的版本。blsprice(50,50,0.1,5/12,0.4)ans = function price = SmartEurLattice(S0,K,r,T,sigma,N)% Precompute invariant quantitiesdeltaT = T/N;u=exp(sigma * sqrt(deltaT);d=1/u;p=(exp(r*del
22、taT) - d)/(u-d);discount = exp(-r*deltaT);p_u = discount*p;p_d = discount*(1-p);% set up S valuesSVals = zeros(2*N+1,1);SVals(1) = S0*dAN;for i=2:2*N+1SVals(i) = u*SVals(i-1);end% set up terminal CALL values CVals = zeros(2*N+1,1);for i=1:2:2*N+1CVals(i) = max(SVals(i)-K,0); end % work backwards for
23、 tau=1:Nfor i= (tau+1):2:(2*N+1-tau) CVals(i) = p_u*CVals(i+1) + p_d*CVals(i-1);end end price = CVals(N+1); SVals(i) =u*SVals(i-l);CVals(i) = max(SVals(i)-K,O); for i= (tau+l):2: (2*N+l-tau) end CVals(i) = p-u*CVals(i+l) + p-d*CVals(i-l); end price = CVals(N+l);6.1165>> tic,LatticeEurCa11(50,5
24、0,0.1,5/12Q4,2000,toc) ans = 6.1159 Elapsed time is 0.262408 seconds.>> tic,SmartEurLattice(50,50,0.1,5/12,0.4,2000),toc ans = 6.1159Elapsed time is 0.069647 seconds.图7.9欧式看涨期权二叉树方法的改进代码我们可以通过矢量代码寻求进一步的改善,或者采取不同的方法。我们不会追求这样的方法以避免模糊的代码,但是我们把握容易的方法以寻求进一步改进。也许在节省CPU处理时间上效果并不明显,但是当处理多维期权定价的时候对内存的节
25、省就显得非常必要。7.2用二叉树方法对美式期权定价利用二叉树技术为美式期权定价我们已经在上一节讲过,是相当简单的。唯一个关键点就是如何解释早期的运动相对应的看涨期权我们不敢兴趣,因为我们可以证明,美式看涨期权提前执行时没有意义的,除非在期权存续期内存在股息支付。在这里,我们解 决的是标的资产为无红利支付股票的普通美式看跌期权的定价问题。考虑在最后一个晶格层的点(1,N)。如果期权获利,这显然是最佳的 执行点。因此,在最后一层我们有:% nSJd"是该节点的标的资产价格。现在我们考虑一个在倒数第二 层的点。如果期权没有获利即Sj,NK,我们就不执行。如果期权已 经盈利,我们就想知道是现
26、在立即执行好,还是将来在某个机会执行 获取更大的收益更好。换句话说,我们必须解决一个最优停止问题, 在每个时间步上,我们必须观察这个动态系统,从而决定是否应该立 即执行,以保持现有收益,或者继续存有期权。解决这个问题有个简单的方法,就是通过比较直接的回报(期权 的内在价值)和继续持有的价值。如果我们继续持有资产,我们拥有 的资产价值为:(备注:相应的看涨期权我们不感兴趣,因为可以证明,提前执行是 从来没有最优选择的,除非股息在期权的存续期支付。) 这里Pu和Pd都是风险中性概率,我们应该执行,如果内在价值大于 继续持有的价值。因此期权在从第二到最后一层节点上的价值为 同样的事情会在任意层的递归
27、过程中发生。 这意味着,我们应该从最 后一层开始,在那里期权的价值就是期权的收益。然后我们应该对时 间倒推通过对通常期望稍加修改的方程(7.5 ) fi,j =maxKSij,e&(pfi 如书+(1心)心书).(7.6)这种想法看似简单,但它是一个所谓动态规划原则的普遍运用。我们将会在第10章看到动态规划原则在理论上多么的有效,但是有时却 由于"维数灾”而很难运用。在二叉树格中,我们使用了一个对相关 随机过程的简单离散化,动态规划看起来微不足道。事实上,我们的 推理有些误导,因为我们已经采取了期权持有的观点是愿意行使其期 权的最佳状态。但我们要问为什么我们只注重预期价值,而
28、忽略风险厌恶。一个严谨的理由其实没那么简单,它应该包括无套利理论和期 权卖方应该也关系他最糟糕的情况,就是期权持有人最优化执行他的 期权。撇开理论的问题,其实很容易采用我们已经做出来的欧式看涨期 权和美式看跌期权。结果代码显示在图7.10.我们以不同的方式轻微初始化晶格,但唯一显著的变化就是后面的时间步长,我们比较了持有价值和内在价值。金融工具箱为我们提供了一个 binprice函数,利用该函数可以给 普通美式看涨和看跌期权定价且允许连续红利。 我们可以通过比较美 式看跌期权格定价和binprice去检验我们的实现:> > SO = 50;> > K = 50;>
29、 > r = 0.0 5 ;> > T = 5/12;> > sigma = 0.4;> > N = 1000;> > price = AmPut Lattice (SO, K, r , T , sigma, N) price => > p, 01 = binprice(SO,K,r,T,T/N,sigma,O); 4.6739 416OPTION PRICING BY BINOMIAL AND TRINOMIAL LATTICES function price = AmPutLattice(SO,K,r,T,sigma,N)%
30、 Precompute invariant quantities deltaT = T/N;u=exp(sigma * sqrt(deltaT) ;d=l/u;p=(exp(r*deltaT) - d)/(u-d);discount = exp(-r*deltaT);p-u = discount*p;p-d = discount*(l-p);% set up S valuesSVals = zeros (2*N+1,1>SVals(N+l) = SO;for i=l:NSVals(N+l+i)=u*SVals(N+i);SVals (N+l-i)=d*SVals (N+2-i);end
31、% set up terminal values PVals = zeros (2*N+1,1);for i=1:2:2*N+1 end % work backwardsfor tau=l:NPVals(i) = max(K-SVals(i) ,O);for i= (tau+l) :2: (2*N+l-tau)hold = p-u*PVals(i+l) + p-d*PVals(i-l);PVals(i) = max(hold, K-SVals(i);end end price = PVals(N+l);图7.10二叉树方法为美式看跌期权定价的matlab代码。>> o ( l ,l
32、) ans =4.6739该函数binprice需要一个标志,表明如果选择看跌(标志设置为0)或选择看涨(标志设置为1)。此条件为上面条件的一个快速反应。这里计算函数binprice需要期权的存续期T和时间步长,令dt=T/N我们忽略了可用于分红比例的期权参数。输出的binprice是俩个价格, 一个是标的资产的价格,一个是期权的价值;重要的一点是当时间步 很小的时候,利用分号控制屏幕上的输出。7.3利用二叉树方法为双标的期权定价为了说明晶格技术扩展到多维期权,这里我们考虑两种资产的美 式利差期权。这种期权的回报为:基本方法可以推广到许多种期权,但是不包括强依赖路径的期权。为 了进一步推广,我
33、们也考虑持续股息收益率5和q2。其实我们并没有 对问题进行很大的改变,因为我们只是调整了风险中性的动态, 这里 我们关于它的方程(2.42)。这里两个维纳过程是相互关联的,且 dWRW2 = Pdt (见为了避免我们在校准过程中涉及到非线性问题所遇到的困难,我 们对资产价格进行对数化处理。令 Xi=logSi ,利用伊藤引理,我们 得到两个随机微分方程:这里 M = r fi -;2 / 2, i = 1,2现在,作为典型的二叉树格,我们假设这两个资产上升或者下降 在价格方面的对数数额为与,校准格。我们对一,二阶的距进行匹 配。这两只股票可能上行或者低走。因此每个节点有4个数值和4个 概率Pu
34、u, Pud, Pdu, Pdd。我们首先需要一个关于增量aXi预期的匹配 条件:这里我们要区别随机变量 汉i和他们的现值士取。然后我们需要一个相 似的二阶条件:E(歆2)2 =(Puu + Pud + Pdu + Pdd)(6X2)2 =a16t + vf (ft)2 k仃2% , 这里我们用到了常用恒等式Var(X) = EX2-E2X,我们也忽略了高阶 无穷小的黄。当概率趋近于1的时候,这些方程将被极大的简化:6x11d a,取2 =仃 2 Gt我们还应该说明协方差,以及与它等价的交叉向量:现在我们对4个未知概率有4个等式:这些方程可以通过反转矩阵解决,或者通过适当的线性方程组组合。得出
35、:这些条件有个直观的解释。就是当相对波动较大的时候,与其正相关 的概率也跳跃较大。例如在S向上浮动,S2向下浮动的概率下,P2即 成为一个负标志(即向上浮动越大,就越向下跳),并呈负相关关系, 使得这一联动成为可能,类似的考虑也适合于 p, d , u。即当P, d, u越小,正相关的浮动就越大。二叉树格方法的需要仔细的内存管理控制, 因为我们不能随意的 存储一个多维矩阵。由于上线俩个资产的浮动的绝对值是相同的,我们就可以利用我在已在,在二叉树方法中,我们运用的是价格,不是 价格的对数。因此,上升的价格为:这里di =1/u,i =1,2。概率的百分号在主循环之外。两个相关资产的价 值存储在两
36、个向量S1val和S2vals,这个定价的方法完全相似于对普 通期权的定价。期权的价格将存储于二叉树格矩阵中,这个矩阵经过 期权收益的初始化,这里令i指资产1, j指资产2。我们可以用两 个连续的一次矩阵,因此奇数层和偶数层都是连续层且交替使用。因为这是一个美式期权,我们在风险中性的前提下计算出来的继续持有 的价值要和与期权的内在价值进行比较。为了检测执行的具体情况,我们用下面这个例子 该例子引用于(藏考文献一P47-51)> > s10 = 100;> > s20 = 100;> > K = 1;> > r = 0.0 6 ;> >
37、 sigmal = 0.2;> > sigma2 = 0.3;> > rho = 0.5;> > q l = 0.03;> > q2 = 0.04;> > AmSpreadLattice (S10 ,S20 ,K,r ,T, sigmal , sigma2,rho ,ql .q2,N)> > T = 1;> > N = 3 ;ans =10.0448function price = AmSpreadLattice 610, S20 ,K ,r ,T, sigma1 , sigma2 ,rho ,ql, q2,
38、N)1 Precompute invariant quantitiesdeltaT = T/N;nu1 = r - ql - 0.5*sigmal-2; nu2 = r - q2 - 0.5*sigma2-2;ul = exp(sigmal*sqrt(deltaT) dl = l / u l ;u2 = exp(sigma2*sqrt(deltaT);d2 = l/u2;discountp-uu p-ud p-du p-dd=exp(-r*deltaT) discount*O.25*(1 discount*O.25*(1 discount*0.25*(1 discount*O.25*(1sqr
39、t(deltaT)*(nul/sigmal sqrt(deltaT)*(nul/sigmal sqrt(deltaT)*(-nul/sigmal sqrt(deltaT)*(-nul/sigmal+ nu2/sigma2) + rho);- nu2/sigma2) - rho);+ nu2/sigma2) - rho);- nu2/sigma2) + rho);Slvals% set up S valueszeros(2*N+l,l);S2vals = zeros(2*N+1,1)Slvals(1)= SlO*dl-N;S2vals(l)= S20*d2-N;for i=2:2*N+1Slva
40、ls(i) = ul*Slvals(i-l) ;S2vals(i) = u2*S2vals(i-l); end% set up terminal valuesCvals = zeros(2*N+1,2*N+i);for i=1:2:2*N+1for j=1: 2: 2*N+1endend% roll backfor tau= 1: NCvals(i, j) = max(Slvals(i)-S2vals(j)-K,O);for i= (tau+l) :2: (2*N+l-tau) for j= (tau+l) :2: (2*N+l-tau) hold = p-uu * Cvals(i+l,j+l
41、) + p-ud * Cvals(i+l,j-1) + . p-du * Cvals(i-l,j+l) + p-dd * Cvals(i-1,j-1);Cvals(i,j) = max(ho1d. Slvals(i) - S2vals(j) - K); end end end price = Cvals(N+l,N+l);图7.11利用二叉树方法给美式利差期权定价的matlab代码显然,三个步骤是不够获得可以接受的近似结果的,但是通过层与层检查,并通过这个例子了解矩阵 Cvals管理存储格。在matlab 中,我们可以逐步调试,就可以显示我们得到的基本信息。最初的晶 格是为清晰度准备的,我们用
42、一个星号标记其中无关的数据(当显示与调试你会看到一些数字有Cvals):经过一次循环,一次次逼近结果,相关数据是:请注意,新的价值是作为临近4个值的平均值获得的,其中存储的数据在下一时间层,然后回到一个步骤,我们有:格中最后的结果为:我们可以看到,我们正在处理一个金字塔结构的递归排序工作, 我们经历了 一个比较小的可以接受的内存浪费。图7.12单时段三叉树7.4 三叉树方法定价在二叉树上衍生三叉树想法是十分自然的。每个节点有3个下节点,即价格向上,向下和保持不变(这只是一种可能的选择)。晶格的校准以这样一种方式以便重组和匹配基本连续随机变量的前两个时刻。增加的新自由度,可用于改善衔接或提出额外
43、条件。这种方法的最大作用是对障碍期权,我们可以在晶格中求障碍值。这里非常方便的处理随机微分过程。经过一个小的时间步,我们有3个方向移动,相对应的价格对数增量形式为十取,0, -6x三种,与之相应的价格本身的乘法。这三种等价的方向对应的风险中性概率 为Pu , Pm和Pd。树图的结构见图7.12。这里给出一般方程:dX = vdt + crdW , 这里v=r -1/2 ,我们写出这时刻相对应的方程为: 求解得:图7.12单步三叉树图7.13 三叉树方法的全例我们看到更多的自由度来决定 秋。事实上,这证明了我们可以独 立的选择取和注。通常我们取取=3向。这种关系在我们处理有限差 分的时候非常好用
44、。我们也应该注意到,一个随意的取值会导致负的 概率。作为一个例子,我们考虑给一个标的资产为无红利支付股票的 偶是看涨期权定价:So =100, K =100, r =0.06, T =1,以及仃=0.3。如 果我们建一个取=0.2的三叉树格,我们得到图7.13,这里:Pu =0.3878 ,Pm =0.2494 , Pd = 0.3628实现这一三叉树算法的 MATLA玳码见图7.14.像往常一样,概率的 百分比不计入主循环。这里我们有个观察数据是必需的,不像二叉树, 我们必须储存俩个连续的时间层,因为在奇数列和偶数列之间没有互 换。从此,我们使用的是两列数组有 2n + 1行,其中的列的作用
45、可 能在现在或将来。我们利用增量模2交换的作用两个层次:是由变量 索引了解和kthen,对值1和2交替。下面是改进后格计算:> > S O =100 ;> > K=100;> > r=0.06;> > T = l ;> > sigma=0.3;> > deltaX = 0.2;> > EuCallTrinomial(SO,K,r,T,sigma,N,deltaX) ans => > N=3;14.6494function price = EuCallTrinomial(SO,K,r,T,sigma,
46、N,deltaX)% Precompute invariant quantitiesdeltaT = T/N;nu = r - 0.5*sigma-2;discount = exp(-r*deltaT) ;p-u = discount*0.5*(sigmaA2*deltaT+nuA2*deltaT-2)/deltaXA2+ .nu*deltaT/deltaX);p-rn = discount*。- (sigmaA2*deltaT+nuA2*deltaT-2)/deltaX-2);p-d = discount*0.5*(sigmaA2*deltaT+nuA2*deltaTA2)/deltaXA2
47、 -.% set up S values (at maturity)Svals = zeros(2*N+l, 1);Svals=SO*exp(-N*deltaX);exp-dX =exp(de1taX);for j=2: 2*N+1Svals(j)= exp-dX*Svals(j-1);end% set up lattice and terminal values Cvals = zeros(2*N+1,2);t = mod(N,2)+1;for j=1:2*N+1 endfor t=N-1: -1 : 0 ;nu*delt aT/delt ax);Cvals(j ,t)= rnax(Sval
48、s(j)-K,O);know = mod(t.2)+1;knext = mod(t+l,2)+1;for j = N-t+l:N+t+lCvals(j ,know) = p-d*Cvals(j-l,knext)+p-m*Cvals(j,knext)+. . p-u*Cvals(j+l,knext); end end price = Cvals(N+1,1);图7.14利用三叉树为欧式看涨期权定价的MATLAB/我们注意到对取的选择是为了方便应用。如下看到的经验法则& =3疯有一定的道理:> > blspr ice (SO, K , r , T, sigma) ans =14.7171> > N=100;> > deltaX = 0.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内部员工质量考核制度
- 内部媒体管理制度
- 内部审计审理制度
- 内部审计部集中办公制度
- 内部手续控制制度
- 内部治安防范管理制度
- 内部研发控制制度
- 内部许可证管理制度
- 内部退养遵守规章制度
- 农场内部考核管理制度
- 2025年侍茄师初级笔试及答案
- 车辆生产一致性管理制度
- 煤气柜安全制度规范
- 2026年山西青年职业学院单招职业技能考试备考试题带答案解析
- 岗位安全风险管控培训课件
- 《创新创业基础》教学大纲
- 雨课堂学堂在线学堂云《课程与教学论( 华师)》单元测试考核答案
- 2026年度江苏中烟工业有限责任公司高校毕业生招聘(第一批次)笔试考试参考题库及答案解析
- 2026江苏中烟工业有限责任公司高校毕业生招聘14人(第一批次)考试参考题库附答案解析
- DB37-T 5345-2025 《建筑工程流态固化土应用技术规程》
- 2025年初级会计职称《经济法基础》精讲课件第1-4章
评论
0/150
提交评论