蒙特卡罗模拟与欧式期权定价
蒙特卡罗模拟进行期权定价的核心在于生成股票价格的随机过程。
9.2节中,在期权到期的T 时刻,标的股票价格的随机方程为:
)ex p()ex p(T T T T S Y S S εσμ+== 其中,随机变量ε服从标准正态分布,即服从N(0,1),随机变量T Y 服从正态分布,其均值
为
T T )5.0(2σμμ-=,方差为T T σσ=,μ为股票的收益率,σ为股票的波动率。
期权的收益依赖于T S 在风险中性世界里的期望值,因此对于风险中性定价,股票的收益率(μ)可以用无风险利率r 减去连续红利收益率q 代替,也就是(r-q )。
于是风险中性定价的T S 随机方程为:
])5.0ex p[(2T T q r S S T εσσ+--=
其中ε服从标准正态分布。
上式中的股价运动过程与前面二叉树定价中的一样。
蒙特卡罗模拟随机产生一组股价终值T S 的样本值,即模拟试验。
然后为每一个样本值计算期权收益并记录下来。
产生足够多的样本值后,就可以得到期权收益的分布,通常需要计算分布的均值和标准差。
模拟试验的代数平均值常用来估计期权收益分布的期望值,然后用无风险利率对其折现来得到看涨期权的价格。
图1中欧式期权的有效期是六个月,其标的资产是连续红利收益率为3%的股票。
表中有36个期权收益的模拟试验,用它们可以估计出期权收益期望值的折现。
Using Monte Carlo Simulation to Value BS Call Option :
利用蒙特卡罗模拟来为布莱克-舒尔斯看涨期权定价
图1 期权信息及5个(从36个模拟数据得到)期权收益模拟结果
每个模拟试验产生一个终值股价(T S 的一个样本值)和一个期权收益值。
在B 列中用Excel 的RAND 函数来产生服从均匀分布的随机数,然后在C 列用标准正态分布函数NORMSINV 将其转换成随机样本。
RAND 函数产生[0,1]间服从均匀分布的随机数。
将其作为累积概率值(值在0到1之间),用NORMSINV 即可得到服从标准正态分布的随机变量值,其结果大部分处在-3与3之间。
例如,第一次模拟试验C22中的公式为:
=NORMSINV(B22)
其输入值为0.1032(大约10%),产生的标准正态变量的值则为-1.2634。
得到随机样本值(ε),就可以用下面公式计算期权到期日的股票价格:
])5.0ex p[(2T T q r S S T εσσ+--=
为了将其转换为单元格公式的形式,有必要先计算出T 时刻的风险中性漂移项和波动率,
也就是T q r )5.0(2σ--和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,就可以计算看跌期权的蒙特卡罗估计值,可将它与布莱克-舒尔斯期权价格作比较。