matlab求解资产隐含波动率及无风险利率初探.doc

1MATLAB求解资产隐含波动率及无风险利率初探APRIMARYEXPLOREINTOFLUCTUATIONSTANDARDDEVIATIONANDNONRISKINTERESTOFANASSETVIAMATLAB吴义能1本文发表于武汉金融2013年第2期,抄袭本论文的成果将受到法律的严惩。摘要按传统方法,布莱克舒尔茨期权定价公式参数中波动率难以获取,无风险利率计算也容易出错。本文在指出传统求波动率和无风险利率的方法的不足的基础上,探索利用市场期权报价,通过求解MATLAB方程,快捷方便地求解隐含波动率和无风险利率的新方法。关键词BS公式无风险利率资产波动率ABSTRACTBLACKSCHOLESULAPROVIDESAEFFECTIVEWAYTOCALCULATETHEPRICEOFAEUROPEANOPTIONHOWEVER,SOMEPARAMETERSINTHISULAAREHARDTOOBTAIN,FIRSTLYTHEFLUCTUATIONSTANDARDDEVIATION,SECONDLYTHENONRISKINTERESTRATETHISPAPEREXPLORESAEASYAPPROACHANDASHORTCUT,ONTHECONTRACTOFTRADITIONAL,TOSOLVETHEFLUCTUATIONANDRATEBYBSULAWITHMATLABSOFTWAREKEYWORDSBLACKSCHOLESULA,NONRISKINTERESTRATE,FLUCTUATIONSTANDARDDEVIATIONOFANASSET1引言无论是资产组合的CAMP模型、BS期权或二叉树期权定价模型还是各类对冲交易模型,其中都涉及到两个非常重要的参数市场上的年化无风险利率(R,以下简称无风险利率)和标的资产的年化波动率标准差(Σ,以下简称波动率)。尤其是在BS期权定价公式中,此二参数更是具有决定性作用。但是,传统的计算无风险利率和波动率的方法比较繁琐,其结果也往往并不精确。本文旨在研究一种通过BS期权定价公式解方程的方法,从而快速且精确地计算此二参数的方法。为此,我们首先要回顾一下BS期权定价公式。BS期权定价公式即布莱克舒尔茨期权定价公式,该公式是美国经济学家布莱克和舒尔茨(英文名,文献)(1973)提出的,该公式有效地解决了欧式期权定价的问题,使得期权的定价从以前的主观猜测变成了科学定价。布莱克舒尔茨期权定价公式的基本型是假设标的资产或股票没有红利。本文仅讨论无收益资产或股票的情况。无收益资产或股票的欧式看涨期权的BS定价公式为CSND1KERTND2TRKSLN11吴义能(1975),男(汉族),湖北武汉人,华中科技大学武昌经济管理学院,讲师。研究方向衍生金融工具。2TDTRKSD122LN其中C欧式看涨期权的价格,下文有些地方称之为CALLS标的资产期初价格K协议价格R无风险年利率,按连续复利计算Σ资产收益波动的年标准差(波动率)T期权的存续期,以年为单位N()累积正态分布函数。在S,K,T,R和Σ这五个参数中S,K和T是已知的;无风险利率没有现成的,需要选取一个市场利率作为参考;标的资产的波动率也需要复杂的计算才能确定。2求无风险利率和标准差的常规方法及弊端21求无风险利率的常规方法及弊端简单地说,某项资产的无风险利率可以用同期的国债利率来表示,但实际应用中却不是简单地引用国债利率,而要经过转换。以美国的期权为例,在选择某个期权的无风险利率时,往往是采用到期时间与该期权的存续期相近的短期国债的利率作为无风险利率的估计值。由于期权的存续期一般小于一年,小于一年的美国国债是TBILL(国库券),TBILL的报价为贴现率报价,故还要将之转化为连续复利的形式。假设某期权的存续期为100天,某100天到期的TBILL的买入和卖出报价为883877美元,那么计算无风险利率的步骤如下第一步算出无风险债券的价格。由于883877是贴现率报价,国债的期限为100天,设国债的价格为PTB,有PTB100883877/2100/360975556美元第二步设按连续复利R,经过100天的期限之后,这项投资的收益变为100,所以有PTBERTT100,即569710360RE解出R00891即BS公式中可以使用的无风险利率是00891。由上可见,这种常规的求无风险利率的方法存在一定的弊端其一是TBILL的到期时间往往和期权的存续期不完全相同,那么选用TBILL的贴现率转化成的无风险利率就不是图21试错法求隐含波动率的流程3很精确;其二是要将TBILL的贴现率转化为连续复利,其过程较复杂。初学者可能直接把贴现率当无风险利率用了,这样计算出的期权价格就不合理了。22求隐含波动率的常规方法及弊端。求波动率的常规方法有两种,其一是求历史波动率,其二是求隐含波动率。历史波动率是依据资产或股票以往的历史价格,用统计的方法求出收益的波动率。由于历史波动率需要大量的历史数据,并且得出的波动率不能完全预测未来收益的波动,所以更常用的是隐含波动率。隐含波动率实际上是根据已有的期限报价,利用BS公式和其它已知条件,求出已有报价的波动率。这对于期权价格波动较快的期权更有意义。传统的求解隐含波动率的方法是试错法。试错法用手动计算基本上是不可能完成的,必须要编程,设置循环进行计算,同时在程序中设置精确度。从理论上说,可以设置一个很高的精确度。如从0,到1以步长00001进行10000次循环,然后每个循环中算出来的CALL(欧式看涨期权的价格)等于市价CALL±005假设005是可以接受的,就结束循环,认为这时的Σ就近似等于隐含波动率。由此可见这种常规的求隐含波动率的方法在理论上是可行的,但实际弊端却很明显手动计算不可能,用计算机语言设计程序来算,过程也很复杂,一般人难以上手。所以有必要探索一种简便的方法求解隐含波动率。3用MATLAB解方程解出隐含波动率和无风险利率31用MATLAB和BS公式及现有期权报价求解隐含波动率如果我们已知看涨期权的执行价格CALL以下简称C,标的资产现价S,无风险利率R,存续期T,协议价格X,在BS公式的基础上,利用MATLAB的解方程功能,就能求出隐含波动率Σ。在MATLAB中,正态分布密度函数为NORMPDF,累积正态分布函数为NORMCDF。MATLAB解方程的函数中,最简便的是SOLVE,但是经过试验SOLVE不能解未知数是正态颁布的参数的变量。为了验证SOLVE函数是否具有求解含有正态颁布的方程,可以做一个简单的实验。例如,用SOLVE函数解含有正态颁布的方程40N(X)300,看能否解出X代码如下CLEARSYMSXSOLVE 40NORMCDFX300 ,X运行结果ERRORUSINGSOLVEUNABLETOFINDCLOSEDSOLUTIONERRORINSYMSOLVEAT49VARARGOUT{1MAX1,NARGOUT}SOLVES{}出错的原因就是因为X是一个概率分布的变量。这说明用SOLVE函数不好求出波动率Σ,因为Σ在BS公式中是服从累积4正太分布的。经过反复试验,笔者发现可以用FSOLVE函数近

