3.3 数值方法比较
本节首先给出一种逆拉普拉斯变换的数值解法,并针对巴黎期权的形式进行求解,给出相应的误差分析。
3.3.1 逆拉普拉斯变换
考虑对巴黎期权的拉普拉斯形式进行逆拉普拉斯变换(以下简称“逆变换”)的数值方法。由于逆变换是一个围道积分,我们的目标是通过寻找一个有限级数和来近似这个围道积分。首先使用一个无穷级数来近似其逆变换,也即对积分离散化。然后通过把无穷级数化为有限级数,从两种截尾级数近似方法中,选出一种快速、精确的近似方法。最后进行相应的误差分析。
1.逆拉普拉斯变换的解析方程
考虑对于一个R+上的可积函数f,假设当x<0时f(x)=0,记在z∈C以及Re(z)>0上的拉普拉斯变换
以及在ξ∈C上的傅里叶变换
经典复分析理论告诉我们,对于上述的f,两者之间有如下的关系:
式(3-24)的唯一存在性条件为f(x)e-σt均方可积,而这对于一般的期权价格是成立的,因为f有界而σ>0。为了计算f,我们可以对式(3-24)左右同做傅里叶逆变换,并写成如下的围道积分的形式。
这里u=σ+iξ。通过展开拉普拉斯算子并使用欧拉公式分别计算上述积分的实部和虚部,并且考虑到f为一个实值函数,经过一系列的积分推导之后,可以得出
如果我们能解决上述奇异积分的计算,则我们可以得出f的值。为了使用数值近似的方法,使用梯形法数值近似上述积分,取步长为,且记,则有
为了测量fh(t)近似f(t)的程度,可以使用泊松求和公式。泊松求和公式精确地把积分展开成无穷级数,建立积分与级数的一一对应关系。鉴于求解过程较为复杂,这里只列出计算结果,有兴趣的读者可以参考复分析方面的资料。关于上述积分的泊松求和公式为
把泊松求和公式与式(3-27)比较,可以看出采用步长为的时候近似误差可以被所控,由于f代表期权的价格,显然有f<S0,于是有。如果初始的股价为10元,取A=18的话,计算精度为O(10-7),在大部分情况下足以忽略。
当然,在数值计算的计算机实现上我们需要把无穷级数化为有限和的形式(截尾级数),记为Sn(t),也即
为了计算上述截尾级数的误差,我们需要求出余项的上界,因为
为了要达到O(10-7)的精度,我们需要求出1.17项的和,而这一计算的工作量非常大。为了能快速实现上述无穷级数的近似,我们采用欧拉求和法来加速级数的收敛性。
2.欧拉求和法
截尾级数的收敛速度非常慢。但是鉴于上述级数的通项具有周期性,可以定义如下的一个欧拉和,也即关于通项sn, sn+1, …, sn+m的一个二项近似
由于上式的求和权重等于1,则可以放缩通项得到
让左右两式同时趋于无穷,由夹逼准则则有
也即欧拉求和对s的近似是无偏的。下面我们考虑收敛速度,也即欧拉和能以多快的速度收敛到真值s。我们关注连续项的差E(m, n+1, t)-E(m, n, t),通过一系列的放缩,可以得到
于是计算误差
为了获得O(10-7)的精度,如果选择n=15则需要m=23。计算迭代所需要的计算开销比之前的1.17要小很多,可以看出欧拉求和法非常有效地降低了计算的复杂度。
在计算巴黎期权的逆拉普拉斯变换之前,我们还需要数值近似正态分布的分布函数,也即N(x)。在本书的计算机实现上我们采取如下的多项式近似:
其中x>0,并且
这种近似具有O(10-6)的精度,并且能够快速实现。
3.3.2 比较不同类型的巴黎期权
通过上述所使用的数值方法,采用C++编程,在Linux环境下计算一次巴黎期权的价值所需时间约为10毫秒。图3-1和图3-2给出了八种巴黎期权关于标的资产价格的形状。
图3-1 四种巴黎期权的初始价值
从图3-1和图3-2所给出的八种巴黎期权的价值,注意到为了能直观反映其价格形状,标的资产价格的区间有所不同。可以看出,八种巴黎期权中有四种形状和标准欧式期权类似,这是因为这四种巴黎期权的障碍敲入(敲出)条件与看涨(看跌)方向一致,从而标的资产的单向变动也会导致期权价格单向变动。而另外四种则具有独特的钟形形状,这是因为这四种巴黎期权的障碍敲入(敲出)条件与看涨(看跌)方向相反,从而期权价值的变动受到双向影响:一是敲入概率的变化;二是行权概率的变化。
图3-2 另外四种巴黎期权的初始价值