第二章:债券基础与定价模型

做固收量化这些年,我最大的感受是:债券看着简单,其实门道很深。股票你盯着K线图,顶多亏个本金。债券呢?利率波动、信用风险、久期管理,哪个没处理好都可能翻车。今天咱们就从最基础的开始聊。

2.1 债券的基本要素

债券说白了就是一张借条。发行人找你借钱,约定好什么时候还、利息怎么给。我刚开始做债券交易时,老觉得这东西比股票简单多了——后来发现,简单的东西往往最容易出问题。

一张标准债券,通常包含这几个要素:

  • 面值(Face Value):到期时发行人还你的钱。国内通常是100元。
  • 票面利率(Coupon Rate):每年给你的利息比例。比如3%的票息,面值100元,每年给你3块。
  • 付息频率(Coupon Frequency):一年付几次。国内大部分债券一年付一次,也有半年付的。
  • 到期日(Maturity Date):还本付息的日子。
  • 发行价格(Issue Price):你买的时候花了多少钱。可能高于面值(溢价),也可能低于面值(折价)。

一个容易踩的坑: 我曾经以为票面利率越高越好。后来发现,高票息往往意味着高风险。你想想看,一个企业如果经营状况很好,为什么要给你8%的利息?银行理财才3%啊。

2.2 到期收益率(YTM)

到期收益率,简称YTM。这是债券定价里最核心的概念之一。它衡量的是:你买入债券后一直持有到期,每年的平均回报率是多少。

公式长这样:

P = Σ [C / (1 + YTM)^t] + F / (1 + YTM)^n

其中:

  • P = 当前价格
  • C = 每期票息
  • F = 面值
  • n = 剩余期数
  • t = 第t期

这个公式看着复杂,其实逻辑很简单:把未来的所有现金流(票息+本金)折现到现在,加起来等于当前价格。那个折现率就是YTM。

我的经验: 实际工作中没人手算YTM。Excel里用IRR函数,Python里用numpy.irr或者scipy.optimize。但我建议你至少手动算一次,理解背后的逻辑。不然哪天系统出bug,你都不知道结果对不对。

2.3 久期与凸性

久期(Duration)和凸性(Convexity),这两个概念我当年学的时候觉得特别抽象。后来做回测系统时才发现,它们就是债券的「风险度量尺」。

2.3.1 久期

久期衡量的是债券价格对利率变化的敏感度。说白了就是:利率每变动1%,债券价格大概变动多少。

麦考利久期公式:

MacD = Σ [t * PV(CF_t)] / P

修正久期:

ModD = MacD / (1 + YTM / m)

其中m是每年付息次数。

举个例子:一个修正久期为5的债券,利率上升1%,价格大约下跌5%。

注意: 久期是个线性近似。利率变动小的时候挺准,变动大了就不行了。这时候需要凸性来帮忙。

2.3.2 凸性

凸性修正了久期的线性误差。它衡量的是久期本身的变化率。

凸性公式:

Convexity = Σ [t * (t + 1) * PV(CF_t)] / [P * (1 + YTM)^2]

加上凸性修正后,价格变动估算更准确:

ΔP/P ≈ -ModD * Δy + 0.5 * Convexity * (Δy)^2

我做过一个测试:利率变动100个基点时,只用久期估算误差约2%,加上凸性后误差降到0.1%以内。所以做回测时,千万别偷懒只用久期。

2.4 利率期限结构理论

利率期限结构,就是不同期限的利率之间的关系。画出来就是那条收益率曲线。

关于收益率曲线的形状,有几种主流理论:

理论名称 核心观点 我的评价
纯预期理论 长期利率 = 未来短期利率的预期值 太理想化,现实中没人这么纯
流动性偏好理论 长期债券需要流动性溢价补偿 比较靠谱,我回测时常用
市场分割理论 不同期限市场各自独立 有点极端,但短期有效
优先栖息地理论 投资者有偏好期限,但可以被溢价吸引 最贴近实际,我推荐这个

我个人习惯用流动性偏好理论做基准。为什么呢?因为它在数学上好处理,而且回测效果不错。但要注意,市场极端行情下(比如2020年3月),所有理论都会失效。

2.5 知识体系总览

下面这张图是我自己整理的债券定价知识框架,做回测系统时经常参考:

债券定价模型 基本要素 面值、票息、到期日 到期收益率 现金流折现、IRR 久期与凸性 利率敏感度、非线性修正 利率期限结构 收益率曲线、理论模型 应用:固收量化回测与绩效归因

避坑指南: 我曾经在回测系统里直接用YTM作为折现率,结果发现对于含权债券(比如可赎回债),YTM完全不准。后来改用OAS(期权调整利差)才解决问题。所以做回测前,先搞清楚你的债券有没有隐含期权。

嗯,这一章的内容就到这里。债券定价是固收量化的地基,地基不牢,后面盖的楼再高也危险。下一章咱们聊聊怎么用Python实现这些定价模型,到时候我会分享一些我踩过的坑。


专注资料整理