楼主: casey_c
1427 3

[程序分享] Python 金融数据分析 DX 库模型 [推广有奖]

  • 0关注
  • 10粉丝

博士生

92%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.1003
学术水平
2 点
热心指数
15 点
信用等级
2 点
经验
11502 点
帖子
278
精华
0
在线时间
94 小时
注册时间
2016-11-22
最后登录
2022-5-2

楼主
casey_c 发表于 2018-1-9 10:46:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币



以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文

主要介绍 DX 库中模拟金融市场的基本模型类,以及如何用它们来表示基本的不确定性风险因素如股票,股票指数和利率。

具体包括下模型类:
geometric_brownian_motion: Black-Scholes-Merton (1973) 几何布朗运动
jump_diffusion: Merton (1976) 跳跃扩散
stochastic_volatility: Heston (1993) 随机波动率模型
stoch_vol_jump_diffusion: Bates (1996) 随机波动率跳跃扩散
square_root_diffusion: Cox-Ingersoll-Ross (1985)平方根扩散
square_root_jump_diffusion: 平方根跳跃扩散(实验)
square_root_jump_diffusion_plus: 平方根跳跃扩散加期限结构(实验)


  1. from dx import *
  2. import seaborn as sns; sns.set()
复制代码
  1. np.set_printoptions(precision=3)
复制代码
在本节中,我们集中于constant_short_rate这个折现对象。
  1. r = constant_short_rate('r', 0.06)
复制代码


一、几何布朗移动

为了实例化所有类型的模型类,我们需要建立一个包含最小数据集的market_environment对象(取决于特殊模型类)


  1. me = market_environment(name='me', pricing_date=dt.datetime(2015, 1, 1))
复制代码
对于几何布朗运动类(geometric Browniam motion class),最小集是如下关于常量参数值。 在这里,我们只是做一些假设,实际上单一的值可以从汤森路透(Thomson Reuters)或彭博(Bloomberg)等数据服务提供商那里获得。 频率参数是依据pandas的频率惯例(参见http://pandas.pydata.org/pandas-docs/stable/timeseries.html )。


  1. e.add_constant('initial_value', 36.)
  2. me.add_constant('volatility', 0.2)
  3. me.add_constant('final_date', dt.datetime(2015, 12, 31))
  4.   # 模拟的时间范围
  5. me.add_constant('currency', 'EUR')
  6. me.add_constant('frequency', 'M')
  7.   # 每月频率;参数设置使用 pandas 的惯例
  8. me.add_constant('paths', 10000)
  9.   # 模拟的路径数
复制代码
每个模型类都需要一个贴现对象,因为这定义了风险因素的风险中性漂移。


  1. me.add_curve('discount_curve', r)
复制代码
string对象的名称和相关的market_environment对象来实现模型类的实例化。
  1. gbm = geometric_brownian_motion('gbm', me)
复制代码
generate_time_grid方法根据市场环境中的规格生成一个datetime对象的ndarray对象。 这代表了pricing_datefinal_date之间时间间隔的离散化。这个方法不需要被主动调用。
  1. gbm.generate_time_grid()
复制代码
  1. gbm.time_grid
复制代码
array([datetime.datetime(2015, 1, 1, 0, 0),       datetime.datetime(2015, 1, 31, 0, 0),       datetime.datetime(2015, 2, 28, 0, 0),       datetime.datetime(2015, 3, 31, 0, 0),       datetime.datetime(2015, 4, 30, 0, 0),       datetime.datetime(2015, 5, 31, 0, 0),       datetime.datetime(2015, 6, 30, 0, 0),       datetime.datetime(2015, 7, 31, 0, 0),       datetime.datetime(2015, 8, 31, 0, 0),       datetime.datetime(2015, 9, 30, 0, 0),       datetime.datetime(2015, 10, 31, 0, 0),       datetime.datetime(2015, 11, 30, 0, 0),       datetime.datetime(2015, 12, 31, 0, 0)], dtype=object)

以上内容转自 数析学院,如需完整内容可以直接查看原文

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
casey_c 发表于 2018-1-12 10:56:07

藤椅
cometwx 发表于 2018-1-17 07:46:08
感谢分享!!

板凳
ヽ(`Д?)? 发表于 2018-1-19 23:57:27 来自手机
感谢分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 01:53