收益率曲线构建专题

内容概要

收益率曲线的理论意义(“定价坐标系”&“宏观晴雨表”)

  • 利率期限结构(Term Structure) 的核心表达
    • 描述不同期限的贴现因子/零息率/远期率,反映未来资金时间价值与风险补偿。
    • 无套利定价基础:
  • 宏观与政策含义
    • 短端锚定政策利率,长端反映通胀与增长预期。
    • 利差(10Y–3M)为经典周期指标:曲线陡峭 → 经济扩张预期、曲线倒挂 → 衰退预警。
  • 货币政策传导机制的桥梁:
    • 从政策利率 → 银行间短率 → 中长期融资成本。
  • 风险中性与预期假说
    • 远期率连接风险中性预期与风险溢价分解。

收益率曲线的应用价值

  • 定价与估值
    • 债券、IRS、OIS、结构化产品均基于曲线贴现/投影
  • 风险与管理
    • DV01、Key Rate Duration、曲线情景(平移/陡峭/扭曲)
  • 资产负债与内部转移定价(ALM/FTP)
    • 银行资金价格体系,保险久期匹配与现金流对冲
  • 交易与策略
    • Steepener/Flattener、Carry & Roll-down、基差交易

收益率曲线估计方法的逻辑联系与历史演进

阶段 代表方法 关键特征 局限
1980s 线性/多项式插值(interpolation) 简单、快 不平滑、端点不稳
1990s 样条(McCulloch、Vasicek–Fong) 平滑、局部控制 可能违背无套利
2000s Nelson–Siegel / Svensson 少参数、经济含义 拟合端点/局部难
2010s Hagan–West 单调凸性 单调/凸性友好 实现细节敏感
2010s Smith–Wilson 端点锚定、EIF合规 参数与UFR设定
2020s 机器学习/贝叶斯 非线性、自适应 可解释性/约束难

演进主线:在“金融合理性”与“数值稳定性”之间不断迭代。

收益率曲线估计的最佳实践

  • 多曲线框架
    • 折现:OIS(发达市场);中国常用 DR007/FR007 OIS 为贴现参考
    • 投影:IBOR/SHIBOR/FR007/存单等对应曲线
  • 自举(bootstrapping)与插值(interpolation)
    • 自短端向长端的自举(存单/回购→IRS/OIS→国债长端)
    • 插值/外推:Hagan–West 单调凸、PCHIP(log DF)、Smith–Wilson
  • 约束与治理
    • 无套利与单调性检查(DF单调、远期非负或可解释)
    • 回定价误差阈值:通常
    • 版本管理与可回放:日切、参数留痕、独立复核
  • 压测与鲁棒性
    • 低流动性日、假日错配、节假日效应与券种替代

未解决问题/可研究方向

  1. 极端行情的鲁棒性
    • 流动性断裂时的稳定估计、异常点检测与降权
  2. 无套利+机器学习的统一框架
    • 在端到端学习中嵌入凸性/单调/非负等约束
  3. 中国特色的基差结构
    • DR007 vs FR007 vs SHIBOR 之间的期限/信用/质押差异
  4. 长端外推与UFR设定
    • 监管口径、经济含义与资产负债匹配的一致性
  5. 跨抵押/跨币种折现
    • CSA多样化、CCS基差与中央清算带来的折现选择
  6. 时间一致的曲面建模
    • 横截面拟合与时间序列动态的一致性(例如状态空间/贝叶斯)

中国市场:OTC IRS/OIS 报价获取

  • 官方/交易平台
    • 中国外汇交易中心(CFETS)/中国货币网(chinamoney.com.cn)
      • 银行间 IRS(SHIBOR/FR007)、OIS(DR007/FR007)即时报价与成交
      • 需机构会员或授权账号;部分页面提供延迟/概览
    • 上海清算所(SHCH)
      • 互换清算相关的估值参数、成交统计与公告
  • 数据服务商
    • Wind、Bloomberg、Refinitiv
      • 多期限IRS/OIS双边报价、成交、插值曲线、历史序列
      • 适合研究与生产,权限与费用取决于合约
  • 公开/社区渠道
    • Shibor官方、央行公开市场利率、回购(DR007/FR007)行情
    • TuShare/聚宽:可取得Shibor/回购等,但IRS/OIS较有限

