返回题库

固收 Tips Inflation Linked

Fi Tips Inflation Linked

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

题目详情

固收 TIPS 通胀保值债券。初始本金 1000 美元,发行时 CPI 为 250,一年后 CPI 为 260。计算调整后的本金。

英文原题

You are analyzing a Treasury Inflation-Protected Security (TIPS) with an initial principal of 1,000 dollars. The original Consumer Price Index (CPI) at issuance was 250. One year later, the CPI is reported as 260. What is the adjusted principal of the TIPS bond after this one-year period?

解析

问题分析

You are analyzing a Treasury Inflation-Protected Security (TIPS) with an initial principal of 1,000 dollars. The original Consumer Price Index (CPI) at issuance was 250. One year later, the CPI is reported as 260. What is the adjusted principal of the TIPS bond after this one-year period?

解法

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

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

验证

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

复杂度与边界

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

英文解析

Analysis

A Treasury Inflation-Protected Security (TIPS) adjusts its principal based on changes in the Consumer Price Index (CPI). When inflation rises, the principal is adjusted upward, and both the coupon payments and the final principal repayment benefit from this inflation adjustment.

Given: initial principal = $1,000, original CPI = 250, current CPI = 260. The adjusted principal is computed by scaling the initial principal by the ratio of current CPI to original CPI.

Solution

Adjusted Principal = Initial Principal * (Current CPI / Reference CPI)

P_adj = 1000 * (260 / 250) = 1000 * 1.04 = $1,040

The inflation adjustment factor is 260/250 = 1.04, meaning a 4% cumulative inflation increase.

def tips_adjusted_principal(initial_principal, ref_cpi, current_cpi):
    """Compute TIPS inflation-adjusted principal."""
    inflation_factor = current_cpi / ref_cpi
    return initial_principal * inflation_factor

def tips_coupon_payment(adjusted_principal, coupon_rate, period=0.5):
    """Compute semi-annual coupon on adjusted principal."""
    return adjusted_principal * coupon_rate * period

# Example: coupon rate 2%, semi-annual
adj_principal = tips_adjusted_principal(1000, 250, 260)  # = 1040
coupon = tips_coupon_payment(adj_principal, 0.02)  # = 1040 * 0.02 * 0.5 = 10.40

At maturity, the investor receives the greater of the adjusted principal or the original principal (deflation protection floor).

Complexity & Edge Cases

  • Time complexity: O(1) for simple CPI ratio computation
  • Space complexity: O(1)
  • Edge cases: (1) Deflation -- CPI drops below reference. TIPS have a floor at original principal; investor never receives less than $1,000 at maturity. (2) Index lag -- CPI is published with a ~3-month lag, so the "current" CPI used is actually from 3 months prior. (3) Seasonal CPI fluctuations can create temporary distortions. (4) Very high inflation (>10%) makes the adjusted principal significantly larger than par.

Verification

With initial principal $1,000, CPI moving from 250 to 260:

  • Inflation factor = 260/250 = 1.04
  • Adjusted principal = 1,0001.04=1,000 * 1.04 =1,040
  • If coupon rate = 2%, semi-annual payment = 1,04011,040 * 1% =10.40 (vs. $10 on unadjusted)

If CPI drops to 240: inflation factor = 240/250 = 0.96, adjusted principal = 960,butmaturityfloor=960, but maturity floor =1,000.

Key Considerations

  • TIPS real yield = nominal yield - breakeven inflation rate
  • Breakeven inflation = difference between nominal Treasury yield and TIPS yield for same maturity
  • TIPS underperform nominal Treasuries when realized inflation < breakeven inflation
  • Tax treatment: inflation adjustment to principal is taxable annually (phantom income), reducing effective real yield
  • Liquidity: TIPS market is less liquid than nominal Treasuries, creating wider bid-ask spreads