matlab 求隐含波动率,matlab求解资产隐含波动率及无风险利率初探.doc相关推荐

  1. matlab求点,MATLAB求两点中点

    已知两点坐标,连接这两点,求线段的中点坐标.有没有什么公式啊? A(x1,y1).B(x2,y2),则AB中点是M((x1+x2)/2,(y1+y2)/2) 如何用MATLAB做出一个求两点间最短距离 ...

  2. matlab求近似解,matlab求近似解

    . 实验一 方程根的近似计算 一.问题 求非线性方程的根 二.实验目的 1.学会使用 matlab 中内部函数 roots.solve.fsolve.fzero 求解方程,并 用之解决实际...... ...

  3. matlab求两点间距离,matlab如何求一个N*2的矩阵的任意两点间的距离?

    matlab如何求一个N*2的矩阵的任意两点间的距离? mip版  关注:64  答案:3  悬赏:0 解决时间 2021-02-23 20:55 已解决 2021-02-23 16:37 假设有个矩 ...

  4. matlab求心率,matlab心率分析

    [实例简介] 国外大学的一款matlab开发软件,用于心率分析.有源代码,是学习的好参考. [实例截图] [核心代码] matlab心率分析 └── matlab心率分析 └── HRVAS_v1.0 ...

  5. matlab 求未知函数,求解具有未知参数的 BVP

    编写方程代码 创建一个函数以编写方程代码.此函数应具有签名 dydx = mat4ode(x,y,lambda),其中: x 是自变量. y 是因变量. lambda 是表示特征值的未知参数. 您可以 ...

  6. 怎么用matlab求特征向量,MATLAB用eig()函数求【特征值】【特征向量】【归一化

    在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有 5种: (1) E=eig(A):求矩阵A的全部特征值,构成向量E. 想求最大特征值用:max(eig(A))就好 ...

  7. matlab求能量,matlab实现无线传感器网络DV-HOP算法中如何计算能量损耗

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 老师让我们用MATLAB实现无线传感器网络DV-HOP算法,然后根据下列文字编写代码计算能量损耗: 目前,在低能量无线电通信领域有大量的研究.无线电通信特 ...

  8. matlab求迟滞,MATLAB PI迟滞模型问题

    之前我用matlab进行迟滞模型建模,误差非常大,我之前怀疑是自己的参数辨识出问题了,所以我用论文中的阈值向量和权重向量进行建模,输入数据也是用论文数据,但是出来的拟合的线误差非常大,和文献中相差太大 ...

  9. matlab求零空间,matlab求矩阵的零空间的一组整数基,该怎样操作?

    匿名用户 1级 2015-09-18 回答 第一部分:矩阵基本知识 一.矩阵的创建 直接输入法 利用Matlab函数创建矩阵 利用文件创建矩阵 二.矩阵的拆分 矩阵元素 矩阵拆分 特殊矩阵 三.矩阵的 ...

  10. matlab求刚度,matlab直接刚度法计算结构频率

    matlab直接刚度法计算结构频率 syms E I K r l x cja1=-E*I*K*r^3*(cos(x)*sinh(x)+sin(x)*cosh(x))jc1=-E*I*K*r^2*sin ...

