3. SOFR基础
在构建多曲线框架之前,必须先彻底理解SOFR这一基准利率的“物理属性”。SOFR(Secured Overnight Financing Rate,有担保隔夜融资利率)是纽约联储(FRBNY)联合美国财政部金融研究办公室(OFR)推出的美元无风险利率(RFR),用于替代LIBOR成为美元衍生品与现金市场的基准利率。它的本质不是报价,而是基于真实隔夜回购交易的回溯性利率,这一根本差异决定了后续所有曲线构建、贴现与估值逻辑。
一、SOFR的定义与交易基础
SOFR衡量的是以美国国债为抵押品的隔夜回购协议(Repo)市场中,资金融入方支付给资金融出方的利率。其交易范围覆盖三类回购:
- 三方回购(Tri-party Repo):由清算银行作为中介,对抵押品进行估值、分配与结算,是SOFR交易量最大的组成部分。
- 一般抵押品回购(GCF Repo):通过固定收益清算公司(FICC)进行匿名撮合,抵押品为一般国债池。
- 双边回购(Bilateral Repo):交易双方直接协商,纽约联储通过其交易数据收集系统获取部分双边回购数据。
SOFR的独特之处在于:它不是由银行报价形成的,而是从上述回购市场的实际成交交易中计算得出。这意味着SOFR反映的是真实资金成本,而非某家银行的信用判断。
二、计算方法:从交易数据到利率
SOFR的计算流程由纽约联储每日执行,核心步骤如下:
- 数据采集:从FICC、纽约梅隆银行等清算机构获取前一交易日(美东时间)的隔夜回购交易数据。
- 数据筛选:剔除异常交易,包括利率明显偏离市场水平的“特殊交易”、期限非隔夜的交易、以及非国债抵押品的交易。
- 成交量加权中位数:将筛选后的交易按利率排序,计算成交量加权中位数(Volume-Weighted Median)。
- 发布:每日美东时间上午8:00左右,在纽约联储官网发布前一交易日的SOFR利率。
关键公式:SOFR = 成交量加权中位数利率。中位数而非均值,意味着极端交易对SOFR的影响被大幅削弱,利率更具稳健性。
以下为SOFR计算逻辑的伪代码示意:
# 输入:当日所有合格隔夜回购交易
trades = load_repo_trades(date)
trades = filter(trades,
collateral == "US_Treasury",
tenor == "O/N",
rate <= special_rate_threshold)
# 按利率升序排列,计算累计成交量
trades_sorted = sort(trades, by="rate")
total_volume = sum(trades_sorted.volume)
cumulative = 0
# 找到累计成交量首次超过50%的利率
for trade in trades_sorted:
cumulative += trade.volume
if cumulative >= total_volume * 0.5:
SOFR = trade.rate
break
publish(SOFR, time="08:00 ET", date=next_business_day)
三、发布机制与隔夜利率特性
SOFR的发布机制具有三个鲜明特征:
- 回溯性:SOFR是“后视镜”利率,今天发布的SOFR反映的是昨天发生的交易。这与LIBOR的“前瞻性”报价形成根本对立。
- 每日发布:每个纽约工作日发布一次,节假日顺延。发布主体为纽约联储,具有官方权威性。
- 无期限结构:SOFR本身只有隔夜期限,但通过衍生品市场(如SOFR期货、SOFR互换)可以构建出1个月、3个月、1年乃至30年的期限结构。
隔夜利率特性带来两个重要后果:第一,SOFR不能直接用于计算一个为期3个月的贷款利息,必须通过复利计算将每日SOFR滚动累积;第二,SOFR对货币政策变化极为敏感,美联储调整IOER或ON RRP利率时,SOFR几乎同步反应。
教学提示:SOFR的隔夜属性意味着它更像“每日重置的浮动利率”,而非“固定期限利率”。在构建曲线时,必须区分“SOFR隔夜利率”与“SOFR期限利率”(Term SOFR),后者由CME等机构基于期货市场推导,并非纽约联储官方发布。
四、SOFR与LIBOR的关键差异
理解SOFR与LIBOR的差异,是掌握多曲线框架的起点。下表从七个维度进行对比:
| 对比维度 | SOFR | LIBOR |
|---|---|---|
| 利率性质 | 有担保、实际交易利率 | 无担保、报价利率 |
| 形成机制 | 成交量加权中位数 | 银行专家判断报价 |
| 期限结构 | 仅隔夜,期限利率由衍生品推导 | 直接提供7个期限(O/N至12M) |
| 前瞻/回溯 | 回溯性(后视) | 前瞻性(预判) |
| 信用风险 | 几乎无信用风险(国债抵押) | 包含银行信用风险溢价 |
| 发布主体 | 纽约联储 | ICE Benchmark Administration |
| 监管地位 | 替代LIBOR的首选RFR | 2023年6月后逐步退出 |
这些差异直接影响了曲线构建:LIBOR曲线需要包含银行信用溢价和期限溢价,而SOFR曲线是无风险曲线,其期限结构完全由市场对未来隔夜利率的预期决定。在多曲线框架中,SOFR通常作为贴现曲线(Discounting Curve)的基准,而LIBOR(或Term SOFR)则作为预测曲线(Forecasting Curve)的基准。
常见误区:许多初学者将SOFR直接当作“新的LIBOR”使用,试图用SOFR隔夜利率直接折现3个月现金流。这是错误的。SOFR必须通过复利公式转换为期限利率,或通过SOFR OIS互换曲线进行贴现。忽略这一差异会导致估值偏差,尤其在利率波动加剧时。
五、案例场景:SOFR复利计算实战
假设某笔贷款约定利率为“3个月SOFR复利+150bp”,计息期为2024年1月2日至2024年4月2日。我们需要将每日SOFR滚动复利,得到3个月期的实际利率。计算逻辑如下:
# 输入:每日SOFR利率(年化,ACT/360)
sofr_rates = {
"2024-01-02": 0.0530,
"2024-01-03": 0.0531,
...
"2024-04-01": 0.0528
}
# 复利公式:Product(1 + SOFR_i * days_i/360) - 1
compound_rate = 1.0
for date, rate in sofr_rates.items():
days = 1 # 每个工作日计1天
compound_rate *= (1 + rate * days / 360)
compound_rate -= 1
loan_rate = compound_rate + 0.0150 # 加150bp利差
print(f"3个月SOFR复利利率: {compound_rate:.6f}")
print(f"贷款实际利率: {loan_rate:.6f}")
这一计算过程体现了SOFR的核心操作逻辑:每日重置、滚动复利、后置确定。在构建SOFR OIS曲线时,我们需要用类似逻辑将未来各期限的隔夜利率预期转换为零息利率,再通过bootstrapping方法逐段推导。