2. 债券定价与收益率:现金流贴现、到期收益率、即期利率与远期利率
债券定价,说白了就是回答一个问题:这张债券到底值多少钱?
我刚开始做固收那会儿,总觉得定价就是套公式。后来在2013年钱荒那阵子,市场利率一天跳几十个BP,我才真正意识到——定价模型里的每一个参数,背后都是真金白银的博弈。
这一章,我们就把债券定价的几块基石掰开揉碎讲清楚。
2.1 现金流贴现:一切定价的起点
债券的本质是什么?是一系列未来现金流的承诺。你借钱给发行人,他承诺在未来某个时间点还本付息。
所以债券的价格,就是把这些未来的现金流,用合适的折现率,全部折算到今天。
核心公式:
P = Σ [CFt / (1 + rt)t]
其中:P = 债券价格,CFt = 第t期的现金流,rt = 第t期的折现率
举个例子。一张3年期债券,面值100元,票面利率5%,每年付息一次。
它的现金流长这样:
| 年份 | 现金流 |
|---|---|
| 第1年 | 5元(利息) |
| 第2年 | 5元(利息) |
| 第3年 | 105元(利息+本金) |
假设市场要求的折现率是4%,那么价格就是:
P = 5/(1.04) + 5/(1.04)² + 105/(1.04)³
= 4.81 + 4.62 + 93.32
= 102.75元
你看,当票面利率(5%)高于市场利率(4%)时,债券就溢价交易。反过来就是折价。这个逻辑,我在做利率债交易时每天都要过一遍。
实战小技巧:
我个人习惯用Excel的NPV函数快速验算。但要注意,Excel的NPV默认第一期是t=1,别搞混了。
2.2 到期收益率:债券的"内部回报率"
到期收益率(YTM),是债券市场最常用的收益率指标。
它的定义很简单:使债券未来现金流现值等于当前市场价格的折现率。
说白了,YTM就是你买入债券并持有到期的年化回报率。前提是——所有现金流都能按时拿到,并且你拿到的利息也能按YTM再投资。
嗯,这里要注意。YTM有两个隐含假设:
- 持有至到期——中途不卖
- 利息再投资收益率等于YTM——这个假设在现实中很难满足
我曾经在2016年做过一个回测:如果利息再投资收益率比YTM低1%,实际回报率会差多少?结果发现,对于10年期国债,差距能达到0.3%-0.5%每年。所以别把YTM当成实际回报的保证。
计算YTM没有解析解,只能用试错法或数值方法。比如刚才的例子,如果市场价格是102.75元,那么YTM就是4%。
# Python示例:用牛顿法求YTM
def ytm_calculator(price, coupon, maturity, face=100):
# 简化版,实际要考虑付息频率
def bond_price(ytm):
cf = [coupon] * (maturity - 1) + [coupon + face]
return sum([c / (1 + ytm)**(t+1) for t, c in enumerate(cf)])
# 牛顿迭代
ytm = 0.05 # 初始猜测
for _ in range(100):
f = bond_price(ytm) - price
# 导数近似
df = (bond_price(ytm + 1e-6) - bond_price(ytm - 1e-6)) / 2e-6
ytm -= f / df
if abs(f) < 1e-8:
break
return ytm
避坑指南:
我曾经在计算含权债券的YTM时吃过亏。对于可赎回债券,YTM可能严重高估实际回报。因为发行人会在利率下行时提前赎回,你根本拿不到那么高的收益。
2.3 即期利率:不同期限的"真实"折现率
YTM假设所有现金流都用同一个折现率,这显然不合理。你想想看,1年后的5块钱和3年后的105块钱,风险能一样吗?
即期利率(Spot Rate)就是解决这个问题的。它是指从现在开始,到未来某个时点到期的零息债券的年化收益率。
用即期利率给债券定价,公式变成:
P = CF₁/(1+s₁) + CF₂/(1+s₂)² + ... + CFₙ/(1+sₙ)ⁿ
其中s₁, s₂, ..., sₙ就是不同期限的即期利率。
怎么得到即期利率?最经典的方法是Bootstrapping(剥离法)。从短期国债开始,一步步剥离出各期限的即期利率。
Bootstrapping核心思路:
- 用1年期国债的YTM作为s₁
- 用2年期国债的价格和s₁,反推出s₂
- 以此类推,逐层剥离
我在做利率曲线建模时,Bootstrapping是每天开盘前的必修课。市场波动大的时候,即期利率曲线和YTM曲线能差出5-10个BP,这对组合估值的影响可不小。
2.4 远期利率:锁定未来的"时间机器"
远期利率(Forward Rate),是未来某个时间点开始的、一定期限的利率。
比如"1年后的1年期利率",记作f(1,2)。它告诉你:如果你现在签一个合约,约定1年后借入1年期资金,利率是多少。
远期利率和即期利率之间,存在一个无套利关系:
(1+s₂)² = (1+s₁) × (1+f(1,2))
所以:f(1,2) = (1+s₂)²/(1+s₁) - 1
这个公式背后的逻辑很简单:投资2年期的收益,应该等于先投1年期、再续投1年期的收益。否则就有套利空间。
我记得2019年做利率互换交易时,就是靠这个逻辑来定价IRS的。市场上一旦出现偏离,我们就会快速捕捉。
实战应用:
远期利率曲线是判断市场利率预期的利器。如果远期利率明显高于即期利率,说明市场预期未来利率会上升。反之亦然。
2.5 知识体系总览
下面这张图,把这一章的核心逻辑串起来了:
这张图把四个概念串成了一条线。你从现金流贴现出发,理解YTM是统一折现率,然后拆解成即期利率,再推导出远期利率。每一步都有它的实际用途。
我个人建议,刚入行的朋友先把现金流贴现和YTM吃透。这两个是日常交易中最常用的。即期利率和远期利率,在做利率曲线交易和衍生品定价时才会频繁用到。
好了,这一章就到这里。记住一句话:债券定价的核心,就是找到正确的折现率。剩下的,都是技术细节。