计算债券零息利率通常采用票息剥离法。假设有下表:

券名 剩余期限(年) 票面利率 债券价格 本金
牛奔1号 0.25 0 99.42 100
牛奔2号 0.5 0 98.83 100
牛奔3号 1.0 2.77% 每年付息一次 100.09 100
牛奔4号 1.5 3.46% 半年付息一次 101.32 100
牛奔4号 2.0 2.53% 半年付息一次 99.39 100

计算这些债券的零息利率实际上就是在求解如下方程组中的r1—r5:
(1)99.42*er1*0.25=100
(2)98.83*er2*0.5=100
(3)100.09*er3*1=100*(1+0.0277)
(4)100*(0.50.0346*e-r2*0.5+ 0.5*0.0346*e-r3+(1+0.5*0.0346)*e-r4*1.5)=101.32
(5)100
(0.5*0.0253*e-r2*0.5+ 0.5*0.0253*e-r3+0.5*0.0253*e-r4*1.5+(1+0.5*0.0253)*e-r5*1.5)=99.39
于是接下来开始联立方程组,构建一个函数进行计算:

import numpy as np
def lxll(R):r1,r2,r3,r4,r5=R#各支债券价格p1,p2,p3,p4,p5=99.42,98.83,100.09,101.32,99.39#债券面值mz=100.0#票面利率c3,c4,c5=0.0277,0.0346,0.0253#联立等式b1=p1*np.exp(r1*0.25)-mzb2=p2*np.exp(r2*0.5)-mzb3=p3*np.exp(r3)-mz*(1+c3)b4=mz*(0.5*c4*np.exp(-r2*0.5)+0.5*c4*np.exp(-r3)+(1+0.5*c4)*np.exp(-r4*1.5))-p4b5=mz*(0.5*c5*np.exp(-r2*0.5)+0.5*c5*np.exp(-r3)+0.5*c5*np.exp(-r4*1.5)+(1+0.5*c5)*np.exp(-r5*2))-p5return np.array([b1,b2,b3,b4,b5])

方程组的解法使用optimize模块中的fsolve函数:

import scipy.optimize as sci
zt=sci.fsolve(lxll,[0.1,0.1,0.1,0.1,0.1])
for i in range(len(zt)):print(round(zt[i],6),end=' ')

于是就得到结果啦:
0.023268 0.023538 0.026424 0.025411 0.028313
对这些零息利率绘图:

plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
t=np.array([0.25,0.5,1.0,1.5,2.0])
from matplotlib import pyplot as plt
plt.figure(figsize=(10,8))
plt.plot(t,zt,'r-')#画线
plt.plot(t,zt,'rd')#画点
plt.xlabel(u'期限(年)',fontsize=13)
plt.xticks(fontsize=13)
plt.ylabel(u'零息利率',fontsize=13)
plt.yticks(fontsize=13)
plt.title(u'零息利率曲线',fontsize=13)
plt.grid('True')
plt.show()


但是在这个表中,我们发现还少了一些数据,比如:缺少0.75年、1.25年、1.75年的零息利率,如果要将它们算出来,可以采用我们在前面所用的插值法来处理:

import scipy.interpolate as si
func=si.interp1d(t,zt,kind='cubic')
t_new=np.array([0.25,0.5,0.75,1.0,1.25,1.5,1.75,2.0])
zt_new=func(t_new)
zt_new

求得结果为:
array([0.02326754, 0.02353797, 0.02515498, 0.0264237 , 0.02618357,
0.02541116, 0.02561735, 0.028313 ])
再次绘图:

plt.figure(figsize=(10,8))
plt.plot(t_new,zt_new,'r-')#画线
plt.plot(t_new,zt_new,'rd')#画点
plt.xlabel(u'期限(年)',fontsize=13)
plt.xticks(fontsize=13)
plt.ylabel(u'零息利率',fontsize=13)
plt.yticks(fontsize=13)
plt.title(u'零息利率曲线',fontsize=13)
plt.grid('True')
plt.show()

于是补足了之前缺少的数据

金融学习之九——票息剥离法求零息利率相关推荐

  1. 金融学习之十二——凸性

    今天讨论另外一个概念,叫做凸性.什么是凸性呢?凸性也称为凸度或曲率,是衡量债券价格对债券到期收益率变化的非线性关系的指标,是债券价格对收益率的二阶导数.\为什么需要讨论凸性呢,我们可以看下面的例子(这 ...

  2. 花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)

    目录 0. 前言 1. 牛顿法 2. 共轭梯度法(CG) 3. BFGS 4. L-BFGS 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(五)正则化 ...

  3. Maven学习总结(九)——使用Nexus搭建Maven私服

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要搭建nexus私服,原因很 ...

  4. IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...

    IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...

  5. 从零开始学习jQuery (九) jQuery工具函数

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  6. JavaScript学习总结(九)——Javascript面向(基于)对象编程

    转载自  JavaScript学习总结(九)--Javascript面向(基于)对象编程 一.澄清概念 1.JS中"基于对象=面向对象" 2.JS中没有类(Class),但是它取了 ...

  7. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者 http://www.admin10000.com/document/9 ...

  8. PyTorch框架学习十九——模型加载与保存

    PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...

  9. 吴恩达《机器学习》学习笔记九——神经网络相关(1)

    吴恩达<机器学习>学习笔记九--神经网络相关(1) 一. 非线性假设的问题 二. 神经网络相关知识 1.神经网络的大致历史 2.神经网络的表示 3.前向传播:向量化表示 三. 例子与直觉理 ...

最新文章

  1. c语言二重循环的盒图怎么画,全国计算机二级C语言程序设计讲义 循环嵌套.ppt...
  2. 2018全球最佳品牌Top25:时代巨变的一个缩影
  3. codevs 1047 邮票面值设计
  4. Memcached缓存实例
  5. 使用手机游戏的新闻推送
  6. Redis使用过程出现类型转换异常问题- 20190220
  7. docker pull php7,Docker pull php:7.1-fpm的php.ini配置修改
  8. Ubuntu16.04自动、手动安装MongoDB的详细教程
  9. geoserver 报错 HTTP ERROR: 503
  10. NFT平台Polkamon将于3月31日在Polkastarter进行IDO
  11. javascript调试
  12. hive order by sort by distribute by总结
  13. 联想启天电脑教室黑屏硬盘保护系统EDU8.0.2.19修复手记
  14. Android实现身份证号码验证
  15. Docker详细学习文档
  16. 疯狂java笔记(七) - Java集合之Map
  17. android设备连接电脑无需授权
  18. “景驰科技杯”2018年华南理工大学程序设计竞赛 C Youhane's Undergraduate Thesis (大模拟)
  19. 电脑输入密码后自动注销
  20. 现在做亚马逊,请一定多备几个店铺

热门文章

  1. 广西信息网-www.xxpt.net
  2. 匕首线切割图纸下载_真正的单身与匕首2
  3. Blender建模模块:匕首类模型的建模思路
  4. 什么是EGS报告?如何撰写ESG报告?
  5. 【程序员面试】我的求职之路:9个offer,12家公司,35场面试,最终谷歌
  6. 游戏联运平台到底靠不靠谱?
  7. java不确定人数扑克牌发牌技巧_汪峰被曝系德州扑克高手 善于计算发牌概率(图)...
  8. saliency detection论文(一)—Saliency Detection: A Spectral Residual Approach
  9. [学习笔记]操作系统(三)先到先得调度
  10. 小满nestjs(第二十章 nestjs 爬虫)