中国市场:OTC IRS/OIS 实务流程

  • 获取与清洗
    • 期限栈:1M/3M/6M/1Y/…/10Y 常用点;剔除冷门期限与离群值
    • 统一计息/日历/滚动规则(ACT/365F、MODFOLLOWING 等)
  • 构建与校验
    • 折现曲线:DR007/FR007 OIS;投影曲线:SHIBOR/FR007 IRS
    • 插值:单调凸/Smith–Wilson;误差目标 ≤ 1–2bp
    • 稳健性:负远期处理、端点外推、一致性检查(DF单调)
  • 运维与合规
    • 日切与参数留痕(UFR、平滑权重、边界)
    • 与前台/估值/风控的“双核对”流程与差异阈值

参考路径(示例):CFETS/SHCH 实时报价 → Wind/Bloomberg 历史 → Python 自举与回测。

符号与基本关系:贴现因子

  • 定义与公式

    • 其中 表示在时点 0 看到的“瞬时远期利率曲线”
  • 含义
    今天支付多少现值,才能在到期 收到 1 单位货币。
    ,通常 (负利率环境下 可能略大于 1)。

  • 关系
    若瞬时远期在 上为常数 ,则

符号与基本关系:即期利率 (连续复利到期收益率)

  • 定义与公式

    • 亦可写

  • 含义
    把整段 的时间价值用“一个常数的、连续复利”的利率概括出来。

  • 备注
    若使用年复利/半年复利等计息方式,公式会相应变化;上式特指“连续复利零息”。

符号与基本关系:平段远期(flat forwards)

  • 平段远期,piecewise-constant instantaneous forwards。即在每个相邻结点区间 内,瞬时远期 固定为常数

  • 若在整个 上都“平段”,则

    其中 就是该区间的常数瞬时远期。

  • 更一般地,对分段区间

    区间均值远期(或离散近似)可由相邻贴现因子反推:

符号与基本关系:互换平价

  • 公式(名义本金 1,固定端票息 ,计息因子 ,支付日 ,最后到期 ):

  • 平价互换(par swap)时,固定端现值 = 浮动端现值。由于浮动端现值等于 ,移项得

  • 实际交易会涉及:

    • 实际/实际或 ACT/360 等日计法
    • stub 期、节假日滚动
    • 不同付息频率

符号与基本关系:无套利检查要点

  • 若假设瞬时远期 ,则 单调不增;
    在负利率环境, 可能出现轻微上升,不必强行“单调递减”,但需能被市场报价一致地解释。

  • 计算隐含区间远期

    应避免不合理的剧烈“锯齿”(相邻区间大幅正负跳变),这常源于过拟合或插值器不当。

  • 实务工作中常用以下方法获得平滑、形状可解释的远期曲线:

    • 的 PCHIP、Hagan–West 单调凸、Smith–Wilson
  • 用得到的 回定价市场工具(存单、国债、FRA、IRS),误差通常要求 bp。

  • 检查短端到长端的连续性、端点外推的合理性(例如 UFR 设定)。

内容概要

单曲线自举方法

  • 选择主导工具
    期限区间 典型使用工具 理由
    短端(< 6 M) 存款、OIS、回购 最贴近央行政策利率、短期流动性决定价,报价丰富
    中短端(6 M – 1 Y – 2 Y) Interest Rate Swap(IRS)的固定腿 Swap 市场流动性最好、覆盖丰富且反映无风险利率水平
    国债(Gov Bonds) 可作为替代校验,但不适合直接引自举 含信用利差、税务因素、票息结构复杂
    长端(> 2 Y) 长期 IRS、Swap Futures 持续延伸期限到 30Y+,定价流动性高
  • 步骤:

    1. 用最短端存款得到首个
    2. 对每个新的到期,用既有点插值估算中间现金流贴现
    3. 用互换平价解出末端
  • 插值:推荐分段指数(对 线性)

