填补报价之间的空白
美国国债只报十个期限,其余都靠插值。scipy.interpolate 提供了标准工具。np.interp 用直线连接报价:简单且不会过冲,但斜率在每个报价处跳变。CubicSpline(x, y, bc_type='natural') 用一阶、二阶导数连续的光滑曲线连接;光滑的代价是报价之间可能过冲,在报价范围之外会发散,所以不应外推。PchipInterpolator(x, y) 同样光滑但保形:数据上升的地方它上升,所以不会凭空造出驼峰。三者都经过每个报价,区别在于报价之间,以及它们对曲线派生出的一切的影响。
这些差异很重要,因为派生的量会把它们放大。贴现因子是 D(t)=e^(-y(t) t/100),两个日期之间的远期利率是其对数的斜率 f=-Δln D/Δt×100。收益率的一个小拐点会变成远期利率上明显的跳变。2026 年 10 月 9 日的 15 年期收益率,线性插值为 5.445%,自然三次样条为 5.464%,PCHIP 为 5.493%;在 120 点网格上相邻远期利率之间的最大跳变,线性曲线为 0.91 个点,样条约为 0.21。在 2000 年 1 月 3 日的倒挂曲线上,样条的远期利率跌到 4.76% 和 4.63%,而线性的保持在 5.63%。没有最好的方法,只有有意识的选择:定价用光滑的远期曲线,风险用保形,不能凭空创造任何东西时用朴素的直线。
- 三者都经过报价:区别在报价之间以及它们隐含的远期利率。
- 远期利率是对数贴现因子的斜率:收益率的任何拐点都会表现为跳变。
- 不要外推三次样条:只在报价之间使用。
实验:评分内容
- 三种插值20 分
- 贴现因子10 分
- 远期曲线20 分
- 粗糙度10 分
- 比较各方法15 分
- 一个真实交易日25 分