技术博客

利息摊余与实际利率法:债券估值的迭代求解

第 86 / 141 篇 · 2025-12-11 · secfin · 债券估值实际利率法摊余成本

债券估值里最反直觉的一条规则:一只票面利率 6% 的债券,会计上确认的利息收入几乎从来不是"面值 × 6%"。只要买入价不等于面值(溢价或折价买入),实际利息收入就由买入时锁定的"实际利率"决定,票面利息和利息收入之间的差额,每天都在摊薄买入时的溢折价。这套规则叫实际利率法,CAS 22 要求所有按摊余成本计量的金融资产必须采用。

为什么票面利率不是真实收益

票面利率是发行时定死的,反映的是发行时点的市场利率。你在二级市场买入时,市场利率可能早就变了:买入价 104 元(面值 100),说明你为每 100 元本金付了 4 元溢价,真实回报必然低于票面 6%。反过来折价买入的真实回报高于票面。

会计上把这 4 元溢价当作"多付的钱要在持有期里逐期收回来"——利息收入 = 实际应收利息 − 溢价摊销。所以利息收入从持有初期就比票面利息低,且逐年变化(实际利率法下逐期递增/递减)。

实际利率:一个方程解一个未知数

实际利率 $r$ 的定义:使债券未来全部现金流(每期票面利息 + 到期本金)按 $r$ 折现的现值恰好等于买入价(公允价值 + 交易费用)的折现率:

$$ P = \sum_{t=1}^{T} \frac{C}{(1+r)^{\,t/ m}} + \frac{F}{(1+r)^{\,T}} $$

其中 $C$ 是每期票面利息,$F$ 是面值,$T$ 是剩余期限(折现因子按付息频率 $m$ 折算)。这个方程对 $r$ 没有解析解,系统里用数值迭代。

工程上首选二分法:$r$ 在 $(0, 1)$ 之间单调递减地使 NPV 逼近 $P$(NPV 对 $r$ 严格单调递减,二分一定收敛),几十轮迭代就能到 1e-10 精度。牛顿法收敛更快但要算导数(修正久期),溢折价极端的债券上初始值不好会给错根。实务折中:先用久期近似估初值,牛顿两轮不收敛就退二分。算出来的 $r$ 落库,作为这只券持有期内的不变参数——买入时锁定,之后不再重算,除非发生减值预期变化或重分类。

摊余成本的逐期滚动

$r$ 定了之后,每期账务机械滚动:

$$ \text{利息收入}_t = A_{t-1} \times r, \qquad A_t = A_{t-1} + \text{利息收入}_t - C_t $$

$A_t$ 是期末摊余成本,$C_t$ 是当期实际收到的票面利息。把两式合起来:

$$ A_t = A_{t-1}(1+r) - C_t $$

走一个数值例子:面值 100,票面利率 6%(年付息 6),3 年期,买入价 104(溢价 4)。解出实际利率 $r \approx 4.64\%$(代入验证:$6/1.0464 + 6/1.0464^2 + 106/1.0464^3 \approx 104.0$ ✓)。

期 期初摊余 $A_{t-1}$ 利息收入 $=A_{t-1}\times 4.64\%$ 票面流入 6 期末摊余
1 104.00 4.83 6 102.83
2 102.83 4.77 6 101.60
3 101.60 4.71 6 100.31
到期 — — 100 本金 0

数字说明三件事:利息收入逐年递减(因为摊余成本在缩向面值);三年利息收入合计 14.31 ≈ 票面利息 18 − 溢价 4(差 0.31 是舍入);到期摊余回到面值,溢价摊销完毕。折价买入方向相反:利息收入 > 票面利息,摊余成本逐年爬升到面值。

估值系统按日计提,实务公式是当日利息 = 摊余成本 × 实际利率 / 当年实际天数(而不是一律 365),闰年和跨闰年边界要测。

三类资产的处理差异

实际利率法只决定利息收入怎么确认,市值波动进不进损益是另一件事,由资产分类(CAS 22 三分类)决定:

  • FVTPL(交易性):按公允价值计量,变动直接进当期损益。摊余成本照算,但只作利息收入的依据,账面上天天按市值调。
  • AC(债权投资/持有收息):按摊余成本计量,不盯市值。风险是信用恶化——所以 AC 资产绑着 IFRS9 三阶段减值,预期信用损失计提进损益(《IFRS9 预期信用损失减值》篇展开)。
  • FVOCI(其他债权投资):摊余成本计量利息,市值变动进其他综合收益(不进当期损益),处置时 OCI 转回损益。银行账上大量债券在这个科目,系统上要比 AC 多维护一条 OCI 科目线。

货币基金是特例:按监管要求用摊余成本 + 影子定价双轨(《货币基金的特殊性》篇展开)——日常按摊余成本法出净值,同时用市场利率重估一遍,偏离超过阈值就触发调整。实际利率法的计算骨架和上面完全一样,只是计量单元从"每只券"变成"每类资产组合"。

实际利率法:从买入价到逐日计提 t=0:买入,确定实际利率 r NPV(r) = P,二分/牛顿迭代求解 r 持有期内锁定不变 每日计提:利息收入 = 摊余成本 × r / 当年天数 闰年按实际天数(366) 收票面:C = 面值 × 票面利率 溢价买入时 C > 利息收入 差额冲减摊余成本 摊余成本逐期滚动 A_t=A_{t-1}(1+r)−C_t 溢价:A 递减;折价:A 递增 到期:摊余成本 = 面值 溢/折价摊销完毕,利息收入合计 = 票面利息总额 ± 溢折价 例:面值 100、票息 6%、3 年、买入价 104 → r≈4.64%,利息收入逐年递减,到期摊余回到 100