蒙特卡罗模拟进行期权定价的核心在于生成股票价格的随机过程。9.2节中,在期权到期的T时刻,标的股票价格的随机方程为:
其中,随机变量服从标准正态分布,即服从N(0,1),随机变量服从正态分布,其均值为,方差为,为股票的收益率,为股票的波动率。期权的收益依赖于在风险中性世界里的期望值,因此对于风险中性定价,股票的收益率()可以用无风险利率r减去连续红利收益率q代替,也就是(r-q)。于是风险中性定价的随机方程为:
其中服从标准正态分布。上式中的股价运动过程与前面二叉树定价中的一样。
蒙特卡罗模拟随机产生一组股价终值的样本值,即模拟试验。然后为每一个样本值计算期权收益并记录下来。产生足够多的样本值后,就可以得到期权收益的分布,通常需要计算分布的均值和标准差。模拟试验的代数平均值常用来估计期权收益分布的期望值,然后用无风险利率对其折现来得到看涨期权的价格。
图1中欧式期权的有效期是六个月,其标的资产是连续红利收益率为3%的股票。表中有36个期权收益的模拟试验,用它们可以估计出期权收益期望值的折现。
Using Monte Carlo Simulation to Value BS Call Option:
利用蒙特卡罗模拟来为布莱克-舒尔斯看涨期权定价
图1 期权信息及5个(从36个模拟数据得到)期权收益模拟结果
每个模拟试验产生一个终值股价(的一个样本值)和一个期权收益值。在B列中用Excel的RAND函数来产生服从均匀分布的随机数,然后在C列用标准正态分布函数NORMSINV将其转换成随机样本。RAND函数产生[0,1]间服从均匀分布的随机数。将其作为累积概率值(值在0到1之间),用NORMSINV即可得到服从标准正态分布的随机变量值,其结果大部分处在-3与3之间。例如,第一次模拟试验C22中的公式为:
=NORMSINV(B22)
其输入值为0.1032(大约10%),产生的标准正态变量的值则为-1.2634。
得到随机样本值(),就可以用下面公式计算期权到期日的股票价格:
为了将其转换为单元格公式的形式,有必要先计算出T时刻的风险中性漂移项和波动率,也就是和(分别处于B16和B17中)。因此,E22中的公式为:
=$B$4*EXP($B$16+C22*$B$17)
相应的期权收益为(H22):
=MAX($E$4*(E22-$B$5),0)
E4中存放的是参数iopt,它用来区分看涨期权和看跌期权。
计算模拟出的36个期权收益的平均值,然后折现即可得到看涨期权价值的估计量(E9)。用于折现的风险中性因子(exp(-rT))放在B18中。
图1显示,期权价格的蒙特卡罗估计值(12.85)与布莱克-舒尔斯期权价格有较大的差异。E10中,期权价值估计值的标准差(模拟期权收益的标准差除以模拟次数的平方根)相对较大(这就是蒙特卡罗估计值与布莱克-舒尔斯期权价格有较大差异的原因)。为了提高蒙特卡罗估计的准确度,有必要增加模拟试验的次数。
在Excel中按下F9,就可以产生另外36个模拟值,并得到一个不同的蒙特卡罗期权价格以及相应的估值标准差。对于看跌期权,单元格公式同样适用。将参数iopt(E4中)改为-1,就可以计算看跌期权的蒙特卡罗估计值,可将它与布莱克-舒尔斯期权价格作比较。下载本文