4. 收益率曲线构建
在债券Z-Spread、OAS与信用利差分析中,收益率曲线不是背景数据,而是定价与风险度量的“坐标系”。同一只债券,用不同曲线做基准,算出的Z-Spread可能相差几十个基点。本节聚焦三类核心曲线——国债曲线、互换曲线、信用曲线——以及把它们从离散报价变成连续函数的插值方法。
一、核心原理:三条曲线各司其职
国债曲线是无风险基准的近似。它由各期限国债的到期收益率或即期利率构成,反映市场对无风险资金时间价值的定价。在Z-Spread计算中,国债即期曲线常被用作贴现基准,Z-Spread即债券现金流用国债即期曲线贴现后,使现值等于全价所需的恒定利差。
互换曲线反映的是银行间市场的无风险或近无风险利率。以人民币市场为例,FR007互换曲线、Shibor互换曲线是利率互换的定价基准。互换曲线通常比国债曲线更平滑、流动性更好,尤其在长端。在OAS分析中,若债券含权或需与互换对冲,互换曲线常作为更合适的基准。
信用曲线则是在基准曲线上叠加信用风险溢价。它可以是单一发行人的信用利差曲线,也可以是行业或评级维度的信用曲线。信用曲线的构建通常有两种路径:一是用同一发行人不同期限债券的市场价格反推利差,二是用信用违约互换报价直接构建。信用曲线是计算信用利差、分析信用迁移的核心工具。
关键区分:国债曲线回答“无风险资金值多少钱”,互换曲线回答“银行间无风险资金值多少钱”,信用曲线回答“某发行人借钱比无风险多付多少钱”。三者不可混用,否则Z-Spread和OAS会失去可比性。
二、方法流程:从报价到连续曲线
曲线构建的完整流程可分为四步:数据采集、基准选择、插值拟合、曲线校验。
- 数据采集:国债曲线取关键期限(1Y、2Y、3Y、5Y、7Y、10Y、30Y)的收益率;互换曲线取FR007或Shibor各期限互换利率;信用曲线取同一发行人各期限债券的到期收益率或CDS报价。
- 基准选择:根据分析目的选择基准。若分析国债组合,用国债曲线;若分析含权债或互换对冲组合,用互换曲线;若分析信用债,用国债或互换曲线加信用利差。
- 插值拟合:将离散期限点扩展为连续曲线。常用方法包括线性插值、三次样条、Nelson-Siegel模型和Hermite插值。
- 曲线校验:检查曲线是否出现负利率、异常凸起或倒挂,并用市场可观测价格回测。
插值方法的选择直接影响Z-Spread的精度。线性插值简单但曲线不平滑,在关键期限之间会产生折点;三次样条平滑但可能过冲,尤其在短端数据稀疏时;Nelson-Siegel用四个参数刻画水平、斜率、曲率和衰减,适合国债曲线;Hermite插值同时匹配利率和瞬时远期利率,适合互换曲线。
# 以Python为例,用三次样条构建国债即期曲线
import numpy as np
from scipy.interpolate import CubicSpline
tenors = np.array([0.25, 0.5, 1, 2, 3, 5, 7, 10, 30])
rates = np.array([1.85, 1.92, 2.05, 2.18, 2.30, 2.45, 2.58, 2.70, 2.95])
cs = CubicSpline(tenors, rates, bc_type='natural')
t = np.linspace(0.25, 30, 200)
curve = cs(t)
# 计算某债券的Z-Spread时,用curve贴现现金流
def z_spread(price, cashflows, times, curve_t, curve_r):
from scipy.optimize import brentq
def pv(z):
return sum(cf / (1 + np.interp(t, curve_t, curve_r) + z)**t
for cf, t in zip(cashflows, times))
return brentq(lambda z: pv(z) - price, -0.05, 0.5)
三、案例场景:同一债券,不同曲线,不同Z-Spread
假设某3年期AAA企业债,票息3.5%,全价102.3元。分别用国债曲线和互换曲线作为基准:
| 基准曲线 | 3年期基准利率 | 计算出的Z-Spread | 适用场景 |
|---|---|---|---|
| 国债即期曲线 | 2.30% | 约118bp | 国债组合、信用债绝对利差分析 |
| FR007互换曲线 | 2.55% | 约93bp | 含权债、互换对冲组合、OAS分析 |
| 信用曲线(发行人自身) | 3.10% | 约38bp | 信用迁移、相对价值分析 |
同一只债券,用国债曲线算出的Z-Spread比用互换曲线高出25bp。这并非计算错误,而是基准不同。若分析师不说明基准,Z-Spread数字就失去意义。在OAS分析中,若债券含赎回权,用互换曲线作为基准更合理,因为赎回权的行权决策与互换利率环境更相关。
四、误区与复盘
误区一:用到期收益率曲线代替即期曲线。到期收益率是现金流的内部收益率,不是即期利率。用到期收益率曲线贴现,会低估或高估Z-Spread。正确做法是用即期曲线或 bootstrap 方法从国债价格反推即期利率。
误区二:插值方法随意选。线性插值在短端数据稀疏时会产生阶梯状曲线,导致Z-Spread在期限点之间跳变。三次样条在长端可能过冲,产生负远期利率。建议:国债曲线用Nelson-Siegel或Monotone Convex,互换曲线用Hermite,信用曲线用线性或PCHIP。
复盘要点:每次计算Z-Spread或OAS前,先确认三件事——基准曲线是什么、插值方法是什么、曲线日期是哪天。这三者任一变化,利差数字都会变。建议在报告中固定标注“基准:国债即期曲线,插值:Nelson-Siegel,日期:2025-06-30”,确保结果可复现、可比较。
曲线构建是利差分析的起点,也是容易被忽视的环节。国债曲线、互换曲线、信用曲线各有适用场景,插值方法决定曲线的连续性与精度。只有把曲线构建做扎实,后续的Z-Spread、OAS和信用利差分析才有可靠的基础。