(二十)久期与凸性

久期的定义与表达式

在这里插入图片描述在这里插入图片描述
  一年付息m次的债券计算久期,公式中期数乘以m,息票率c和收益率y除以m,得到的结果除以m即可。
  例1:面值100,息票率为8%的三年期债券,半年付息一次,到期收益率为10%,求该债券的麦考利久期、修正久期和美元久期:

import pandas as pd
def macD(c,y,F,t):
	p=sum(c*F/(1+y)**t)+F/(1+y)**len(t)
	a=sum(c*F*t/(1+y)**t)+F*len(t)/(1+y)**len(t)
	return a/p
t=pd.Series([1,2,3,4,5,6])
macD(0.04,0.05,100,t)
Out[1]: 5.43489852580703
def MD(c,y,F,t):
	return macD(c,y,F,t)/(1+y)
MD(0.04,0.05,100,t)
Out[2]: 5.176093834101933
def DD(c,y,F,t):
	return MD(c,y,F,t)*(sum(c*F/(1+y)**t)+F/(1+y)**len(t))
DD(0.04,0.05,100,t)
Out[3]: 491.33712499701005
#注意上述三个久期单位都是半年,除以2得到以年为单位的久期

  例2:求例1中债券到期收益率变化10个基点下的有效久期:

def ED(c,y,F,t,per):
	p0=sum(c*F/(1+y)**t)+F/(1+y)**len(t)
	p1=sum(c*F/(1+y+per)**t)+F/(1+y+per)**len(t)
	p2=sum(c*F/(1+y-per)**t)+F/(1+y-per)**len(t)
	return (p2-p1)/(2*p0*per)#分母一定要加括号
ED(0.04,0.05,100,t,0.0005)#每一期收益率变化5个基点
Out[4]: 5.176104241061871#半年

  对于资产组合久期的计算,对组合中所有资产的久期求加权平均即可,权重是各种资产的市场价格(面值)占资产总价值的比重,在此不再赘述。

凸性的定义与表达式

在这里插入图片描述
  例3:面值100,息票率为8%的三年期债券,半年付息一次,到期收益率为10%,求该债券的凸性,以及到期收益率增加100个基点时债券价格的变化百分比:

def C(c,y,F,t):
	p=sum(c*F/(1+y)**t)+F/(1+y)**len(t)
	a=sum(c*F*(t**2+t)/(1+y)**t)+F*(len(t)**2+len(t))/(1+y)**len(t)
	return a/(p*(1+y)**2)
t=pd.Series([1,2,3,4,5,6])
C(0.04,0.05,100,t)/4#转换为年凸性
Out[5]: 8.337374824752287
def perchange(c,y,F,t,per):
	return -MD(c,y,F,t)/2*per+(0.5*C(c,y,F,t)/4)*per**2
perchange(0.04,0.05,100,t,0.01)
Out[6]: -0.02546360042927205#收益率每增长1%,债券价格下降2.55%
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值