算例 1|单曲线自举:基于 Shibor 3M

🎯 目标

按 Shibor 互换曲线构建基础贴现因子并绘制即期曲线。

📘 Step 1 输入数据

import numpy as np
import pandas as pd

# 存款与IRS报价(简化中国市场实例)
deposits = pd.DataFrame({
    "Tenor": [7/365, 1/12, 0.25],
    "Rate":  [0.018, 0.019, 0.021]
})
swaps = pd.DataFrame({
    "Tenor": [1, 2, 3],
    "SwapRate": [0.024, 0.0265, 0.029],
    "Freq": [4, 4, 4]  # 季付
})

📘 Step 2 短端贴现因子

deposits["DF"] = 1 / (1 + deposits["Rate"] * deposits["Tenor"])
P = dict(zip(deposits["Tenor"], deposits["DF"]))

📘 Step 3 递推出互换贴现因子 (bootstrapping)

def bootstrap_swaps(P, swaps):
    alpha = 1 / 4
    for _, row in swaps.iterrows():
        K, Tn = row["SwapRate"], row["Tenor"]
        N = int(Tn / alpha)
        known = sum(alpha * P[t] for t in P if t < Tn)
        P[Tn] = (1 - K * known) / (1 + K * alpha)
    return P

P = bootstrap_swaps(P, swaps)

📘 Step 4 即期率

T = np.array(sorted(P.keys()))
R = -np.log(list(P.values())) / T
pd.DataFrame({"T":T, "Zero":R})

📘 Step 5 绘图展示

import matplotlib.pyplot as plt
plt.plot(T, R*100, 'o-', label='Shibor单曲线')
plt.xlabel("期限(年)"); plt.ylabel("即期利率(%)")
plt.title("单曲线自举结果"); plt.legend()
plt.show()

内容概要

从单曲线到多曲线:传统“单曲线”框架

在 2008 年金融危机之前,市场普遍假设:

存款利率、远期利率(如 LIBOR )、贴现因子 → 来自同一条收益率曲线

  • 可用同一条曲线:

    • 贴现现金流(discounting);
    • 导出远期利率(forwarding)用于浮息预测。
  • 数学上:

    贴现因子  同时用于估算  和贴现未来现金流。

  • “单曲线”假设隐含:

    • 市场上的所有利率代表同一风险水平;
    • 资金市场完全流通,无信用与抵押差别。

从单曲线到多曲线:金融危机后的现实变化


2008 年全球危机揭示:

  • 不同亚期限(1 M, 3 M, 6 M, 12 M)LIBOR 之间含有显著信用和流动性溢价差;
  • OIS(无抵押隔夜利率的抵押交易)代表接近无风险资金成本;
  • 浮动利率互换(基于 3M 或 6M LIBOR )的现金流
    • 在定价时必须用匹配的远期曲线(forward curve)来预测
    • 贴现s时应使用更“安全”的 OIS 曲线。

于是形成了新的理念:

不同利率基准 不同曲线。

多曲线框架

  • 架构概念

    曲线类型 功能 典型基准 主要报价来源
    贴现曲线 (Discount Curve) 反映无风险资金折现,用于现值测算 OIS / 回购(如 DR007, FR007) OIS 利率、回购加权报价
    预测曲线 (Projection Curve) 定义未来浮息现金流预期 Shibor / LIBOR / 存单曲线 IRS、FRAs、CD 报价
    基差曲线 (Basis Curve) 协调不同期限或指数间利差 OIS–IBOR Spread Basis Swap 报价或估算
    长期外推曲线 (Long‑term) 延伸到 30Y+ 的定价与风险管理 Treasury / IRS 长端 长期 IRS、Futures 报价
  • 建模逻辑
    1. 贴现  预测 — 各自自举:
      • 贴现曲线 → 基于 OIS 或 回购 利率
      • 预测曲线 → 基于 Shibor / IBOR 报价
    2. 用多曲线定价互换:
      • 浮动腿现金流由预测曲线计算 Forward Rate
      • 全部贴现到现值 PV 时使用贴现曲线
    3. 联动与基差修正:
      • 通过 Basis Swap 或 Spread 将两套曲线耦合
      • 校准确保互换平价
  • 插值与治理
    • 各曲线内部仍建议对  线性或 Hagan–West 方式插值
    • 保证单调、无负远期;基差曲线需保持连续与经济意义

