以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文
通过蒙特卡罗模拟进行衍生品(投资组合)评估是一项计算要求高的任务。 在实际应用中,当评估的速度起着重要作用时,仿真模拟和评估任务的并行可能是一个有用的策略。 DX Analytics库内置了一个基本的并行选项,允许使用Python mulitprocessing模块。
- from dx import *
- import time
- from pandas.core import datetools
- import matplotlib.pyplot as plt
- import seaborn as sns; sns.set()
- %matplotlib inline
该例基于单风险因素,一个geometry_brownian_motion对象。
- # 恒定的短期利率
- r = constant_short_rate('r', 0.02)
- # 市场环境
- me_gbm = market_environment('gbm', dt.datetime(2015, 1, 1))
- # 几何布朗运动
- me_gbm.add_constant('initial_value', 100.)
- me_gbm.add_constant('volatility', 0.2)
- me_gbm.add_constant('currency', 'EUR')
- me_gbm.add_constant('model', 'gbm')
- # 评估环境
- val_env = market_environment('val_env', dt.datetime(2015, 1, 1))
- val_env.add_constant('paths', 25000)
- val_env.add_constant('frequency', 'M')
- 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_gbm.add_environment(val_env)
- risk_factors = {'gbm' : me_gbm}
二、美式看跌期权
我们也只建立一个单衍生工具模型。
- gbm = geometric_brownian_motion('gbm_obj', me_gbm)
- me_put = market_environment('put', dt.datetime(2015, 1, 1))
- me_put.add_constant('maturity', dt.datetime(2015, 12, 31))
- me_put.add_constant('strike', 40.)
- me_put.add_constant('currency', 'EUR')
- me_put.add_environment(val_env)
- am_put = valuation_mcs_american_single(
- 'am_put', mar_env=me_put, underlying=gbm,
- payoff_func='np.maximum(strike - instrument_values, 0)')
以上内容转自 数析学院,如需完整内容可以直接查看原文


雷达卡




京公网安备 11010802022788号







