4. Key Rate Duration定义
在上一节中,我们已经看到传统久期只能给出“收益率曲线整体平移”情形下的价格敏感度。但真实市场里,收益率曲线很少整体平移,更常见的是短端不动、长端上行,或者中段凸起、两端下沉。要刻画这种“局部变化”的风险,就必须引入关键利率久期(Key Rate Duration,KRD)。它把一条完整的曲线拆成若干个关键期限点,分别衡量每个点位的收益率变动对债券或组合价格的影响。
一、核心原理:从“整体久期”到“逐点敏感度”
关键利率久期的基本思想是:不再把收益率曲线视为一个整体,而是选取一组具有代表性的关键期限(如1年、2年、3年、5年、7年、10年、20年、30年),并假设在每个关键期限上发生一个微小的收益率变动,而其他关键期限的收益率保持不变。通过重新定价,就能得到价格对该关键期限的敏感度。
其数学定义可以写成:
KRD_i = - (1/P) * (ΔP_i / Δy_i)
其中:
P = 债券或组合当前价格
Δy_i = 第 i 个关键期限的收益率微小变动(通常取1个基点)
ΔP_i = 仅第 i 个关键期限变动时,债券或组合价格的变化量
这里的关键在于“仅第 i 个关键期限变动”。为了在曲线上只改变一个点,通常采用线性插值或分段线性插值:当第 i 个关键期限变动时,相邻关键期限之间的收益率按距离比例变化,从而保证曲线在关键点之间平滑过渡。这样,每个关键利率久期就对应曲线上的一个“局部风险敞口”。
把所有关键利率久期相加,理论上可以得到组合的有效久期。也就是说,传统久期是 KRD 的“总和”,而 KRD 是传统久期的“分解”。
一句话理解:传统久期告诉你“曲线整体动1个基点,价格变多少”;关键利率久期告诉你“曲线在某个期限点动1个基点,价格变多少”。
二、方法流程:如何计算一组关键利率久期
在实际工作中,计算 KRD 通常遵循以下步骤:
- 确定关键期限集合:根据组合的现金流分布和交易习惯,选择一组关键期限。常见选择为1Y、2Y、3Y、5Y、7Y、10Y、20Y、30Y。
- 构建基准曲线:用市场数据拟合一条基准收益率曲线,并确保每个关键期限上都有对应的收益率节点。
- 逐点冲击:对第 i 个关键期限的收益率施加+1bp冲击,其他关键期限保持不变;相邻期限之间用插值方法调整。
- 重新定价:用冲击后的曲线对债券或组合进行全量重定价,得到价格变化 ΔP_i。
- 计算 KRD_i:按公式 KRD_i = -(ΔP_i / P) / 0.0001 计算,单位通常为“年”。
- 汇总与校验:将所有 KRD_i 相加,与有效久期对比,检查分解是否合理。
下面是一个简化的 Python 伪代码示例,展示逐点冲击的计算逻辑:
key_rates = [1, 2, 3, 5, 7, 10, 20, 30]
base_curve = {1: 0.020, 2: 0.022, 3: 0.024, 5: 0.028,
7: 0.031, 10: 0.034, 20: 0.038, 30: 0.040}
def price_bond(curve, bond):
# 根据曲线插值得到各现金流对应折现率,并计算价格
...
krd = {}
for t in key_rates:
shocked_curve = base_curve.copy()
shocked_curve[t] += 0.0001 # 仅该关键期限+1bp
# 对相邻期限做线性插值调整
p_up = price_bond(shocked_curve, bond)
krd[t] = -(p_up - p_base) / p_base / 0.0001
需要注意的是,冲击幅度通常取1个基点,因为太大时会引入凸性误差,太小则容易受数值精度影响。1bp是市场惯例,也是风险系统中最常用的标准。
三、案例与场景:曲线陡峭化下的风险暴露
假设某投资组合持有一只10年期国债,同时持有一只2年期信用债。用传统久期看,组合久期约为5.2年。但如果市场发生“短端下行、长端上行”的陡峭化变化,传统久期无法告诉我们哪一部分在亏钱。
通过 KRD 分解,我们可能得到如下结果:
| 关键期限 | KRD(年) | 风险贡献 | 主要来源 |
|---|---|---|---|
| 1Y | 0.05 | 1% | 现金类资产 |
| 2Y | 1.10 | 21% | 2年期信用债 |
| 3Y | 0.35 | 7% | 信用债现金流 |
| 5Y | 0.40 | 8% | 过渡段 |
| 7Y | 0.50 | 10% | 过渡段 |
| 10Y | 2.80 | 53% | 10年期国债 |
| 20Y | 0.00 | 0% | 无敞口 |
| 30Y | 0.00 | 0% | 无敞口 |
| 合计 | 5.20 | 100% | — |
这张表清楚地显示:组合的风险主要集中在2年期和10年期。如果交易员判断曲线将“2年下行、10年上行”,他就可以针对性地减仓10年期国债,或者用10年期利率互换对冲,而不必整体降低久期。这就是 KRD 在实战中的核心价值——把“方向性风险”转化为“结构性风险”。
四、误区与复盘:KRD 不是“越多越好”
在实际应用 KRD 时,有几个常见误区需要警惕:
- 关键期限选得过多或过少:选得太少,无法覆盖现金流集中区;选得太多,计算量大且相邻节点高度相关,分解结果不稳定。一般8~12个关键期限是较优区间。
- 忽略插值方法的影响:不同插值方式(线性、三次样条、单调凸)会导致同一笔现金流在不同关键期限上的分摊不同,进而影响 KRD 数值。必须与风险系统保持一致。
- 把 KRD 当成独立风险:KRD 之间并非完全独立,曲线局部变动往往伴随相邻期限的联动。KRD 是“局部敏感度”,不是“独立风险因子”。
- 用 KRD 替代情景分析:KRD 是线性近似,遇到大幅曲线变动或凸性显著的品种时,仍需结合情景分析和全量重定价。
复盘提醒:如果发现所有 KRD 都集中在某一个期限,而组合现金流明明分散在多个期限,通常说明曲线构建或插值环节出了问题,而不是组合真的只暴露在一个点上。此时应先检查关键期限节点是否覆盖了主要现金流,再检查插值逻辑。
总结来说,关键利率久期的含义可以概括为:它是收益率曲线风险的最小可操作单元。作用则体现在三个层面:第一,把组合的总久期拆解为各期限的局部敞口;第二,支持针对曲线形态变化的精细化对冲;第三,为交易员和风险经理提供“曲线往哪个方向动、哪个期限最受伤”的量化依据。掌握 KRD,是从“看久期数字”走向“看曲线结构”的关键一步。