多曲线自举(Multi‑Curve Bootstrapping)

步骤 内容 用到的工具
Step 1 构建 OIS 贴现曲线 (核心主线) OIS swap、央行数据
Step 2 构建 3M、6M 等浮息基准的远期曲线 FRA 、Basis Swap 、IRS
Step 3 调整各远期曲线相对 OIS 贴现的一致性 多曲线自举法(multi‑bootstrapping)
Step 4 验证市场无套利与所有 swap 报价复现 校准误差 ≈ 0
  • 当前趋势
    • 2020 后 LIBOR 退出,逐步由 SOFR / ESTR / TONA 等无风险基准取代;
    • 远期曲线数量减少(全部从 OIS 衍生),但“多曲线思维”仍然存在;
    • 对于交叉货币互换、期权定价、CVA 风险等仍然必须保留多曲线框架。

算例 2|多曲线体系:OIS 贴现 + Shibor 预测

🎯 目标

构建 OIS 贴现曲线与 Shibor 预测曲线并对比。

📘 Step 1 OIS 贴现曲线

ois_quotes = pd.DataFrame({
    "Tenor": [0.5, 1, 2],
    "Rate": [0.019, 0.020, 0.021]
})
P_ois = {T: 1/(1+R*T) for T,R in zip(ois_quotes["Tenor"], ois_quotes["Rate"])}

📘 Step 2 Shibor 预测曲线

以 OIS 贴现、用 IRS 平价求预测浮息  。

alpha = 0.25
P_d = P_ois.copy()
for T,K in zip(swaps["Tenor"], swaps["SwapRate"]):
    N = int(T/alpha)
    known = sum(alpha*P_d.get(round(i*alpha,2), 1) for i in range(1,N))
    P_d[T] = (1 - K*known)/(1+K*alpha)

# 前向利率近似
Tn = np.array(sorted(P_d.keys()))
Ld = (1/np.array(list(P_d.values())) - 1)/Tn

📘 Step 3 可视化

plt.plot(Tn, np.array(list(ois_quotes["Rate"]))*100, 'o--', label='OIS贴现')
plt.plot(Tn, Ld*100, 's-', label='Shibor预测(近似)')
plt.title("多曲线体系比较"); plt.xlabel("期限(年)"); plt.ylabel("利率(%)")
plt.legend(); plt.show()

内容概要

插值和平滑 (Interpolation & Smoothing)

  • 核心目的

    • 将离散柱点  连接成连续曲线;
    • 计算任意期限  的贴现因子、即期率与远期率;
    • 保持光滑性与金融意义(无套利)。
  • 常用方法总览

    方法 插值对象 思想 优点 典型用途
    ln P 线性 对  线性 假设区间远期率恒定 简单、无套利 初级曲线、自举阶段
    Cubic Spline 对  或  做三次多项式 保证一阶二阶导连续 光滑自然、形态柔和 国债曲线、图形展示
    Hagan–West 对远期率做单调保持插值 平滑且防负远期 无套利、业界标准 ISDA/监管曲线
  • 推荐实践

    • 短端:ln P 线性(稳定无负远期)
    • 中长端:Hagan–West 平滑(监管标准)

ln P 线性插值

  • 思想:
    在相邻柱点间保持瞬时远期率  不变。

  • 特点:

    • 对数贴现线性 ⇒ 远期率分段常数;
    • 保证  递减、无套利;
    • 实现最简单,计算快速。
  • 适用:

    • 自举阶段默认插值;
    • OIS、短端贴现曲线。

