1、如果我们令和为任意两个价格的角标,我们可以看到期权的价格应该为则, (7.1)在公式7.1中是标的资产在涨跌两种情况的期权价格,是风险中性前提下相关资产升值的概率。为了寻找一个更好的不确定性模型,我们可以增加分类的情况,复制期权收益,甚至我们可以使用更多的资产,或允许中间日期交易。第二种可能性更为实际,并且也是必不可少的,例如,对于在期权的存续期内可以随时执行的美式期权来说。对其求极限,就会得到连续时间模型,并且其最后收敛于Blacksholes方程。当Blacksholes方程没有解析解的时候,我们必须采取一些离散化的途径,比如说可以通过蒙特卡洛模拟从而估计出风险中性条件下预期收益,或者建立
2、一个自适应网格的有限差分方法去解决相应的PDE模型。就像我们在图7.2中展示的一样,多级二叉树格方法就是一种可以选择的离散化方法。我们也可以考虑利用树图,但是要注意使计算方法易于控制。二叉树格定价图7.2 新生成的二叉树图这里我们为了方便令。虽然这个不是必须的,但是在后面我们可以看到,这个假设令模型简化了很多即每上一步紧接着下一步都会得到相同的初始价格。正如我们从图中看到的一样,我们仅用了有限个价格步。这个有可能就是实施该方法的优势。但是,我们该怎么恰当的确定的值呢,我们应该利用近似相关的连续过程去校对网格。二叉树格方法应该是风险中性过程一个良好的相似。因此,我们应以这样的方式参数设置晶格,即
3、保持着连续时间模型的一些基本属性,这一过程就叫做校准。从开始,经过一个小的时间步,从2.5节我们可以看到新价格是一个随机变量,且利用对数正态对数分布的特性,我们得到 (7.2) (7.3)一个合理的要求是这些离散的动态点必须和它们的时刻相匹配。要注意的是,我们只有两个个等式,却有3个参数,p,u和d,所以三个变量有一个为自由变量,我们令,这样做是为了计算简便,但不是必须的。在网格点上,我们有:,和(7.2)联立得注意,是风险中性条件下的概率,它不依赖于真实浮动,为了和方差匹配,在晶格上我们看到从(7.3)中我们也可以看到把最后两个等式联立可得最终得到将带入最后一个等式的右侧,化简得最后我们得到
4、这样的等式其中,利用,可以转化为二次方程:方程的一个跟为利用一阶条件拓展,只受的影响,我们可以简化表达式,对平方根近似化简可得因此但是对于二阶条件,我们对拓展,最终获得参数, , (7.4)这就是著名的CRR公示这里强调一下:这个方法以及文献中所用的参数都不是唯一的,例如我们可以取,经计算可得:这就是杰诺-拉德参数,此外,我们一直在努力结束涉及计算以及线性方程组的计算,通过对数转换的方法,我们尽量的避免这些困难。在以后,我们都将采用这个方法。 假设无风险利率和波动是时间常数,我们所得的结果适用于整个晶格参数,为一个期权定价,我们需要对标的资产制定一个网格,然后从以往的时间倒推。事实上,期权价格
5、在到期日的时候已经知道了,那时已经给出了期权的收益。因此,我们利用方程(7.1)按每一个时间步倒推递归,直到到达我们的初始节点。二叉树格方法在欧式看涨期权得到最佳的应用。例7.1假设我们假设为一个欧式看涨期权定价,存续期为5个月,利用B-S模型,我们知道结果是:如果我们想用二叉树格方法逼近结果的话,我们首先就要定义格参数,假定每个时间步为一个月,然后对股票价格产生的格和选项值显示在图7.3,在晶格的最右面是期权的价格,为了便于计算,让我们考虑如何从最后一层至第二层逐层倒推:在递归后,我们看到,由此计算出的期权价格大约为6.36,结果不太接近确切价格,一个更好的改进近似就是缩小时间步长。为了更好
6、的在MATLAB中实现这一方法,我们需要一个向前倒推的代数式。令为在节点的期权的价值,其中j为第j个时期 ,i表示为在j时期内上升了i。我们利用倒推思想,N是我们考虑的时间步,因此总共有N+1格,即整个期权存续期。在这样的定义下,晶格点的标的资产价格即为,在存续期内,我们有: , 时间逆推(下降时间标j),我们得到 (7.5)这些工作在MATLAB中生成非常简单,代码在图7.4给出,唯一要注意的一点是,矩阵索引在MATLAB中要从一开始,这需要一个微小的调整。7.3 欧式看涨期权的二叉树格function price, lattice = LatticeEurCall(SO,K,r,T,sig
7、ma,N) deltaT = T/N;u=exp(sigma * sqrt (deltaT) ;d=l/u;p=(exp(r*deltaT) - d)/(u-d) ;lattice = zeros(N+l,N+l);for i=O:N end for j=N-1 : -1 : 0 j lattice(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);price = lattice(1,l) ;
8、图7.4 MATLAB代码为欧式看涨期权定价欧式看涨期权接收到通常我们所定义的参数和在此情况下的时间步N,通过增加最后一个参数,我们得到了更为精确的价格(同一计算时间的增加)。 6.3595 6.1140更有趣的是探讨二叉树方法计算的价格如何收敛于正确价格的。我们可以通过图7.5的代码和图7.6的结果输出来看出。在这种情况下,我们看到随着时间步的增加的震荡情况。我们刚才讨论的执行结果也有一些缺陷。首先,它使用的是一个大型的矩阵存储格,但是其中近一半为空,我们把返回的整个存储格作为一个输出参数,这个也许对与之相关的图7.3非常有用,但是可能在实际运用中毫无作用,实际上为我们只需要连续的两个存储层
9、存储所需资料就能有所改善。在内循环中,我们用贴现系数乘以时间的风险中性概率,我们可以通过循环外计算节省时间。我们将努力在7.3节中进行改进,在下一节中,我们将把二叉树方法运用到其它非标准型期权定价中。C0mpLatticeBLS.m SO = 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) plot(l:N, ones(l,N)*BlsC);hold on;N, LatticeC);Latt iceC (i) =
10、Latt iceEurCal1 (SO, K , r , T, sigma, i)图7.5 脚本检查减少的二叉树格的精确性图7.6 二叉树方法中精确价格和增加了时间步后相似价格的差距7.1.2 把俩者结合起来,为后付费期权定价在这里,我们无红利股票的付费后期权。后付费期权的特点是预先不支付担保金,当合约成立以后,将在以后支付。如果期权的存期满后,则期权必须执行,并归还担保金,否则期权就毫无价值可言,因为没有担保金。请注意,期权持有者的净盈利可以是负数,当期权的收益小于担保金的时候就会出现净盈利为负。在无套利的情况下,如果净回报总是为负,我们不能拥有一份在时刻价值为0的合约,我们怎么样才能找到公
11、平的担保金价值呢?给出一个担保金为,则回报是:对于每一个给定的价格,我们都可以利用二叉树方法算出期权价格,现在我们必须寻找到一个值,使得在风险中性的前提下,于相关的期望回报为0:注意这里的贴现因子,因为利率是恒定的,因此贴现因子并没有任何作用。为了解决这个含的方程,我们对晶格利用二分法解决非线性方程组(见,我们建立一个函数对给定条件下的期望进行估计;MATLAB代码在图7.7中给出。让我们考虑一个标的资产为股票的期权,股票的价格为12美元,波动率为20%;无风险利率为10%;执行价格为14美元;存续期为10个月。我们用二叉树方法为其定价,取时间步长为一个月,所以总共有10个时间步。当给定的时候
12、,我们可以建立匿名函数返回贴现后的回报。然后我们利用二分法,以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 13 from Luenberger, Investment Science % exercise 11, chapter 13, from Luenberger, Investment Sciencefunction ExpPayoff = L11(premium,S0,K,r,sigma,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*(ui)*(d(N-i) = K) lattice(i+1,N+1)=S0*(ui)*(d(N-i) - K - premium; endendfor j=N-1:-1: for i=0:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1