3. 收益率曲线与估值基础
在OpenGamma Strata中,任何一笔利率产品的估值都离不开一条或多条收益率曲线。曲线是连接市场报价与未来现金流的桥梁,而曲线构建的质量直接决定了估值、风险指标乃至交易决策的可信度。本章从即期曲线、远期曲线、贴现因子、计息方式、日算规则五个基础概念出发,梳理曲线构建的基本原理,并结合Strata的API与配置方式给出可落地的实践路径。
一、核心原理:从贴现因子到即期与远期
利率估值的本质是“贴现”。给定未来某一时点的现金流 CF(t),其现值可写为 PV = CF(t) × DF(t),其中 DF(t) 即为贴现因子。贴现因子是曲线的最小信息单元,其余概念都是它的不同表达形式。
- 贴现因子 DF(t):今天1元在未来t时刻的价值折算回今天的比例,通常
DF(0)=1,且随期限单调不增。 - 即期利率(Zero Rate):使
DF(t) = 1 / (1 + z(t))^t成立的年化利率,反映从今天到t的“一次性”收益率。 - 远期利率(Forward Rate):由两个即期利率或贴现因子推导,
f(t1,t2) = (DF(t1)/DF(t2) - 1) / (t2 - t1),代表未来区间内的边际资金成本。 - 计息方式:单利、复利、连续复利之间的换算关系决定了利率与贴现因子的映射。
- 日算规则(Day Count):如ACT/360、ACT/365、30/360,决定时间t的度量方式,直接影响利率数值。
关键等式:
DF(t) = exp(-z_cont(t) × t)。在Strata中,曲线内部通常以连续复利即期利率或贴现因子存储,对外再按需转换。
二、方法流程:Strata中的曲线构建步骤
曲线构建不是“拟合一条线”,而是“用可交易工具反推贴现因子”。Strata采用“曲线节点+插值+引导(Calibration)”的流程,典型步骤如下:
- 选择曲线组(Curve Group):确定本币OIS、LIBOR/SOFR、国债等曲线角色。
- 录入市场报价:存款、FRAs、利率期货、利率互换等工具的报价。
- 选择插值器:如线性、对数线性、单调凸、Nelson-Siegel等。
- 引导求解:对每个工具令其理论价格等于市场报价,逐段解出节点贴现因子。
- 生成曲线对象:得到可查询
DF(t)、zeroRate(t)、forwardRate(t1,t2)的曲线。
// Strata 曲线构建示意(伪代码)
CurveDefinition definition = CurveDefinition.of(
name("USD-OIS"),
nodes(
node(tenor("1M"), deposit(USD, 1M)),
node(tenor("1Y"), swap(USD, 1Y)),
node(tenor("5Y"), swap(USD, 5Y))
),
interpolator(LogLinearDiscountFactor())
);
Curve curve = calibration(definition, marketData).calibrate();
三、可视化:曲线构建的数据流与依赖关系
下图展示了从市场报价到最终曲线对象的数据流,以及即期、远期、贴现因子三者之间的转换关系。理解这张图,就能理解Strata曲线API的调用顺序。
四、案例与场景:一笔5年期互换的估值链路
假设我们有一笔支付固定3%、收取SOFR的5年期互换,名义本金1亿美元。在Strata中估值时,曲线的作用体现在:
| 环节 | 使用的曲线/参数 | 作用 |
|---|---|---|
| 浮动端现金流预测 | SOFR远期曲线 | 确定每个重置期的远期利率 |
| 固定端现金流 | 合约固定利率3% | 按日算规则计算每期金额 |
| 贴现 | OIS贴现曲线 | 将各期现金流折现到估值日 |
| PV与DV01 | 曲线组整体 | 计算净现值与利率敏感性 |
在Strata中,
RatesProvider 负责把曲线组、估值日、日算规则组合起来,为每个产品提供估值上下文。曲线构建错误往往在PV上表现为“整体偏移”,而在DV01上表现为“局部异常”。
五、误区与复盘:曲线构建中最容易踩的坑
- 混淆即期与远期:把1年期互换利率直接当作1年即期利率使用,忽略中间付息与日算规则,导致曲线整体偏移。
- 日算规则不一致:报价工具与曲线节点使用不同Day Count,引导出的DF在节点处不连续。
- 插值器选择不当:在曲线短端使用平滑插值,会掩盖货币市场的真实跳跃,造成远期利率失真。
- 忽略曲线角色:用同一曲线同时做预测与贴现,在基差较大的市场中会系统性高估或低估PV。
- 节点过密或过疏:节点过密导致过度拟合,节点过疏导致关键期限远期利率失真。
复盘建议:每次曲线构建后,先检查
DF(0)=1、DF单调递减、节点处工具重定价误差是否接近0,再检查远期利率曲线是否出现异常尖峰或负值。这三步能拦截80%以上的曲线错误。