Cubic Spline(三次样条)

  • 思想:
    每两个柱点间用三次多项式拟合,保证
     或  的一阶、二阶导连续。

  • 优点:

    • 曲线极为光滑,适合展示;
    • 拟合度高,形态自然。
  • 缺点:

    • 可能产生负远期率;
    • 无套利性不确保。
  • 改进:

    • 对  而非  插值,可减弱负远期风险。

Hagan–West 无套利平滑

  • 提出者:
    Patrick Hagan & Graeme West (2006) - 《Interpolation Methods for Yield Curve Construction》

  • 核心思想:

    • 用分段三次多项式逼近远期率 
    • 施加单调保持约束,使 
    • 同时保证连续的 f 与 f′ (平滑)。
  • 一般形式:

  • 特点与应用:

    优点 说明 优点 说明
    ✅ 无套利 保持贴现单调、远期正值 ✅ 稳定 局部调整影响有限
    ✅ 平滑 一阶导连续,曲线自然 💼 应用 ISDA、EIOPA 等监管标准曲线

方法比较与实务建议

  • 对比总结

    方法 平滑度 无套利性 实现复杂度 适用范围 备注
    ln P 线性 ✅ 短端、自举阶段 默认稳健方案
    Cubic Spline ★★★ ⚠️ ★★★ 中段展示性曲线 可能负远期
    Hagan–West ★★☆ ✅ ★★☆ 中长端平滑曲线 监管推荐标准
  • 实务建议

    • 初级教学与验证:选用 ln P 线性 (易实现、可控);
    • 正式生产曲线:推荐 Hagan–West 无套利平滑;
    • 展示或研究场景:可添加 Cubic Spline 作比对(需检验 f(t) 非负);
    • 检查标准:
      • 单调递减;
      •  且连续。
  • 衔接

    • 平滑后的曲线可直接用于
      参数化建模 (NSS / Smith–Wilson) 阶段
      作为拟合输入或长端约束。

算例 3|插值与无套利平滑

🎯 目标: 比较 ln P 线性、Cubic Spline 和平滑模型曲线。

📘 数据

T = np.array([0.25, 0.5, 1, 2, 3, 5])
R = np.array([0.021, 0.022, 0.024, 0.0265, 0.029, 0.025])

📘 不同插值方法

from scipy.interpolate import interp1d, CubicSpline
# ln P 线性
lnP = -R*T
f_lnP = interp1d(T, lnP, kind='linear', fill_value='extrapolate')
# Cubic Spline
cs = CubicSpline(T, R, bc_type='natural')
# Hagan–West 风格平滑 (近似实现)
def hagan_west(t, T, R):
    from numpy import exp
    return np.interp(t, T, R)

📘 绘图

t_grid = np.linspace(0.1,5,100)
plt.plot(T, R*100, 'o', label='样本点')
plt.plot(t_grid, -f_lnP(t_grid)/t_grid*100, '--', label='lnP线性')
plt.plot(t_grid, cs(t_grid)*100, '-', label='Cubic Spline')
plt.plot(t_grid, hagan_west(t_grid, T, R)*100, ':', label='Hagan–West近似')
plt.title("无套利平滑插值比较")
plt.legend(); plt.show()

内容概要

参数化拟合与外推 (Parametric Fitting & Extrapolation)

  • 核心目的

    • 用少量参数描述整条收益率曲线;
    • 在长期区间实现合理、平滑的外推;
    • 满足监管与定价的可解释性。
  • 常用模型概览

    模型 核心参数 曲线特征 收敛行为 典型用途
    Nelson–Siegel (NS) 单峰形曲线 向长期  收敛 国债或IRS短中端
    Nelson–Siegel–Svensson (NSS) 双峰/更灵活 向长期  收敛 市场/策略拟合
    Smith–Wilson (SW) 正贴现、UFR 收敛 远期 → UFR Solvency II 监管外推
  • 建模步骤

  1. 选择模型 → 设定参数初值;
  2. 最小二乘拟合观测  或 
  1. 检查误差、光滑度与无套利性;
  2. 长端外推与敏感度计算(DV01、Key Rate)。

