用Excel计算国债到期收益率
国债作为一种重要的投资品种日益受到人们的关注。要进行国债的买卖必须先计算到期收益率,国债到期收益率的计算力求精确,尤其是附息国债的收益率计算涉及到幂的计算,十分繁杂,用手工算法来求可谓事倍功半,目前市场上还没有成熟的专业国债分析软件来实现这一功能。这里向你介绍一种利用Microsoft 的Excel5.0来计算国债到期收益率的方法。需要注意的是,Excel一般只计算复利收益率。
Excel的函数精灵fx 提供了一组实现特定任务的函数,它们与计算和分析各种债券的收益率有关。所有这些函数都是“分析工具库”嵌入宏的一部分。如果你打开函数精灵后未找到这些函数,则可能是由于你没有安装“分析工具库”嵌入宏。要安装这个嵌入宏很简单,只要从“工具”菜单下选择“加载宏”命令,再从“加载宏”列表框中选择“分析工具库”,单击确定即可。如果“分析工具库”未列在“加载宏”列表框中,则必须再次运行Excel安装程序以便加入“工具库”模块。下面对具体算法的实现进行举例说明。
1.用YIELDDISC函数直接计算贴现国债的年收益率
它的使用格式为:=YIDELDDISC(债券结算日,债券到期日,债券价格,兑付价格,债券日期计算基本类型)
债券日期计算基本类型:
0——美国30/360基准,为缺省值;
1——实际日期/实际日期;
2——实际日期/360;
3——实际日期/365;
4——欧洲30/360基准。
例1:1997年8月1日9701国债(二年期贴现式,1997年1月22日发行)在上海证券交易所的收盘价是88.30元,用Excel求当日该券复利收益率。
解:进入Excel,打开一新工作表,在新工作表的任一单元格中键入:
=YIELDDISC(datevalue(“97/08/01”),datevalue(“99/01/22”),88.3,100,0)
按回车后,该单元格中即显示出所要求的结果为:8.983%。
2.用POWER函数间接求零息国债的年收益率
零息国债的复利率收益率公式为:如^453401a^
我们用Excel中的POWER函数可以求出^453401b^,再减去1,就得到了零息国债的年收益率。POWER函数的功能是用指定的幂指数对一个数进行求幂,它的格式为:
=POWER(底数,指数)
如:POWER(4,2)=4(2)=16
因此,用Excel计算零息国债年收益率的公式为:Y=POWER(F/V,1/T)-1 。
例2:1997年7月10日上海证券交易所796国债的收盘价是109.53元,已知该国债票面利率10.96%,三年期,1999年8月6日到期。试用Excel求当日该券的复利率收益率。
解:进入Excel,打开一新工作表,在新工作表的任一单元格中键入:
=POWER(100(10.96%*3+1)/109.53,1/757/365)-1
按回车后,该单元格中即显示出所要求的结果为:9.66% 。
3.用POWER函数间接求附息国债年收益率
附息国债的计算公式是如^453401c^
将上式两边都乘以(1+Y),则得到如^453401d^
将两式相减,则有如^453401e^
式中:P——附息国债价格;
I——每年利息;
M——到期本金;
Y——到期收益率;
n——附息国债到期年数取整;
h——从现在到下一次付息不满一年的时期。
先估计一个Y,利用POWER函数算出^453401f^和^453401g^,然后计算出预测的P值,与实际的P值相比较,如果预测值>实际值,则下次再用一较大的Y值代入;如果预测值<实际值,说明假设的Y太大,下次用一较小的Y值代入。这样用“试误法”,不断地用估计的Y值代入,直到得出的P值与实际的P值相等为止。
例3:1997年7月8日上海证券交易所的696国债收盘价110.58元,896国债的收盘价96.91元,试用POWER函数计算两个附息债的到期收益率。
解:696国债1996年6月14日发行,票面利息率11.83%,十年期,1996年7月8日至2006年6月14日共3263天,折合为8.9397年。(如^453401h^)
用试算法得出:Y≈10.11%。
896国债1996年11月1日发行,票面利息率8.56% ,七年期,1996年7月8日至2003年11月1日还有2307天,折合为6.3205年。(如^453401i^)
用试算法得出:Y≈10.52%。
可见896国债比696国债明显具有投资价值。
4.用PRICE函数间接求附息国债收益率
在净价交易法下(如美国),求附息国债年收益率可以直接用Excel中的YIELD函数算出,YIELD的格式是:
=(债券结算日,债券到期日,债券票面利率,每100元票面的债券价格,债券兑付价格,每年利息偿还次数,债券的日计数基准)
全价交易法下,在付息日当天,作为一种特殊情况,全价交易法下的价值公式与净价交易法下的一致,可以用YIELD函数计算这天的全价法下附息国债收益率。
例4:1997年6月12日是696国债的债权登记日,它在上海证券交易所的收盘价是121.90元。按照这个价格该券第二个付息年限的第一个交易日(因周末闭市推迟为6月16日)的开盘价是110.07元,但实际上当日收盘价为109.66元,求1997年的付息日696以收盘价计算的到期收益率。
解:因为1997年6月16日是付息日,所以全价交易的696国债也可以用YIELD求其收益率:进入Excel,打开一新工作表;在新工作表的任一单元格中键入:
=YIELD(datevalue(“97/6/16”), datevalue (“2006/06/14”),0.1183,109.66,100,1,0)按回车后,该单元格中即显示出所要求的结果为:10.14% 。
但是一年365天中只有一天是付息日,还有200多个交易日我们不能用YIELD函数来计算目前全价交易法下的附息国债价格,只好绕个弯子,用PRICE函数间接算得它们的收益率。PRICE函数是净价交易法下计算附息国债价格的函数,它的格式是:
=PRICE(债券结算日,债券到期日,票面利率,到期收益率,债券兑付价,每年利息的偿还次数,债券的日计数基准)
它的计算公式如^453401j^:
[]中的式子其实就是全价交易法下的价格P全,则
P净=P全-I×(1-h)=PRICE(…)
I×(1-h)是从上次付息日到交易日的利息,可以算出。那么我们再次运用试误法,用估计的Y值代入,直到算出的P值与实际值一致为止。
例5:条件同例2,要求用PRICE间接求出696国债和896国债的到期收益率。
解:(1)696国债在7月8日的净价是
P净=110.58-118.83×(1-0.9397)=109.867
P净=PRICE(datevalue(“97/07/08”),
datevalue(“2006/06/14”),0.1183,Y,100,1,0)
用“试误法”不断地用估计的Y(收益率)值代入,最后得出Y≈10.11% 。
(2)896国债在7月8日的净价是
P净=96.91-8.56×(1-0.3205)=91.094
P净=PRICE(datevalue(“97/07/08”),
datevalue(“2003/11/01”),0.0856,Y,100,1,0)
用“试误法”得出:Y≈10.52% 。
相比之下,还是用PRICE函数来求附息国债的到期收益率更简单些。