一、期限结构基础:什么是收益率曲线?为什么它如此重要?

大家好,我是老张。今天咱们聊聊固收交易里最基础、也最绕不开的一个概念——收益率曲线。

说实话,我入行头两年,一直觉得收益率曲线就是个理论模型。直到有一次做利率互换交易,因为没吃透曲线形态,差点被市场打脸。从那以后,我养成了一个习惯:每天开盘前,先盯着曲线看五分钟。

嗯,咱们今天就把这个「老朋友」彻底聊透。

1.1 收益率曲线到底是什么?

说白了,收益率曲线就是一张图。横轴是期限(比如1年、2年、5年、10年),纵轴是收益率。把不同期限的国债收益率连成一条线,就是收益率曲线。

你想想看,为什么市场这么关注它?因为这条线背后,藏着市场对未来的全部预期——经济增长、通胀、货币政策,甚至地缘政治风险。

核心定义:收益率曲线反映了「无风险利率」在不同期限上的定价。它是所有固定收益资产的定价基准。

我个人习惯把收益率曲线分成三种形态:

  • 正常形态(向上倾斜):期限越长,收益率越高。说明市场预期未来经济向好,通胀温和。
  • 平坦形态:长短期利差收窄。通常出现在加息周期末期或经济放缓初期。
  • 倒挂形态(向下倾斜):短期收益率高于长期。这是衰退的经典预警信号。

我在项目中遇到过最典型的案例是2023年美债收益率曲线深度倒挂。当时很多新手交易员觉得「倒挂就是机会」,结果抄底抄在半山腰。为什么?因为倒挂本身不是交易信号,倒挂的「变化趋势」才是。

1.2 为什么收益率曲线如此重要?

重要性可以从三个层面理解:

  1. 定价基准:所有债券、贷款、衍生品的定价,都离不开收益率曲线。你想想看,如果没有曲线,你怎么给一个5年期信用债定价?
  2. 经济晴雨表:曲线形态直接反映市场对未来的预期。我记得2020年3月疫情爆发时,曲线一度变得极其陡峭——长端利率飙升,短端利率暴跌。这说明市场在疯狂避险的同时,又预期未来通胀会起来。
  3. 交易策略核心:无论是骑乘策略、蝶式策略,还是曲线陡峭化/平坦化交易,本质上都是在赌曲线形态的变化。

个人经验:我建议所有刚入行的交易员,先花三个月时间,每天手动画一遍主要国家的收益率曲线。别嫌麻烦,这个习惯能帮你建立对利率的「肌肉记忆」。

1.3 收益率曲线的构建方法

构建一条可用的收益率曲线,其实没那么简单。市场上主要有三种方法:

方法 原理 优点 缺点
Nelson-Siegel模型 用四个参数拟合曲线 参数少、计算快 对长端拟合精度一般
Svensson扩展模型 在N-S基础上增加两个参数 拟合精度更高 参数多、容易过拟合
样条插值法 分段多项式拟合 灵活、局部拟合好 曲线不够平滑

我个人在实际交易中,更常用Nelson-Siegel模型。为什么?因为它的参数有明确的金融含义:

  • β0:长期利率水平
  • β1:短期利率偏离
  • β2:曲线曲度
  • τ:衰减因子

你看,这四个参数直接对应了曲线的「水平、斜率、曲度」三个核心因子。做期限结构策略时,我们本质上就是在交易这三个因子的变化。

避坑指南:我曾经在构建曲线时,直接用市场报价的收益率做插值,结果发现曲线在关键期限点出现「锯齿」。后来才意识到,不同期限的债券流动性不同,报价质量差异很大。建议先用流动性最好的「新券」收益率做基准,再用模型平滑。

1.4 核心知识框架图

下面这张图,是我自己总结的收益率曲线知识体系。每次带新人时,我都会先让他们看这张图:

收益率曲线 曲线形态 构建方法 交易应用 正常(向上) 平坦 倒挂(向下) Nelson-Siegel Svensson 样条插值 骑乘策略 蝶式策略 陡峭化/平坦化 核心因子:水平 · 斜率 · 曲度 图1:收益率曲线知识框架 三个关键问题:曲线长什么样?怎么构建的?怎么用它赚钱?

1.5 一个简单的代码示例

光说不练假把式。下面我用Python演示一下,如何用Nelson-Siegel模型拟合一条收益率曲线:

import numpy as np
from scipy.optimize import curve_fit

# Nelson-Siegel模型函数
def ns_curve(t, beta0, beta1, beta2, tau):
    """
    t: 期限(年)
    beta0: 长期利率水平
    beta1: 短期利率偏离
    beta2: 曲线曲度
    tau: 衰减因子
    """
    factor = (1 - np.exp(-t/tau)) / (t/tau)
    return beta0 + beta1 * factor + beta2 * (factor - np.exp(-t/tau))

# 模拟市场数据:不同期限的收益率
maturities = np.array([0.25, 0.5, 1, 2, 3, 5, 7, 10, 20, 30])
yields = np.array([4.52, 4.48, 4.35, 4.12, 3.95, 3.78, 3.65, 3.52, 3.48, 3.45])

# 拟合参数
popt, _ = curve_fit(ns_curve, maturities, yields, 
                    p0=[3.5, 1.0, -0.5, 2.0])

print(f"拟合参数:")
print(f"长期利率水平 (β0): {popt[0]:.4f}")
print(f"短期利率偏离 (β1): {popt[1]:.4f}")
print(f"曲线曲度 (β2): {popt[2]:.4f}")
print(f"衰减因子 (τ): {popt[3]:.4f}")

# 预测各期限收益率
predicted = ns_curve(maturities, *popt)
print(f"\n实际 vs 预测收益率:")
for t, y, p in zip(maturities, yields, predicted):
    print(f"{t:5.1f}年: 实际{y:.4f} → 预测{p:.4f} (误差{y-p:.4f})")

这段代码虽然简单,但已经能跑通完整的拟合流程。我在实际交易中,会在这个基础上加入「加权最小二乘」——给流动性好的期限点更高的权重。这样拟合出来的曲线,更贴近真实交易价格。

一个小技巧:参数τ的初始值很关键。我一般设成2.0左右,因为大部分曲线的「拐点」出现在2-3年附近。如果τ设得太小,曲线会过度拟合短期波动。

1.6 本章小结

收益率曲线不是教科书里的抽象概念。它是市场的脉搏,是交易员的罗盘。

记住三件事:

  • 曲线形态告诉你市场在想什么
  • 曲线构建方法决定了你的分析精度
  • 曲线变化是交易策略的利润来源

嗯,今天就聊到这儿。下一章咱们会深入拆解「骑乘策略」——这是期限结构策略里最经典、也最容易上手的一种。到时候我会拿一个真实的交易案例,一步步带你走完从分析到执行的全过程。


公众号:蓝海资料掘金营,微信 deep3321