Nelson–Siegel (NS) 模型

  • 构想: 以三个经济含义明确的因子描述曲线。

    Level(长期利率) Slope(短端斜率) Curvature(中段曲率) 时间衰减常数
     (L)  (S)  (C)
  • 公式:

  • 性质:

    • 中段隆起由 β₂ 控制。
  • 优点: 参数少、形状清晰、易解释。

  • 缺点: 长端单一收敛,灵活性有限。

Nelson–Siegel–Svensson (NSS)

  • 扩展思想:
    在 NS 基础上增加第二组曲率控制项 ( , ),以更灵活地拟合多峰或非对称结构。

  • 公式:

  • 特点:

    • 可再现额外一个波峰或波谷;
    • 精度高、灵活性强;
    • 三个 控制水平/斜率/两段曲率。
  • 限制:

    • 参数多、优化易陷局部极值;
    • 无严格无套利保证。

Smith–Wilson (SW) 模型

  • 监管标准来源: EIOPA / Solvency II 框架 — 要求曲线 → UFR (终极远期利率),且贴现单调。

  • 贴现因子形式:

    其中  为 Wilson 核函数:

  • 参数说明:

    • :长期终端远期利率(监管设定)
    • :收敛速度控制参数
    • :由拟合方程组求得
  • 优势: 保证无套利( P 单调 );长期收敛 → UFR;符合监管要求。

方法比较与实务建议

模型 参数量 无套利 平滑性 收敛控制 应用场景
NS 4 ⚠️ ★★ 向 β₀ 收敛 一般市场拟合
NSS 6 ⚠️ ★★★ 向 β₀ 收敛 高精度拟合、策略分析
Smith–Wilson N + 2 ✅ ★★ 向 UFR 收敛 监管外推、保险贴现
  • 实务建议

    • 市场分析与交易定价:NSS/Nelson–Siegel
    • 保险 & 监管外推:Smith–Wilson
    • 若需无套利保证→首选 SW。
  • 衔接

    • 平滑曲线 (Part IV‑A) 输出 → 参数化模型输入;
    • 结果用于 DV01 / Key Rate 风险分析 (Part VI)。

算例 4|参数化模型:NSS / Smith‑Wilson

📘 NSS 拟合

from scipy.optimize import curve_fit

def NSS(t,b0,b1,b2,b3,tau1,tau2):
    term1 = (1 - np.exp(-t/tau1))/(t/tau1)
    term2 = term1 - np.exp(-t/tau1)
    term3 = (1 - np.exp(-t/tau2))/(t/tau2) - np.exp(-t/tau2)
    return b0 + b1*term1 + b2*term2 + b3*term3

popt,_ = curve_fit(NSS, T, R, p0=[0.02,-0.01,0.01,0.005,1.0,3.0])

📘 Smith–Wilson 外推(简版)

规定长期 UEP = 2 %。

def smith_wilson(t, UEP=0.02, alpha=0.1):
    return UEP + (R[-1]-UEP)*np.exp(-alpha*(t-T[-1]))

📘 绘图对比

t_grid = np.linspace(0.1,30,300)
plt.plot(T, R*100,'o',label='市场点')
plt.plot(t_grid, NSS(t_grid,*popt)*100,'--',label='NSS拟合')
plt.plot(t_grid, smith_wilson(t_grid)*100,':',label='Smith–Wilson外推')
plt.xlim(0,30); plt.xlabel("期限(年)"); plt.ylabel("利率%")
plt.title("参数化模型与外推比较"); plt.legend(); plt.show()

算例 5|无套利检查与曲线版本治理

检查 DF 单调性和负远期

