以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文
首先建立单个风险因子的模型,然后对单个和多个衍生工具进行建模,最后对衍生品投资组合进行建模。
- from dx import *
- import seaborn as sns; sns.set()
一、风险因子
本小节将做单个风险因子的模型。从风险中性贴现对象的定义开始。
- # 固定短期利率
- r = constant_short_rate('r', 0.02)
用三个风险因子来建模:
- 几何布朗运动
- 跳跃扩散
- 随机波动过程
- # 市场环境
- me_gbm = market_environment('gbm', dt.datetime(2015, 1, 1))
- me_jd = market_environment('jd', dt.datetime(2015, 1, 1))
- me_sv = market_environment('sv', dt.datetime(2015, 1, 1))
- # 几何布朗运动
- me_gbm.add_constant('initial_value', 36.)
- me_gbm.add_constant('volatility', 0.2)
- me_gbm.add_constant('currency', 'EUR')
- me_gbm.add_constant('model', 'gbm')
- # 跳跃扩散
- me_jd.add_constant('initial_value', 36.)
- me_jd.add_constant('volatility', 0.2)
- me_jd.add_constant('lambda', 0.5)
- # 跳跃概率
- me_jd.add_constant('mu', -0.75)
- # 期望跳跃大小[%]
- me_jd.add_constant('delta', 0.1)
- # 跳跃波动率
- me_jd.add_constant('currency', 'EUR')
- me_jd.add_constant('model', 'jd')
- # 随机波动模型
- me_sv.add_constant('initial_value', 36.)
- me_sv.add_constant('volatility', 0.2)
- me_sv.add_constant('vol_vol', 0.1)
- me_sv.add_constant('kappa', 2.5)
- me_sv.add_constant('theta', 0.4)
- me_sv.add_constant('rho', -0.5)
- me_sv.add_constant('currency', 'EUR')
- me_sv.add_constant('model', 'sv')
- # valuation environment 评估环境
- val_env = market_environment('val_env', dt.datetime(2015, 1, 1))
- val_env.add_constant('paths', 10000)
- val_env.add_constant('frequency', 'W')
- 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)
- me_jd.add_environment(val_env)
- me_sv.add_environment(val_env)
- risk_factors = {'gbm' : me_gbm, 'jd' : me_jd, 'sv' : me_sv}
- correlations = [['gbm', 'jd', 0.66], ['jd', 'sv', -0.75]]


雷达卡




京公网安备 11010802022788号







