期权定价模型系列[9]SABR模型

1.简介

SABR模型是由 Hagan在 2002年提出的一种随机波动率模型,在抛弃了原始的BSM 模型中对于波动率为某一常数的假定,假设隐含波动率同样是符合几何布朗运动的,并且将隐含波动率设定为标的价格和合约行权价的函数,结合了隐含波动率修正模型的两种思路(随机波动率模型和局部波动率模型),更为准确的动态刻画出吻合市场特征的隐含波 动率曲线 SABR模型假设波动率是对数正态分布的,并且在定价方程里面加入了 CEV模型。这样使得模型估计的隐含波动率由两部分组成,一部分是 CEV 的可预测部分,而另一部分是在随机波动率模型中的随机的部分。

模型假设波动率本身也遵循一个无漂移项的几何布朗运动,而且和远期价格之间存在一定的相关性,其有如下一般动态过程:

有初始条件:F(0) = f ;  α(0) = 𝛼 ,标的物远期价格F 和波动率α都视为一个随机过程 其中,参数含义为:Sigma :波动率初值 ,Beta:CEV 模型弹性项 ,Alpha:波动率的波动率参数 ,Rho :几何布朗运动之间相关系数 β则决定了标的价格与平值隐含波动率的关系。当β—>1时,该随机模型接近对数正态,β—>0 时, 该随机模型则接近正态分布。

通过SABR模型,可以得到一个隐含波动率数值,进而可以带入到定价模型中计算得到期权的理论价格 如SABR模型的欧式期权价格由 BS 模型计算得到:

其中,σ为SABR模型计算得到的隐含波动率

SABR隐含波动率计算公式为:

参数β取值一般为(0,1),需要进行拟合的参数主要有:

利用市场实际数据对模型参数进行校准,优化函数为:

2.模型参数数值分析

Alpha:标的资产波动率方程中的初始值,类波动率参数。控制标的资产波动率的初始值以及整个波动率微笑曲线的初始值。数值增加时,整体的波动率曲线向上移动,反之向下移动

Beta:决定了标的资产现货价格与平值期权波动率之间的关系,取值范围为[0,1],取值=0.5时模型遵循CIR过程

Rho :标的资产远期价格与波动率方程中随机项的相关系数,控制整个波动率曲线的斜度,数值越大曲线向逆时针方向选装的角度越大

volvol:波动率方程中的漂移项,可认为是波动率的波动率,用于描述波动率曲线的微笑程度,数值越大,隐含波动率曲线的微笑弧度越大

3.代码实践

部分代码如下:

class SABR_Model_Hagan2002:""" Hagan2002 SABR Model"""def __init__(self,F,K,T,vols,beta):self.F=Fself.K=Kself.T=Tself.vol=volsself.beta=betadef calibration_params(self):"""校准SABR模型参数alpha,rho,volvol"""def vol_square_error(x):vols=[calc_sabr_vol(K_,self.F,self.T,x[0],x[1],x[2],self.beta)*100 for K_ in self.K]return sum((vols-self.vol)**2)x0=np.array([0.01,0.00,0.10])bounds=[(0.0001,None),(-0.9999,0.9999),(0.0001,None)]res=minimize(vol_square_error,x0,method='L-BFGS-B',bounds=bounds)self.alpha,self.rho,self.volvol=res.xreturn [self.alpha,self.rho,self.volvol]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12.5内存操作流(血干JAVA系列)

12.5内存操作流 12.5内存操作流ByteArraylnputStream类的主要方法ByteArrayOutputStream 类的主要方法【例12.33】使用内存操作流完成一个大写字母转换为小写字母的程序 12.5内存操作流 在 流 的 操 作 中 除 了 进 行 文 件 的 输 入 与 输 出 操 作 之 外 , 也 可…

flask初体验

1、定义 Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。 中文官网 2、初步上手 1、安装flask pip3 install flask 2、创建flask应用 # -*- coding = utf-8 -*- # @Time : 2024/1/28 23:02 # @Author: Frank # @File: main.py…

说说你对vue的mixin的理解,有什么应用场景

mixin是什么 Vue中的mixin 局部混入全局混入注意事项: 使用场景源码分析Vue 的几种类型的合并策略 替换型合并型队列性叠加型小结 此文章,来源于印客学院的资料,这里只是分享,便于查漏补缺。 mixin是什么 Mixin 是 面向对象程序设计语言中…

回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测(含优化前后预测可视化)

回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测 目录 回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测预测效果基本介绍程序设计参考资料预测效果 <

系统架构设计师-21年-上午试题

系统架构设计师-21年-上午试题 更多软考资料 https://ruankao.blog.csdn.net/ 1 ~ 10 1 前趋图(Precedence Graph)是一个有向无环图&#xff0c;记为:→{(Pi,Pj)|Pi must complete before Pj may strat}&#xff0c;假设系统中进程P{P1&#xff0c;P2&#xff0c;P3&#xf…

爬虫基础-计算机网络协议

一个数据的传输 这些设备的数据转发是通过协议来完成的&#xff0c;整个互联网可以说是完全由网络协议来维持的 不同的协议分工不同&#xff0c;比如ip协议确保了ip寻址&#xff0c;tcp协议确保了数据完整性 IP地址和URL ip地址 整个网络传输可以比作快递&#xff0c;数据就…

使用毫米波雷达传感器的功能安全兼容系统设计指南1(TI文档)