def check_arbitrage(P):
    T = np.array(sorted(P.keys()))
    DF = np.array([P[t] for t in T])
    fwd = np.diff(-np.log(DF))/np.diff(T)
    if np.any(fwd<0): print("⚠ 发现负远期率! 需修正")
    if np.any(np.diff(DF)>0): print("⚠ DF 非单调! 检查插值")
check_arbitrage(P)

曲线版本保存 (JSON)

import json, datetime
version = {"date":str(datetime.date.today()),"DF":P}
with open(f"curve_{version['date']}.json","w") as f: json.dump(version,f,indent=2)

内容概要

曲线风险敏感度 (Curve Risk Sensitivity)

  • 核心目的

    • 衡量收益率曲线变化对定价的影响;
    • 识别久期、DV01、关键期限风险;
    • 支撑利率风险管理与监管报表(IRRBB、FRTB)。
  • 主要指标

    指标 定义 / 意义 常见单位 应用场景
    久期 (Duration) 价格对整个曲线平移的敏感度 一般利率风险衡量
    DV01 利率变化 1 bp 引起的价格变动 货币 交易层风险管理
    Key Rate Duration (KRD) 曲线特定关键期限单独平移时的敏感度 非平移风险拆解
  • 数学关系

DV01:定义与计算

  • 定义: 当收益率上升 1 bp,价格下降的金额。

  • 计算步骤

    1. 获取曲线贴现因子 
    2. 利率曲线整体上移 1 bp;
    3. 重新计算各现金流现值 PV′;
  • 解释

    • 正的 DV01 意味着价格与收益率反向;
    • 值越大,利率变化对价格影响越敏感。
  • 应用

    • 交易头寸敏感度报告;
    • 对冲设计与风险限额控制。

Key Rate Duration (关键利率久期)

  • 动机

    • 利率曲线通常非平行移动
    • 不同期限波动源独立(短端、长端等)。
  • 定义

    其中  为第  个关键期限单点平移(如 1 bp)。

  • 步骤

    1. 选定关键期限集(1Y、2Y、5Y、10Y、30Y);
    2. 单独平移该点  并插值延伸;
    3. 计算新 PV 差异 → 
    4. 汇总形成 Key Rate 分布图。
  • 结果解读

    • 可识别集中风险点;
    • 有助于多因子对冲或情景分析。

曲线情景与风险归因

  • 常见曲线情景

    情景 设定 典型影响
    平移 (Parallel Shift) 全期限 ±x bp 久期风险
    陡峭化 (Steepening) 长端上升、短端下降 长久期资产承压
    扭曲 (Twist) 中段变化最大 曲线非线性风险
    波动压缩 波动率降低、收益率收敛 减少机会成本
  • 风险归因流程
    1. 基于 KRD 拆解 ΔPV;
    2. 汇总各关键期限贡献;
    3. 与市场曲线变化对比验证。
  • 监管对应
    • IRRBB (BIS):银行账簿利率风险;
    • FRTB (市场风险资本):曲线因子敏感度输入。

实务应用与最佳实践

  • 曲线敏感度治理

    • 每日复算:基于最新曲线(OIS / IBOR);
    • 对冲一致性:贴现与预测曲线匹配;
    • 验证检查:DV01 加和 ≈ 总DV01 (回溯测试)。
  • 可视化输出

    • 久期分布条形图 (Key Rate Layout);
    • PV 对 Shift 曲线图;
    • 敏感度热力图 (tenor × curve)。
  • 典型实践

    • Duration Bucket 对齐风险限额;
    • 曲线情景压力测试 (±100 bp);
    • 敏感度签名 (DV01 Vector) 纳入限额管理。

算例 6|风险敏感度:DV01 与 Key‑Rate

示例数据

一张 3Y 固定利率债券,年付票息 2.9 %。

📘 Step 1 债券定价函数

def bond_price(y, c=0.029, T=3, freq=1):
    times = np.arange(1/freq, T+1/freq, 1/freq)
    cf = np.repeat(c/freq, len(times)); cf[-1] += 1
    disc = np.exp(-y*times)
    return np.sum(cf*disc)

