付息/零息债券的定价——基于单一贴现率

  一般复利下,债券价格P = ΣCt/(1+y)t+F/(1+y)T;连续复利下,P = ΣCte-yt+Fe-yT,Ct是第t期支付的现金流,F为债券面值,y为贴现率。
  例1:一新发行的3年期债券面值1000元,票面利率10%,每半年付息,贴现率10%,求债券价格:

def bp(ct,F,y,t):a=ct/(1+y)**tb=F/(1+y)**len(t)return sum(a,b)
import pandas as pd
y=0.1/2;F=1000;ct=1000*0.1*0.5
t=pd.Series([1,2,3,4,5,6])
bp(ct,F,y,t)
Out[1]: 999.9999999999998#平值债券

  例2:一个8年期的零息债券面值1000元,每半年付息,市场年利率8%,求债券价格:

def bp0(F,y,t):b=F/(1+y)**treturn b
y=0.08/2;F=1000;t=8*2
bp0(F,y,t)
Out[2]: 533.9081756858412

  例3:“08国开11”债券的面值为100元,期限20年,票面利率5.25%,每半年付息。假定该债券剩余期限10年,贴现率为4.2%(连续复利),求债券今天的价格:

import numpy as np
def bondp(F,r,y,t):#r,y,t均为每一期对应数据a=F*r*np.exp(-y*t)b=F*np.exp(-y*len(t))return sum(a,b)
t=pd.Series(range(1,21))
bondp(100,0.0525/2,0.042/2,t)
Out[3]: 108.12527888522294

付息债券的定价——基于不同期限贴现率

息票剥离法计算零息利率

  例4:在国内债券市场,期限在1年以内(不含1年)的短期国债是不带票息的零息债券。根据下表不同期限国债(面值均为100)的信息计算各期限的零息利率(连续复利):

序号 剩余期限 票面利率 债券价格
1 0.25 0 99.42元
2 0.5 0 98.83元
3 1 2.77%(每年付息) 100.09元
4 1.5 3.46%(半年付息) 101.32元
5 2 2.53%(半年付息) 99.39元
from scipy import optimize
def f(r):r1,r2,r3,r4,r5=rp1,p2,p3,p4,p5=99.42,98.83,100.09,101.32,99.39c3,c4,c5=0.0277,0.0346/2,0.0253/2#注意半年付息的要除以2b1=100*np.exp(-r1*0.25)-p1b2=100*np.exp(-r2*0.5)-p2b3=100*(1+c3)*np.exp(-r3*1)-p3b4=100*(1+c4)*np.exp(-r4*1.5)+c4*100*np.exp(-r3*1)\+c4*100*np.exp(-r2*0.5)-p4b5=100*(1+c5)*np.exp(-r5*2)+c5*100*np.exp(-r4*1.5)\+c5*100*np.exp(-r3*1)+c5*100*np.exp(-r2*0.5)-p5return [b1,b2,b3,b4,b5]
zerorates=optimize.fsolve(f,[0.1,0.1,0.1,0.1,0.1])
zerorates#分别对应0.25,0.5,1,1.5,2年的零息利率
Out[4]: array([0.02326754, 0.02353797, 0.0264237, 0.02541116, 0.028313])

基于不同期限的零息利率给债券定价

  不同期限的贴现率不一样,即y也作为一个数组输入,需要用append函数。
  例5:有一个剩余期限为1.5年的债券,面值为100元,票面利率3.46%,每半年付息。0.5年、1年、1.5年的零息利率分别为4.7076%,5.2848%,5.0822%(连续复利),求债券今天的价格:

def bond_value(y,t,r,F):cashflow=[]for i in range(len(t)):a=F*r*np.exp(-y[i]*t[i])cashflow.append(a)b=F*np.exp(-y[len(t)-1]*t[len(t)-1])return sum(cashflow)+b
y=pd.Series([0.047076,0.052848,0.050822])*0.5
t=pd.Series([0.5,1,1.5])
bond_value(y,t,0.0346/2,100)
Out[5]: 101.32002263990809

  有时我们能够算出的零息利率期限间隔不一样,比如例4中没有0.75年、1.25年、1.75年的债券数据,这时我们就要进行插值处理:

t=np.array([0.25,0.5,1,1.5,2])
T=np.array([0.25,0.5,0.75,1,1.25,1.5,1.75,2])
from scipy.interpolate import interp1d
f=interp1d(t,zerorates,kind='quadratic')
f(T)
Out[6]:
array([0.02326754, 0.02353797, 0.02509468, 0.0264237 , 0.02601105,0.02541116, 0.02617848, 0.028313  ])

计算债券到期收益率(YTM)

  例6:有一个剩余期限为5年的债券,面值为100元,票面利率5%,每半年付息。假设该债券的市场价格为98元,求债券的YTM:

from scipy import optimize
def YTM(F,r,t,P):def f(y):#把要求解的方程写出来cashflow=[]for i in range(len(t)):a=F*r*np.exp(-y*t[i])cashflow.append(a)b=F*np.exp(-y*t[len(t)-1])return sum(cashflow)+b-P#此处返回一个等于零的式子return optimize.fsolve(f,0.1)#f是要求解的函数,0.1是猜测解
t=pd.Series(np.linspace(0.5,5,10))
YTM(100,0.025,t,98)
Out[7]: array([0.05389247])

  YTM的检查:当债券票面利率c>YTM时,投资人可以获得更多的收益,所以发行方会多收一部分钱,溢价发行;反之债券票面利率c<YTM时,发行方会折价发行来补偿投资者。

(十九)债券定价与债券收益率的计算相关推荐

  1. TensorFlow学习笔记(十九) 基本算术运算和Reduction归约计算

    基本运算,变量由tf.constant函数转化为1阶张量.然后计算:现在用tf.reduce_prod()和tf.reduce_sum()函数重新定义,当给定某个tensor张量作为输入时,这些函数会 ...

  2. java 根据经纬度计算多边形的面积_强基初中数学amp;学Python——第二十九课 根据海伦秦九韶公式编程计算三角形面积...

    问题:如果把边长都是有理数的三角形称作"有理三角形",编程计算"有理三角形"的面积(有理数或带根号的无理数,不是浮点数). 关键点分析:根号中的底化成最简分数, ...

  3. 高等数学学习笔记——第七十九讲——柱坐标下三重积分的计算

    一. 问题的引入--在直角坐标系下,某些三重积分的计算并不方便,如宇宙飞船体积的计算 图略 二. 空间上点的柱坐标表示 1. 柱坐标 2. 直角坐标与柱坐标的关系 3. 柱坐标系中的坐标面 三. 柱坐 ...

  4. 债券定价与收益率 - 财务管理(六)

    1. 债券市场 face value 面值:债券到期日支付金额(本金/票面价值) coupon 息票:支付的利息 coupon rate 票面利率:fixed,不能作为折现利率 interest ra ...

  5. 腾讯为60亿美元债券定价 为1年来亚洲最大美元债发行交易

    [TechWeb]4月6日消息,据国外媒体报道,腾讯日前表示,已为即将发行的60亿美元债券定价,这是1年来亚洲最大美元债发行交易. 腾讯 腾讯表示,已与经办人就根据计划发行本金总额60亿美元的债券订立 ...

  6. 债券价格和到期收益率的关系_债券价格与到期收益率之间的关系.PPT

    债券价格与到期收益率之间的关系 可转换债券首先表现出债性特征.类似于普通债券,可转换债券的债权价值反映在票面利率与本金的偿付方面.由于受到<可转换债券管理暂行办法>的限制,已发行转债的票面 ...

  7. 债券价格和到期收益率的关系_债券价格、到期收益率与票面利率之间的关系是什么?...

    债券价格.到期收益率与票面利率之间的关系是什么?我们来介绍一下. 票面利率固定的债券通常每年或每半年付息一次. 企业债券必须载明债券的票面利率.票面利率的高低在某种程度上不仅表明了企业债券发行人的经济 ...

  8. 债券价格和到期收益率的关系_2017年《证券投资基金》基础知识:当期收益率、到期收益率与债券价格之间的关系...

    基金从业考试时间一天天的接近,大家现在备考的怎么样了?为了帮助大家高效备考,东奥小编每天为大家提供<证券基金基础>知识点:当期收益率.到期收益率与债券价格之间的关系,希望大家认真学习,帮助 ...

  9. 债券价格和到期收益率的关系_[债券知识]什么是到期收益率?到期收益率与债券价格的关系 - 南方财富网...

    什么是到期收益率?到期收益率与债券价格的关系 在投资市场上,有许多的专业术语需要投资者进行学习,对于债券基本知识,也需要我们去了解,比如什么是到期收益率?债券价格与到期收益率有什么关系?以下就是对这些 ...

  10. 第十九章 蚂蚁靠什么绊倒大象

    第十九章 蚂蚁靠什么绊倒大象 作者:成君忆 第十九章蚂蚁靠什么绊倒大象 郭嘉言于太祖日:"备有雄志而甚得众心.关侯.张飞皆万人之敌也,为之死用.以嘉观之,其谋未可测也.古人有言日,一日纵敌, ...

