以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文
二、评估环境
2.valuation_mcs_american_multi 类
总的来说,美式行权评估类的建模和处理与欧式行权的没有太大差别。主要区别在于收益函数的定义。
2.1 现值曲面
这个例子建立了基于之前两个风险因素的美式最低投入的模型。
- payoff_am = "np.maximum(34 - np.minimum(instrument_values['gbm1'], instrument_values['gbm2']), 0)"
- # 更好的时间网格和更多的路径(paths)
- val_env.add_constant('frequency', 'B')
- val_env.add_curve('time_grid', None)
- # 删除现有的时间网格信息
- val_env.add_constant('paths', 5000)
- # 美式看跌期权选择至少两种资产
- vca = valuation_mcs_american_multi(
- name='American minimum put',
- val_env=val_env,
- risk_factors=risk_factors,
- correlations=correlations,
- payoff_func=payoff_am)
- vca.present_value()
- for key, obj in vca.instrument_values.items():
- print(np.shape(vca.instrument_values[key]))
像之前基于两个风险因素的欧式期权,现值曲面以同样的方法产生。根据Longstaff-Schwartz(2001)的研究,美式期权的计算负担要高得多,这个期权通过使用最小二乘蒙特卡罗方法(LSM)来估价。
- asset_1 = np.arange(28., 44.1, 4.)
- asset_2 = asset_1
- a_1, a_2 = np.meshgrid(asset_1, asset_2)
- value = np.zeros_like(a_1)
- %%time
- for i in range(np.shape(value)[0]):
- for j in range(np.shape(value)[1]):
- vca.update('gbm1', initial_value=a_1[i, j])
- vca.update('gbm2', initial_value=a_2[i, j])
- value[i, j] = vca.present_value()
以上内容转自 数析学院,如需完整内容可以直接查看原文


雷达卡




京公网安备 11010802022788号







