返回题库

固收 Duration Convexity Approximation

Fi Duration Convexity Approximation

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

题目详情

某债券修正久期 7,凸度 50。若利率上升 50 个基点(0.5%),债券价格的近似百分比变化是多少?

任务:使用久期-凸度近似:ΔP/P ≈ -久期 × Δy + 0.5 × 凸度 × Δy² = -7 × 0.005 + 0.5 × 50 × 0.005² = -0.035 + 0.000625 = -3.4375%。仅久期近似为 -3.5%,凸度修正 +0.0625%,说明凸度对大利率变动提供重要修正。

英文原题

You are a bond trader at a major investment bank. You are analyzing a bond with a modified duration of 7 and a convexity of 50. If interest rates increase by 50 basis points (0.5%), what is the approximate percentage change in the bond's price, using the duration-convexity approximation?

解析

问题分析

You are a bond trader at a major investment bank. You are analyzing a bond with a modified duration of 7 and a convexity of 50. If interest rates increase by 50 basis points (0.5%), what is the approximate percentage change in the bond's price, using the duration-convexity approximation?

解法

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

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

验证

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

复杂度与边界

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

英文解析

Analysis

The duration-convexity approximation estimates a bond's percentage price change for a given yield shift using both duration (first-order) and convexity (second-order) terms. Duration alone gives a linear approximation; adding convexity improves accuracy, especially for larger rate moves.

Formula: DeltaP/P approx -D_mod * DeltaY + 0.5 * C * (DeltaY)^2

Given: Modified Duration = 7, Convexity = 50, DeltaY = +0.5% (+50bps).

Solution

DeltaP/P approx -7 * 0.005 + 0.5 * 50 * (0.005)^2
= -0.035 + 0.5 * 50 * 0.000025
= -0.035 + 0.000625
= -0.034375

The bond's price decreases approximately 3.4375%.

def duration_convexity_approx(mod_duration, convexity, delta_y):
    """Estimate percentage price change using duration + convexity."""
    duration_effect = -mod_duration * delta_y
    convexity_effect = 0.5 * convexity * delta_y**2
    return duration_effect + convexity_effect

def absolute_price_change(mod_duration, convexity, delta_y, price):
    """Estimate absolute dollar price change."""
    pct_change = duration_convexity_approx(mod_duration, convexity, delta_y)
    return price * pct_change

Complexity & Edge Cases

  • Time complexity: O(1) for closed-form approximation
  • Space complexity: O(1)
  • Edge cases: (1) The approximation is a Taylor expansion truncated at second order -- less accurate for very large yield shifts (>200bps). (2) For callable bonds, effective convexity can be negative, reversing the convexity adjustment sign. (3) Convexity definition: some sources use "convexity/100" in the formula -- check convention consistency. (4) For small shifts (1-10bps), duration alone suffices; convexity term is negligible.

Verification

Modified Duration = 7, Convexity = 50, DeltaY = +0.5%:

  • Duration effect: -7 * 0.005 = -3.5%
  • Convexity effect: 0.5 * 50 * 0.0025% = +0.0625%
  • Total: -3.5% + 0.0625% = -3.4375%

If DeltaY = -0.5% (rates decrease):

  • Duration effect: -7 * (-0.005) = +3.5%
  • Convexity effect: 0.5 * 50 * 0.0025% = +0.0625%
  • Total: +3.5625% (asymmetric -- convexity always helps)

Key Considerations

  • Positive convexity is always beneficial: it reduces losses when rates rise and increases gains when rates fall
  • The asymmetry between up and down moves is the "convexity bonus" -- longer-duration, higher-convexity bonds outperform linear estimates
  • Trading implication: buying convexity (via options or long-duration bonds) costs carry but provides insurance against large rate moves
  • Duration-only hedging leaves residual convexity exposure -- convexity-neutral hedging requires additional instruments