摘要 功能安全标准规定了在系统中实施安全的要求&#xff0c;并有助于概括该系统要达到的安全目标。包括功能安全的系统设计不仅要降低操作不当的风险&#xff0c;还要检测故障并将其影响降到最低。随着汽车和工业系统的自主性越来越强&#xff0c;严格的功能安全要求被强制执行…

单板计算机(SBC)-片上系统(SOC)嵌入式C++和FPGA(VHDL)

要点&#xff1a; 片上系统/单板计算机嵌入式C及VHDL编程单板计算机(Raspberry Pi)C实现MQTT监控房间门锁&#xff0c;灯光&#xff0c;并使用RESTful提示状态单板计算机(ESP8266)C 无线网络 MQTT土壤湿度监测仪&#xff0c;实现HTTP服务器&#xff0c;创建网页版监控界面&…

手把手带你死磕ORBSLAM3源代码(六十二) Atlas.cc GetAtlasKeyframes

目录 一.前言 二.代码 2.1完整代码 一.前言 以下是对每个函数的详细解释: SetKeyFrameDababase(KeyFrameDatabase pKFDB)* 功能:设置Atlas对象的关键帧数据库。参数:pKFDB是一个指向KeyFrameDatabase的指针。实现:将成员变量mpKeyFrameDB设置为传入的pKFDB。GetKeyFram…

(28)Linux 信号保存 信号处理 不可重入函数

首先介绍几个新的概念&#xff1a; 信号递达(Delivery)&#xff1a;实际执行信号的处理动作。信号未决(Pending)&#xff1a;信号从产生到递达之间的状态。信号阻塞(Block)&#xff1a;被阻塞的信号产生时将保持在未决状态&#xff0c;直达解除对该信号的阻塞&#xff0c;才执…

【大厂AI课学习笔记】1.2 人工智能的应用(1)

目录 1.2 人工智能的应用 1.2.1 产业中人工智能的应用 金融 教育 医疗 交通 制造 ——智慧金融 智能风控 智能理赔 智能投研 &#xff08;声明&#xff1a;本学习笔记学习原始资料来自于腾讯&#xff0c;截图等资料&#xff0c;如有不合适摘录的&#xff0c;请与我联…

性能篇,Hashmap的设计与优化?

嗨,小米的技术小窝又迎来了大家!今天我们要聊的话题是大家在日常开发中经常接触到的数据结构之一——HashMap。这个看似简单的键值对存储结构,背后却蕴含了许多设计和优化的奥秘。废话不多说,让我们一起来揭开HashMap的神秘面纱! HashMap的实现结构 在HashMap的实现中,…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十五)

用户端历史订单模块 1. 查询历史订单1.1 需求分析和设计1.2 代码实现1.2.1 user/OrderController1.2.2 OrderService1.2.3 OrderServiceImpl1.2.4 OrderMapper1.2.5 OrderMapper.xml1.2.6 OrderDetailMapper 2. 查询订单详情2.1 需求分析和设计2.2 代码实现2.2.1 user/OrderCon…

第二百九十三回

文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何混合选择多个图片和视频文件"相关的内容&#xff0c;本章回中将介绍如何通过相机获取图片文件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. …

机器学习之遗传算法(Genetic Algorithm)

机器学习(Machine Learning)是一种通过使用算法和统计模型,使计算机系统能够从数据中学习并改善性能的领域。而遗传算法(Genetic Algorithm)是一种受到自然选择和遗传学原理启发的优化算法,用于寻找问题的最优解或近似最优解。 遗传算法的基本思想是通过模拟自然选择和遗…

C++ 指针,数组与指针之间的关系以及指针运算

文章目录 C 指针C 中使用指针 C Null 指针数组与指针sizeof在数组和指针的上的区别&intArr 和 &intArr[0]的类型 C 指针的算术运算递增一个指针递减一个指针指针的比较 引用 VS 指针C 把引用作为参数C 把引用作为返回值 指针的释放 C 指针 学习 C 的指针既简单又有趣。…

C++ easyX小程序(介绍几个函数的使用)

本小程序通过代码和注释&#xff0c;介绍了easyX窗口及控制台窗口的设置方法&#xff1b;还介绍了easyX中关于颜色、线型、画圆、画方、显示文字以及鼠标消息处理等函数的使用方法。为便于理解&#xff0c;本程序同时使用控制台和easyX窗口&#xff0c;由控制台控制程序运行、由…

SpringBoot常见错误

SpringBoot常见错误 1、SpringBoot启动时报错 错误: 找不到或无法加载主类 com.xxx.xxx.Application springboot启动时报错错误&#xff1a;找不到或无法加载主类 com.xxx.xxx.Application。 解决方法就是打开idea的控制台&#xff0c;输入以下三行命令&#xff1a; mvn cl…

nginx安装ssl模块http_ssl_module

查看nginx安装的模块 /usr/local/nginx/sbin/nginx -V若出现“–with-http_ssl_module”说明已经安装过&#xff0c;否则继续执行下列步骤 进入nginx源文件目录 cd /usr/local/nginx/nginx-1.20.2重新编译nginx ./configure --with-http_ssl_module如果组件linux缺少&…

综合案例 - 商品列表

文章目录 需求说明1.my-tag组件封装&#xff08;完成初始化&#xff09;2.may-tag封装&#xff08;控制显示隐藏&#xff09;3.my-tag组件封装&#xff08;v-model处理&#xff1a;信息修改&#xff09;4.my-table组件封装&#xff08;整个表格&#xff09;①数据不能写死&…