Matlab在《固定收益证券》课堂教学中的应用
The Application of MATLAB in the Classroom Teaching of Fixed Income Securities
DOI: 10.12677/AE.2020.104078, PDF, HTML, XML,  被引量 下载: 505  浏览: 814  国家自然科学基金支持
作者: 李师煜, 顾恺威, 陈军洋:江西理工大学理学院,江西 赣州
关键词: Matlab固定收益证券债券价格到期收益率Matlab Fixed Income Securities Bond Price Yield to Maturity
摘要: 固定收益证券是金融数学专业本科生的一门重要课程,债券价格与收益率的计算是该课程的重点和难点。但在教学过程中,偏重讲解理论,如何编程计算很少讲授,导致学生学习枯燥,编程能力差。本文介绍用Matlab软件计算债券的价格与到期收益率,教会学生编程解决计算问题,激起学生的学习兴趣,切实提高学生的编程能力。
Abstract: Fixed income securities are an important course for undergraduates majoring in financial mathematics. The calculation of bond price and yield is the key and difficulty of the course. However, in the teaching process, the emphasis is placed on explaining the theory, and how to program and calculate is rarely taught, which leads to students’ boring learning and poor programming ability. This paper introduces how to use MATLAB software to calculate the bond price and yield to maturity, teaches students how to program to solve calculation problems, arouses students' interest in learning and improves their programming ability.
文章引用:李师煜, 顾恺威, 陈军洋. Matlab在《固定收益证券》课堂教学中的应用[J]. 教育进展, 2020, 10(4): 464-467. https://doi.org/10.12677/AE.2020.104078

1. 计算公式

1.1. 债券价格计算 [3]

1) 一次还本付息债券的定价公式

V = P ( 1 + r c ) T ( 1 + r ) T (1)

其中,P为债券面值,V为债券价格,r为到期收益率, r c 为票面利率,T是债券期限。

2) 附息债券的定价公式

V = t = 1 n T P r c n ( 1 + r n ) t + P ( 1 + r n ) n T (2)

其中,P为债券面值,V为债券价格,r为到期收益率, r c 为票面利率,T是债券期限(以年为单位),n为年付息次数。

1.2. 到期收益率计算 [4]

到期收益率是指使得债券未来现金流的现值正好等于债券当前的市场价格的贴现率 [1]。到期收益率考虑了货币的时间价值,是按复利计算的收益率,能够较好地反映债券的实际收益。

1) 零息债券的到期收益率

零息债券只有到期时得到面值,中间不支付利息,到期收益率计算公式为:

V = P ( 1 + r Y ) T (3)

式中,P和V分别为债券面值和债券的市场价格,T是距离到期日的年数, r Y 是到期收益率。

2) 附息债券的到期收益率

在付息日购买的债券的到期收益率计算公式为:

V = t = 1 n T P r c n ( 1 + r Y n ) t + P ( 1 + r Y n ) n T (4)

上式也适用n = 1,即每年支付一次利息的情形。

2. Matlab计算

2.1. 债券价格计算

Matlab的Financial Toolbox提供了计算债券价格的bndprice函数,该函数既可用于计算付息日交割的债券价格,也适用于计算两个付息日之间交割的债券价格 [5] [6] [7] [8]。

[例1]债券A:面值为100,票面利率5%,到期收益率为4%,年付息2次,交割日为2019年6月1日,到期日为2021年6月1日。

债券B:面值为100,票面利率4%,到期收益率为4%,年付息2次,交割日为2019年3月1日,到期日为2021年6月1日。

债券C:面值为100,票面利率5%,到期收益率为4%,年付息2次,交割日为2021年3月1日,到期日为2021年6月1日。

分别求债券A、B和C的净价和应计利息。

解:债券A交割日在付息日,债券B交割日在多于1个付息期的两次付息日之间,债券C交割日在不足1个付息期的两次付息日之间。

在 MatlabR2016a 运行环境下,输入计算代码如下:

Yield=0.04;

CouponRate=0.05;

Settle_A='01-Jun-2019'; Settle_B='01-Mar-2019'; Settle_C='01-Mar-2021';

Maturity='01-Jun-2021';

[Price_A,Accured_A]=bndprice(Yield,CouponRate,Settle_A, Maturity);

[Price_B,Accured_B]=bndprice(Yield,CouponRate,Settle_B, Maturity);

