金融学习之十一 您所在的位置:网站首页 麦考利久期计算公式例题 金融学习之十一

金融学习之十一

2023-10-24 12:58| 来源: 网络整理| 查看: 265

久期是指债券投资者收到债券所有现金流需要等待的平均时间,久期可以分为麦考利久期、修正久期和美元久期。麦考利久期是指收回收回债券投资现金流的加权平均时间,而为了反映债券价格对利率的变化,就出现了修正久期和美元久期,久期一般可以用于衡量债券价格对利率的敏感程度。 (一)麦考利久期 债券价格B与连续复利的到期收益率y之间的关系可以表示为: B= ∑ k = 1 n c i e − y t i \displaystyle \sum_{k=1}^n c_i e^{-yt_i} k=1∑n​ci​e−yti​ (1) 即债券价格等于所有未来将要支付的现金流现值之和。 麦考利久期D可以表达为: D= ∑ k = 1 n c i e − y t i ∗ t i \displaystyle \sum_{k=1}^n c_i e^{-yt_i} *t_i k=1∑n​ci​e−yti​∗ti​/B= ∑ k = 1 n t i ∗ ( c i e − y t i / B ) \displaystyle \sum_{k=1}^n t_i*(c_i e^{-yt_i}/B) k=1∑n​ti​∗(ci​e−yti​/B) (2) 其中 ( c i e − y t i / B ) (c_i e^{-yt_i}/B) (ci​e−yti​/B)是 t i t_i ti​时刻债券支付的现金流现值与债券价格的比率,也是时间 t i t_i ti​的权重。 例如:某债券剩余期限为4年,面值为100元,票面利率为2.95%,票息支付每年2次,到期收益率为3.8%(连续复利)。求该债券的麦考利久期。

#定义一个求麦考利久期的函数 def maikaoli(c,y,t): import numpy as np cashflow=[] weight=[] n=len(t) for i in np.arange(n): cashflow.append(c[i]*np.exp(-y*t[i])) for i in np.arange(n): weight.append(cashflow[i]/sum(cashflow)) maikaoli=np.sum(t*weight) return maikaoli #输入相关参数并计算 #c为票面利率 p为面值 by为到期收益率 c=0.0295 p=100 by=0.038 t=np.arange(1,9)/2 cashflow=np.ones_like(t)*c*0.5*p cashflow[-1]=p*(1+c*0.5) D=maikaoli(cashflow,by,t) print(round(D,4))

结果为3.7983,也可以利用前面介绍过的债券 针对式(2),若到期收益率y存在微小变化,则可以有 Δ \Delta ΔB=dB/dy Δ y \Delta y Δy =-BD Δ y \Delta y Δy 再次变化为: Δ \Delta Δ B/B=-D Δ y \Delta y Δy

(二)修正久期 麦考利久期有一个很重要的前提是债券的到期收益率y是连续复利。 若改为到期收益率y是每年复利1次,久期关系式就变为: Δ \Delta Δ B/B=-D Δ y \Delta y Δy/(1+y) 若是每年复利每次,则变为: Δ \Delta Δ B/B=-D Δ y \Delta y Δy/(1+y/m) 令D*=D/(1+y/m)则(2)式变为: Δ \Delta ΔB=-BD* Δ y \Delta y Δy,这里的D*就是修正久期。

沿用上例,设每年复利2次的债券到期收益率增加10个基点,计算该债券的修正久期。 复利m次与连续复利的收益率转换可以表示为: Rc=m*ln(1+Rm/m)

import numpy as np def maikaoli(c,y,m,t): cashflow=[] weight=[] n=len(t) Rc=m*np.log(1+y/m) for i in np.arange(n): cashflow.append(c[i]*np.exp(-Rc*t[i])) for i in np.arange(n): weight.append(cashflow[i]/sum(cashflow)) maikaoli=np.sum(t*weight) return maikaoli/(1+y/m) #c为票面利率 p为面值 by为到期收益率 c=0.0295 p=100 t=np.arange(1,9)/2 m=2 Rc=0.038 by=m*(np.exp(Rc/m)-1) cashflow=np.ones_like(t)*c*0.5*p cashflow[-1]=p*(1+c*0.5) D=maikaoli(cashflow,by,m,t) print(round(D,4))

可以得出,修正久期为3.7268 可以发现,当利率发生变化时,修正久期也进行了调整。

(三)美元久期 美元久期也称绝对额久期,是指债券价格与修正久期的乘积,可表示为: D s D_s Ds​=BD* 还是上面的例子,求该债券的美元久期。 首先计算出债券的价格:

def bond_value(c,M,t,m,y): import numpy as np cp=[] for i in np.arange(1,t*m+1): cp.append(np.exp(-y*i/m)*M*c/m) return np.sum(cp)+np.exp(-y*t)*M c=0.0295 M=100 t=4 m=2 y=0.038 bond_value(c,M,t,m,y)

得到96.7421 然后用这个结果去乘以修正久期

bond_value(c,M,t,m,y)*D

得到360.54



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有