【R语言】可转债隐含波动率的逆推计算教程

近些年可转债的量化项目越来越火了,从某种思路上来说,可将转债视为场内奇异期权来看待,即一份债券加上若干份看涨香草期权,所以无论是定价还是套利策略都逃不开隐含波动率和贴现率。从定价逻辑来看,由于转债价格=贴现后的债券价格+n份的香草期权价格,所以其中的债券价格应该是低于转债价格的,这样推出来的期权价格才是正值。但国内的二级市场有时并不理智,会发生恐慌性抛售行为,使得转债价格甚至低于了本身作为债券的价格,所以在使用Wind等金融终端的数据时会出现IV:即隐含波动率缺失的情况,这就意味着第三方数据商贴现债底时使用的贴现率有不合理的地方,对此感兴趣的朋友可以自己去思考一些新的算法,本文对此不做延伸。
先简短说一下IV的算法逻辑,期权的Black-Scholes-Merton定价模型含有5个参数,分别为执行价k、标的现货价s、期限t、无风险收益率r以及标的波动率v,然后计算唯一的未知量:期权价格p。现在已知p和前4个参数,唯一的未知量变为v,所以反算出来的v’即为隐含波动率,也叫做实际波动率(通常BSM算出来的期权价格和实际相差较大,且由于只有波动率是无法直接观测的,所以需要IV来描绘反应市场情绪的真实波动)。但由于波动率的逆算牵扯到概率密度的计算,无法直接运算,所以需要计算机的帮助。
直观点,现在我们考虑一个简单的计算,求出根号5的解(精确到小数点后3位),思考过程:

  1. 先确定个位数:依次代入1、2、3,发现在解在2~3之间;
  2. 再确定十分位:依次代入1、2、3,发现也在2~3之间。即解在2.2 ~2.3之间;
  3. 同理不断地迭代下去,直到需要的精度…

这种不断试凑出来的方法便可以推广至IV的逆算。它的好处是你不需要知道反算的解析式,而且可以通过牺牲算力来获取理论上无限精确的解。
现在开始具体操作,还是以看涨期权为例:
在这里插入图片描述
我们先创建一个BSM的函数(R语言也有自带的包,但自建这个函数很简单,可供展示):

option<-function(n,s,k,r,sig){
      ###BSM表达式###
  d<-(log(s/k)+(r+sig^2/2)*n)/(sig*sqrt
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值