📘 Step 2 DV01 计算

y0 = R[T==3][0]
dy = 0.0001
P0 = bond_price(y0)
P1 = bond_price(y0+dy)
DV01 = (P0-P1)/dy
print(f"DV01 = {DV01:,.2f} per 1 bp")

📘 Step 3 Key‑Rate 敏感度

key_rates = [1,3,5]
shifts = {k:0.0001 for k in key_rates}
def key_rate_shift(R,shift,k):
    R2 = R.copy()
    if k in key_rates:
        i = np.where(T==k)[0][0]
        R2[i] += shift
    return R2
for k in key_rates:
    R_shift = key_rate_shift(R,0.0001,k)
    y3 = R_shift[T==3][0]
    print(f"KeyRate({k}Y) = {(bond_price(y0)-bond_price(y3))/0.0001:,.2f}")

参考资料(教科书)

  • Fabozzi, Fixed Income Analysis, Wiley
    用途:债券估值、期限结构、风险度量体系;获取:高校图书馆/出版社
  • Hull, Options, Futures, and Other Derivatives, Pearson
    用途:互换定价与无套利;获取:教材渠道

参考资料(论文/方法)

  • NSS与动态因子:Nelson & Siegel (1987); Diebold & Li (2006)
  • 无套利NSS与状态空间估计:Christensen, Diebold, Rudebusch (2011) AFNS
  • 单调凸性曲线构建,工业实践:Hagan & West (2006) Interpolation methods
  • 长端外推与UFR: Smith & Wilson(2000/2011);EIOPA Technical Docs(Solvency II)

参考资料(行业/数据)

  • ISDA OIS discounting/CSA 文档:多曲线转型背景与方法
  • Bloomberg/Refinitiv 曲线构建白皮书(说明性,避免绑定实现)
  • 数据源:FRED(UST/SOFR)、央行网站(政策利率/OIS参考)、交易所/ICE(IRS报价)

附录:术语中英对照

  • 贴现因子 Discount Factor;零息 Zero Rate;远期 Forward Rate
  • 自举Bootstrapping;分段指数 Piecewise Exponential;单调凸性 Monotone Convex
  • OIS 隔夜指数互换;IBOR/LIBOR 同业拆借;CSA 质押协议
  • NSS Nelson–Siegel–Svensson;AFNS Arbitrage-Free NSS;卡尔曼滤波 Kalman Filter
  • DV01 Dollar Value of 1bp;关键期限敏感度 Key Rate Duration
  • UFR 最终远期率;外推 Extrapolation

资深量化与固定收益讲师|面向金融工程本科高年级 Python开源栈|多曲线|无套利|可复现 - 理论与应用双主线:从数据→约束→模型→校准→验证→应用 - 可授课、可演练、可复现的完整教学资产(含代码与题库)

**可视化建议:** 一个“收益率曲线 vs 经济周期”示意图。

要点:没有可用曲线,就没有可比价、可控风险与可执行策略。

(优先)

(常用)

(补充)

提示:实时OTC报价多属会员数据,教学/研究可用数据商或延迟数据替代。

- 常见同义 log-linear on discount factors $\Longleftrightarrow$ 区间内瞬时远期为常数(即“平段远期”)。

- 上式是教学用的标准化表达,用于阐明定价等式与直观机制。

AFNS /

--- ### AFNS(Arbitrage-Free NSS) - 将NSS写为无套利可生成的因子过程(状态空间): - 状态:$x_t = A x_{t-1} + w_t$ - 观测:$y_t = H(\text{tenor};\lambda) x_t + e_t$ - 卡尔曼滤波估计因子路径与参数(A,Q,R,可能含$\lambda$) - 区分度量:风险中性(定价) vs 真实世界(预测/情景)

🧩 **衔接** → 与 Part IV 参数化曲线 输出对接, 支持 DV01 / Key Rate 自动计算与风险聚合。