4. 收益率曲线构建

在债券Z-Spread、OAS与信用利差分析中,收益率曲线不是背景数据,而是定价与风险度量的“坐标系”。同一只债券,用不同曲线做基准,算出的Z-Spread可能相差几十个基点。本节聚焦三类核心曲线——国债曲线、互换曲线、信用曲线——以及把它们从离散报价变成连续函数的插值方法。

一、核心原理:三条曲线各司其职

国债曲线是无风险基准的近似。它由各期限国债的到期收益率或即期利率构成,反映市场对无风险资金时间价值的定价。在Z-Spread计算中,国债即期曲线常被用作贴现基准,Z-Spread即债券现金流用国债即期曲线贴现后,使现值等于全价所需的恒定利差。

互换曲线反映的是银行间市场的无风险或近无风险利率。以人民币市场为例,FR007互换曲线、Shibor互换曲线是利率互换的定价基准。互换曲线通常比国债曲线更平滑、流动性更好,尤其在长端。在OAS分析中,若债券含权或需与互换对冲,互换曲线常作为更合适的基准。

信用曲线则是在基准曲线上叠加信用风险溢价。它可以是单一发行人的信用利差曲线,也可以是行业或评级维度的信用曲线。信用曲线的构建通常有两种路径:一是用同一发行人不同期限债券的市场价格反推利差,二是用信用违约互换报价直接构建。信用曲线是计算信用利差、分析信用迁移的核心工具。

关键区分:国债曲线回答“无风险资金值多少钱”,互换曲线回答“银行间无风险资金值多少钱”,信用曲线回答“某发行人借钱比无风险多付多少钱”。三者不可混用,否则Z-Spread和OAS会失去可比性。

二、方法流程:从报价到连续曲线

曲线构建的完整流程可分为四步:数据采集、基准选择、插值拟合、曲线校验。

  1. 数据采集:国债曲线取关键期限(1Y、2Y、3Y、5Y、7Y、10Y、30Y)的收益率;互换曲线取FR007或Shibor各期限互换利率;信用曲线取同一发行人各期限债券的到期收益率或CDS报价。
  2. 基准选择:根据分析目的选择基准。若分析国债组合,用国债曲线;若分析含权债或互换对冲组合,用互换曲线;若分析信用债,用国债或互换曲线加信用利差。
  3. 插值拟合:将离散期限点扩展为连续曲线。常用方法包括线性插值、三次样条、Nelson-Siegel模型和Hermite插值。
  4. 曲线校验:检查曲线是否出现负利率、异常凸起或倒挂,并用市场可观测价格回测。

插值方法的选择直接影响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分析中,若债券含赎回权,用互换曲线作为基准更合理,因为赎回权的行权决策与互换利率环境更相关。

三类收益率曲线与插值方法关系图 国债曲线 无风险基准 关键期限:1/2/3/5/7/10/30Y 插值:Nelson-Siegel / 样条 互换曲线 银行间无风险基准 FR007 / Shibor 互换利率 插值:Hermite / 三次样条 信用曲线 基准 + 信用利差 发行人债券 / CDS 报价 插值:线性 / 样条 Z-Spread / OAS / 信用利差 基准不同 → 利差不可直接比较 插值方法:线性插值(简单)→ 三次样条(平滑)→ Nelson-Siegel(参数化)→ Hermite(匹配远期)

四、误区与复盘

误区一:用到期收益率曲线代替即期曲线。到期收益率是现金流的内部收益率,不是即期利率。用到期收益率曲线贴现,会低估或高估Z-Spread。正确做法是用即期曲线或 bootstrap 方法从国债价格反推即期利率。

误区二:插值方法随意选。线性插值在短端数据稀疏时会产生阶梯状曲线,导致Z-Spread在期限点之间跳变。三次样条在长端可能过冲,产生负远期利率。建议:国债曲线用Nelson-Siegel或Monotone Convex,互换曲线用Hermite,信用曲线用线性或PCHIP。

复盘要点:每次计算Z-Spread或OAS前,先确认三件事——基准曲线是什么、插值方法是什么、曲线日期是哪天。这三者任一变化,利差数字都会变。建议在报告中固定标注“基准:国债即期曲线,插值:Nelson-Siegel,日期:2025-06-30”,确保结果可复现、可比较。

曲线构建是利差分析的起点,也是容易被忽视的环节。国债曲线、互换曲线、信用曲线各有适用场景,插值方法决定曲线的连续性与精度。只有把曲线构建做扎实,后续的Z-Spread、OAS和信用利差分析才有可靠的基础。