这一篇的代码是之前蒙特卡洛仿真改过来的,大家都知道,用MC绘制路径是一件很好玩的事情。在学习FRM的过程中,遇到了几种利率模型,Term Structure、Ho-Lee与Vasicek。

这里我们不讨论BSM,只是作为程序的一部分而已,后面仿真也并不用到。

第一个模型,Term structure model with no drift,也就是,没有趋势的利率波动模型,笔者不知道这里是错误的省略了dt后面的单位正态分布函数,还是故意就是这样的,反正笔者是加上去了,以后如果觉得应该是没有的,那么再来修正吧。

第二个模型就是带趋势的了,但是趋势是恒定的,如果趋势是不恒定的,那么就是Ho-Lee模型。

最后是大名鼎鼎的Vasicek模型,其实就是一种均值回归模型。

整个代码如下:

# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as scs
'''
#initial parameters and introductions
created by luyixiao 2016/12/29
S0 = 100#initial stock price or other value
r = 0.05#risk-free rate
sigma = 0.25#standard devitaion
T = 2.0#simulation time
I = 10#the number of path you wanna simluate
M = 50#the step you wanna simulate
'''def modelSimulation(modelType,S0 = 100,r = 0.05,sigma = 0.25,T = 2.0,I = 10,M = 50,lamda = 0.05,k = 0.1,theta = 102):dt = T/M  S = np.zeros((M + 1,I))  S[0] = S0  print S[0]  if modelType == 'BSM':for t in range(1,M+1):  S[t] = S[t-1]*np.exp((r-0.5*sigma**2)*dt+sigma*np.sqrt(dt)*np.random.standard_normal(I))  if modelType == 'TSnD':for t in range(1,M+1):       S[t] = S[t-1]+np.sign(np.random.uniform(-1,1,I))*sigma*np.sqrt(dt)*np.random.standard_normal(I)  if modelType == 'TSwD':for t in range(1,M+1):       S[t] = S[t-1]+lamda*np.sqrt(dt)+np.sign(np.random.uniform(-1,1,I))*sigma*np.sqrt(dt)*np.random.standard_normal(I)  if modelType == 'HoLee':for t in range(1,M+1):       lamdan = np.random.uniform(0.01,0.09)            S[t] = S[t-1]+lamdan*np.sqrt(dt)+np.sign(np.random.uniform(-1,1,I))*sigma*np.sqrt(dt)*np.random.standard_normal(I)  if modelType == 'Vasicek':for t in range(1,M+1):       S[t] = S[t-1]+k*(theta-S[t-1])+sigma*np.sqrt(dt)*np.random.standard_normal(I)  plt.plot(S[:,:],lw = 1.5)  plt.xlabel('time')  plt.ylabel('price')plt.title(modelType)plt.show()
modelSimulation('TSnD')
modelSimulation('TSwD')
modelSimulation('HoLee')
modelSimulation('Vasicek')

最后能够显示的效果是这样的:

相信这里大家就能看出每个模型的区别了。

最后我们讨论一下Vasicek模型的参数k,也就是均值回归的速度。

for i in range(0,5):modelSimulation('Vasicek',k = 0.1*i,theta=100)

我们来看一下不同的k值下的路径图吧。

我们看到,k值越大,回归的速度越快,那如果K很大的,读者可以自己试一下,其实就会相当于比例控制中出现系统的不稳定一样的情况。