最新文章

  1. 动态获取的图片当做背景,而且图片是小图
  2. 【Android 安全】DEX 加密 ( Application 替换 | 获取 ContextImpl、ActivityThread、LoadedApk 类型对象 | 源码分析 )
  3. 用JScript.net写.net应用程序(转)
  4. 工厂三兄弟之工厂方法模式
  5. C 语言中,x += 5 == 4 是什么意思?
  6. 为什么有那么多人选择“人工智能”,真的有那么好吗?
  7. 企业双11业绩增长156% 、成交额突破151亿元...... 这背后是阿里云数据中台的场景赋能
  8. Python——获取CPU的线程数量
  9. java 判断是否base64_判断一个字符串是否进行了base64加密
  10. Lengauer-Tarjan算法--支配树构造(bzoj 2815: [ZJOI2012]灾难)
  11. 一封写给2009年自己的信
  12. Windows Server 2016 安装OpenSSH Server,并设置密钥
  13. python matplotlib 绘图操作
  14. python数据分析 制图_Python与开源GIS:数据处理、空间分析与地图制图
  15. NMF(非负矩阵分解)
  16. python3.6 添加tab键功能
  17. GoPro内存卡里的THM、LRV文件
  18. 计算机格式化没有fat32,无需格式化 U盘FAT32转NTFS格式教程
  19. arduino点阵声音频谱_音频跳动:制造32分频音频频谱点阵
  20. 使用百度地图AndroidSDK

热门文章

  1. 鹏业安装算量软件一键识别设备操作说明
  2. 交易系统开发(十二)——QuickFIX官方文档
  3. html5 |移动 游戏 毕业设计,移动平台下基于HTML5的教育游戏研究与设计
  4. 无需任何插件,教你影像如何精准导入CAD软件进行绘图?
  5. 鸡兔同笼:35个头,94只脚,问鸡、兔各多少只?
  6. python判断中文近义词_近义词查询工具easySynonyms
  7. 调试经验——用XML格式定义Excel (.xls格式)文件 (XML Spreadsheet format in Excel)
  8. 【基于stm32f103c8t6RFID-RC522智能开关】
  9. 谷歌地图解析及ArcEngine加载谷歌地图方法
  10. mysql分区替换,MySQL交换分区的实例详解