最新文章

  1. TVM在ARM GPU上优化移动深度学习
  2. 使用容器的概念理解多维数组和多维空间
  3. CentOS 6.5升级Python后yum不可用的解决方案
  4. 华为自研搜索引擎曝光:「花瓣」虽小,但要替代谷歌
  5. linux内核层是什么,从用户层到内核层 - Linux内核中的信号机制_Linux编程_Linux公社-Linux系统门户网站...
  6. Linux环境进程间通信 信号量
  7. 解决“A problem has been encountered while loading the setup components. Canceling setup.”的问题...
  8. java 双循环是如何执行的_java – 双循环赛
  9. 23 岁创业,28 岁成为福布斯亚洲青年领袖,这个“刷脸的男人”有点牛
  10. 时至 2018 年,还有必要学 Vim 吗?
  11. mysql中加号变成空格了_从数据库中读取字符串时其中的空格变成加号
  12. java 计算经度纬度之间的距离
  13. 我是这样看搜狗搜索与知乎合作的
  14. 湖北性能优良戴尔服务器,超高密度的1U机架 戴尔R630服务器评测
  15. Java视频教程(最适合Java初学者的经典入门视频)_讲 师:张孝祥
  16. 远程桌面无法连接到远程计算机,因为从远程计算机接受的身份验证证书,仅允许运行使用网络级别身份验证的远程桌面计算机连接失败处理方法(远程桌面连接)...
  17. freemarker的<#macro>标签理解
  18. 在线中文摩尔斯密码加密解密工具
  19. overflow深入
  20. 基于内容的推荐(ACM暑校-案例学习)

热门文章

  1. 30年历史回顾,Jeff Dean:我们整理了一份「稀疏专家模型」研究综述
  2. ASDL、以太网、光钎的关系与区别
  3. react:customize-cra修改webpack配置
  4. SEO网站收录情况分析查询方法(小技巧Tips)
  5. 学计算机推荐电脑,计算机专业笔记本电脑推荐
  6. 致远OA表单自定义函数(明细表去重拼接)
  7. vue鼠标经过效果实现
  8. 编译报错R_ARM_THM_MOVW_ABS_NC against `a local symbol
  9. Python.translate(table).maketrans(‘str1‘,‘str2‘)字符串翻译
  10. java生成压缩文件拒绝访问,FileOutputStream访问被拒绝:JAVA