Python金融大数据分析-BSM、Term Struc、Ho-Lee 与Vasicek模型路径仿真相关推荐

  1. 金融科技、算法交易、量化金融必读书:Python金融大数据分析第2版

    银行本质上是技术公司. --胡戈•班齐格 近来,Python无疑是金融业的重要策略性技术平台之一.到2018年底,这已经不再是个问题:全世界的金融机构现在都尽最大努力利用Python及其强大的数据分析 ...

  2. python金融大数据分析笔记----第十章 2(风险测量)

    10.4 风险测量 VaR CVaR 10.4.1. 风险价值(Var) VaR(Value at Risk,风险价值或风险溢价)是度量一项投资或投资组合可能产生的下跌风险的方法,它描述的是在一定的概 ...

  3. 计算机编程书籍-Python金融大数据分析

    Python金融大数据分析 [德] 伊夫·希尔皮斯科(Yves Hilpisch) 著,姚军 译 ISBN:9787115521330 包装:平装 开本:16开 正文语种:中文 出版社:人民邮电出版社 ...

  4. python金融大数据分析视频_Python金融大数据分析 PDF 全书超清版

    给大家带来的一篇关于Python相关的电子书资源,介绍了关于Python金融.大数据分析方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小47.8 MB,希尔皮斯科编写,目前豆瓣.亚马逊. ...

  5. Python金融大数据分析:用pandas处理金融时间序列数据的基础知识

    时间是阻止所有事情同时发生的力量.--雷•卡明斯 本节使用的是以CSV文件形式在本地存储的金融数据集形式为本地存储的CSV文件.从技术上讲,CSV文件是包含数据行结构的文本文件,其特征是以逗号分隔单个 ...

  6. python金融大数据分析 培训

    说起金融,大家并不陌生,毕竟和我们的钱包关系紧密.这个"多金"的产业能持续的高速发展,源自科技的赋能. 从ATM到信用卡,从网上银行到移动支付--金融科技正在改变着我们的生活.国内 ...

  7. Python金融大数据分析——第五章数据可视化(2)金融学图表

    5.2 金融学图表 5.2.1 mplfinance matplotlib的finance库包含不少可视化的金融图表,由于几代更新迭代,finance库也发生了变化. 从2.2.0版本前调用: imp ...

  8. Python金融大数据分析——第四章数据类型和结构

    目录 数据类型和结构 4.1.1 整数 4.1.2 浮点数 4.1.3 字符串 4.1.4元祖 4.1.5 列表 4.1.6 控制结构 4.1.7 函数式编程 4.1.8 字典 4.1.9 集合 4. ...

  9. python金融大数据分析师工资待遇_三年工作经验大佬带你解读 Python金融大数据分析...

    内容提要: Python凭借其简单.易读.可扩展性以及拥有巨大而活跃的科学计算社区,在需要分析.处理大量数据的金融行业得到了广泛而迅速的应用,并且成为该行业开发核心应用的首选编程语言.本书提供了使用P ...

最新文章

  1. Thrift Direct Memory OOM问题解决方法
  2. AMESim R14 运行时出现许可证错误
  3. 成功解决 class 'AttributeError' : 'Editor' object has no attribute '_Editor__markerMap'
  4. How to change max_allowed_packet size
  5. VC的Win32控制台程序中使用MFC库文件
  6. Linux定时任务Crontab命令详解
  7. Java数据库连接池c3p0和druid
  8. 类型②typeof 操作符
  9. 成功解决 3DMAX报错:3D MAX application 已停止工作的解决方法
  10. Backlog Order
  11. 读书笔记 ---《偷影子的人》
  12. 苹果公司为什么储备那么多现金?
  13. margin 外边距合并问题
  14. 元核云赋能银行业,智能双录产品助力银保业务合规高效响应
  15. echart 重新加载
  16. allegro 倒圆角
  17. python打印运行log
  18. 低功耗电池摄像机、低功耗摄像机、低功耗WiFi摄像机
  19. DIY 空气质量检测表
  20. 2022-03-25 Cynthia SQL Injection

热门文章

  1. 早期做的Fireworks闪光字教程,顺便怀念一下
  2. google的广告页面代码的js
  3. [转]Android开源项目收藏分享
  4. Skype for Business Server 2015-04-前端服务器-7-部署
  5. Pulmonary--Detection8
  6. mysql in 排序 无数据混乱_mysql in查询 结果乱序 引发的思考
  7. 如何让你的广告效果最好?CPC广告生存法则
  8. 如何用语音模块SYN6288播报DHT11温湿度传感器传回来的数值
  9. Open3d-Point cloud (点云)
  10. SQL 获取 weekday