在很多方面,对蒙特卡洛模拟方法提供的另一种估价和定价方法是很有帮助的。 一个应用领域是将基于蒙特卡罗的评估结果与其他(可能更准确的)结果进行比较。 另一个领域是基本流动性交易模型校准,通常可以应用更快的数值方法。本节介绍基于Fouried的评估函数和基于“标准”模拟DX Analytics建模方法的基准评估结果,以输出这些函数。
学习目标
- 实例化几何布朗运动、跳跃扩散、随机波动、随机波动性跳跃扩散四种风险因子建立模型
- 用实例化之后的四种风险因子分别定义各自的看跌期权和看涨期权
- 将这8个定义好的期权的蒙特卡罗值估计与基于傅立叶的定价结果进行比较
- 分析值估计的误差来源
- import dx
- import datetime as dt
风险因子遵循的示例和基准依赖于四种不同的模型:
- 几何布朗运动(Black-Scholes-Merton 1973)
- 跳跃扩散(Merton 1976)
- 随机波动(Heston 1993)
- 随机波动性跳跃扩散(Bates,1996) 有关这些模型和基于傅立叶期权定价方法的详细信息,请参阅Hilpisch(2015)(参见http://eu.wiley.com/WileyCDA/WileyTitle/productCd-1119037999.html)。
我们首先来定义单一的市场和估值环境。
- # 固定短期利率
- r = dx.constant_short_rate('r', 0.01)
- # 几何布朗运动
- me = dx.market_environment('me', dt.datetime(2015, 1, 1))
- me.add_constant('initial_value', 100.)
- me.add_constant('volatility', 0.2)
- me.add_constant('final_date', dt.datetime(2015, 12, 31))
- me.add_constant('currency', 'EUR')
- # 跳跃内容
- me.add_constant('lambda', 0.4)
- me.add_constant('mu', -0.6)
- me.add_constant('delta', 0.2)
- # 随机波动内容
- me.add_constant('rho', -.5)
- me.add_constant('kappa', 5.0)
- me.add_constant('theta', 0.02)
- me.add_constant('vol_vol', 0.3)
- # 波动环境
- val_env = dx.market_environment('val_env', dt.datetime(2015, 1, 1))
- val_env.add_constant('paths', 55000)
- # 25,000 条路径
- val_env.add_constant('frequency', 'D')
- # 以周为频率
- val_env.add_curve('discount_curve', r)
- val_env.add_constant('starting_date', dt.datetime(2015, 1, 1))
- val_env.add_constant('final_date', dt.datetime(2015, 12, 31))
- # 为市场环境中添加波动环境
- me.add_environment(val_env)
- gbm = dx.geometric_brownian_motion('gbm', me)
- jd = dx.jump_diffusion('jd', me)
- sv = dx.stochastic_volatility('sv', me)
- svjd = dx.stoch_vol_jump_diffusion('svjd', me)
基于刚刚定义的风险因素,我们分别定义了8个不同的期权---欧洲每个风险因子的看跌期权和看涨期权。
数析学院很适合初学者入门,课程资源也挺丰富的,坚持下去应该收获不小。
以上内容转自 数析学院,如需完整内容可以直接查看原文