[Price_C,Accured_C]=bndprice(Yield,CouponRate,Settle_C, Maturity);

Price=[Price_A;Price_B;Price_C]

Accured=[Accured_A;Accured_B;Accured_C]

计算结果如下:

Price = [101.9039, 102.1277, 100.2428];

Accured =[ 0, 1.2363, 1.2363].

2.2. 到期收益率计算

Matlab的Financial Toolbox提供了债券到期收益率的计算函数bndyield。该函数既可用于在付息日交割的债券到期收益率计算,也适用于在两个付息日之间交割的债券到期收益率计算 [9] [10] [11] [12]。

[例2]债券A:面值为100元,票面利率为6%,每年付息两次(6月底和12月底),交割日为2017年12月31日,到期日为2022年 6月30日,净价为106.81元。

债券B:面值为100元,票面利率为6%,每年付息两次(6月底和12月底),交割日为2018年12月31日,到期日为2022年6月30日,净价为97.43元。

债券C:面值为100元,票面利率为6%,每年付息两次(6月底和12月底),交割日为2019年1月20日,到期日为2022年6月30日,净价为100.99元。

分别求债券 A、B和C的到期收益率。

解:在MatlabR2016a环境下,输入计算代码如下:

CouponRate=0.06;

Price_A=106.81;Price_B=97.43;Price_C=100.99;

Settle_A='31-Dec-2017'; Settle_B ='20-Jan-2018';Settle_C ='20-Jan-2019 ';

Maturity='30-Jun-2022';

Yield_A=bndyield(Price_A,CouponRate,Settle_A, Maturity)

Yield_B=bndyield(Price_B,CouponRate,Settle_B, Maturity)

Yield_C=bndyield(Price_C,CouponRate,Settle_C , Maturity)

可得计算结果如下:

Yield_A =0.0432;Yield_B =0.0668;Yield_C =0.0568.

3. 结语

固定收益证券这门课知识点较多,计算公式多而复杂,很多计算是无法用笔能完成的,因此需要学生熟悉计算软件,具备一定的编程能力。这就要求授课教师不能光讲理论,必须教授学生如何编程解决具体的计算问题,提高学生的实践动手能力,有利于学生毕业时找工作。

基金项目

国家自然科学基金项目(11561028,11801238),江西理工大学本科教学工程项目(XZG-16-01-05);江西理工大学大学生创新创业训练计划项目(DC2018-072)。

参考文献

[1] 胡志飞. 固定收益证券课程教学改革研究[J]. 知识经济, 2019(30): 134, 136.
[2] 詹筱霞. 构建基于企业债券市场化的中国企业债券信用评级制度[J]. 江西理工大学学报, 2007, 28(2): 70-73.
[3] 类承曜. 固定收益证券[M]. 第四版. 北京: 中国人民大学出版社, 2016.
[4] 郑志勇, 王洪武. 金融数量分析——基于 MATLAB编程[M]. 北京: 北京航空航天出版社, 2018.
[5] 张师贤, 梁艳. 一种二元线性码译码算法的Matlab实现[J]. 江西理工大学学报, 2009, 30(5): 74-76.
[6] 陈亮, 邬长福, 黄亮, 陈祖云. IFAHP评价法的MATLAB程序设计及应用[J]. 江西理工大学学报, 2016, 37(1): 105-110.
[7] 兰红, 田进, 李淑芝, 刘立辉. 基于Matlab_GUI的图像处理平台设计[J]. 江西理工大学学报, 2014, 35(3): 70-84.
[8] 鄢化彪, 邓志娟, 黄绿娥. 基于RTLinux和MATLAB_RTW的实时仿真系统开发[J]. 江西理工大学学报, 2006, 27(6): 32-34.
[9] 刘静, 丁凌蓉. 基于Matlab的低矮式破碎机V带传动模糊优化设计[J]. 江西理工大学学报, 2009, 30(2): 24-27.
[10] 张志涌, 杨祖樱. Matlab教程[M]. 北京: 北京航空航天大学出版社, 2017.
[11] 刘鹏远, 骆升平. Matlab基于小波变换的图形图像处理[J]. 江西理工大学学报, 2011, 32(1): 66-68.
[12] 王健. 基于免疫算法的聚类分析与实现[J]. 江西理工大学学报, 2009, 30(2): 24-27.