返回题库

固收 Ois Sofr Spread

Fi Ois Sofr Spread

专题
Algorithmic Programming / 算法编程
难度
L2
来源
MyntBit

题目详情

OIS 利率是指定期限内隔夜利率期望平均值折现到今天的固定利率。SOFR 是以国债证券担保的隔夜借贷现金成本的广义衡量。当 OIS-SOFR 利差显著扩大时,最可能的解释是什么?

任务:OIS-SOFR 扩大意味着银行间无担保借贷利率(OIS 隐含)高于有担保借贷利率(SOFR),反映信用风险和流动性压力增加。在金融压力期间,银行对无担保借贷要求更高溢价。此利差是金融系统压力的重要指标。

英文原题

The Overnight Index Swap (OIS) rate is a fixed rate for the expected average of overnight rates over a specified term, discounted back to today. SOFR (Secured Overnight Financing Rate) is a broad measure of the cost of borrowing cash overnight collateralized by Treasury securities.
Consider a scenario where the OIS-SOFR spread widens significantly. What is the most likely interpretation of this widening spread?

解析

问题分析

The Overnight Index Swap (OIS) rate is a fixed rate for the expected average of overnight rates over a specified term, discounted back to today. SOFR (Secured Overnight Financing Rate) is a broad measure of the cost of borrowing cash overnight collateralized by Treasury securities.
Consider a scenar

解法

根据题目要求实现相应功能。核心逻辑需要:

// 核心数据结构和方法——根据题目 API 约定实现
// 1. 确定状态表示——选择支持所需操作的数据结构
// 2. 实现核心算法——确保 O(·) 时间复杂度和正确性
// 3. 处理边界条件——空输入、极值参数、并发访问

验证

用具体输入验证:构造已知输入的测试用例,确认输出匹配预期结果。

复杂度与边界

  • 时间复杂度:取决于选用的算法
  • 空间复杂度:取决于数据规模
  • 关键边界条件:空输入、极值参数、并发场景下的正确性保证

英文解析

Analysis

The OIS-SOFR spread measures the difference between the Overnight Index Swap (OIS) fixed rate and the realized SOFR rate. A widening OIS-SOFR spread indicates stress in the secured overnight funding market -- banks are willing to pay a premium above expected SOFR to lock in fixed overnight borrowing costs, signaling perceived risk in overnight cash markets.

During normal conditions, the OIS-SOFR spread is minimal because banks expect SOFR to approximate their actual overnight borrowing cost. When the spread widens significantly, it most likely reflects increased counterparty credit risk or collateral scarcity in the repo market, making secured overnight borrowing more expensive than expected.

Solution

def ois_sofr_spread(ois_rate, realized_sofr):
    """Simple spread calculation."""
    return ois_rate - realized_sofr

def ois_par_rate(swap_tenor, sofr_forecasts, discount_factors):
    """Compute OIS par rate: fixed rate making swap PV = 0."""
    floating_pv = sum(sofr_forecasts[i] * discount_factors[i]
                      for i in range(swap_tenor))
    df_sum = sum(discount_factors)
    return floating_pv / df_sum  # simplified for flat daily averaging

Interpretation of widening spread:

  • Normal: OIS approx expected avg SOFR, spread approx 0-5bps
  • Moderate stress: Banks pay premium for certainty, spread = 10-30bps
  • Severe stress (e.g., March 2020): Repo market disruption, spread = 50-100+bps

Complexity & Edge Cases

  • Time complexity: O(N) for daily compounding, N = days in swap tenor
  • Space complexity: O(N) for daily rate arrays
  • Edge cases: (1) SOFR spikes on quarter-end/balance sheet reporting dates (window dressing). (2) Negative SOFR (rare but possible) creates unusual spread dynamics. (3) OIS-SOFR vs. FRA-SOFR basis: different instruments reflect different market expectations. (4) Transition from LIBOR to SOFR created temporary basis volatility.

Verification

Historical example:

  • March 2020: 1M OIS approx 0.15%, realized SOFR approx 0.01%, spread approx 14bps (moderate stress)
  • Peak stress day: SOFR spiked to 2%+ while OIS was 0.2%, inverted spread momentarily
  • Normal period: 1M OIS approx 5.30%, SOFR approx 5.28%, spread approx 2bps

Key Considerations

  • OIS-SOFR spread is the modern equivalent of the former LIBOR-OIS spread (FRA-OIS spread)
  • Widening spread signals secured funding stress -- unlike unsecured measures (FRA-OIS reflecting bank credit risk)
  • Fed repo operations directly affect SOFR levels -- Fed intervention compresses the spread
  • Term SOFR rates (1M, 3M) vs. overnight SOFR create additional basis spreads for different swap tenors