债券收益率计算差一点:计息基准ACT与30/360核验
债券收益率只差一点,可能是应计利息与折现期限采用了不同日计数。本例将同一结算日分别放进ACT/365F与明确的30E/360构造约定,保持净价和未来金额不变,逐项追踪差额。两种方法都不自动代表某一市场应使用的正式规则。
起止日期与现金流怎样固定?
虚构合同前一付息日为2026年1月15日,结算日为2026年3月1日,下一付息及到期日为2027年1月15日。每百元面值下期收到本金100与固定票息4元,净价设100元,无费用税与其他现金流。票息4元是明确的到期支付额,不再随日数重新调整全年总额。
ACT/365F采用日期对象相减得到真实天数,再除365。30E/360在本练习中明确用每月30天、日号取原日号与30的较小值,再按年差乘360、月差乘30、日号差求合成天数。两端日号都不是月末特殊日,因此本例不靠复杂月末规则制造差额。
| 约定 | 已过日数 | 剩余日数 | 年分母 | 应计元 | 全价元 | 剩余年数 | 有效年率 |
|---|---|---|---|---|---|---|---|
| ACT/365F | 45 | 320 | 365 | 0.49315068 | 100.49315068 | 0.87671233 | 3.99004115% |
| 30E/360 | 46 | 314 | 360 | 0.51111111 | 100.51111111 | 0.87222222 | 3.98967969% |
每百元应计利息按4乘已经过的年比例计算,全价为100加应计利息;未来104元按各方法的剩余年比例求有效年收益率,即一百零四除全价,再取剩余年比例倒数次方,减一。两个方法都要同时调整分子成本与期限,不能只改一边。
实际日数和合成日数如何独立核验?
实际经过天数可以拆成1月15日至2月1日、2月完整月份和3月1日边界,分段相加;程序再用日期差核对。合成天数则按两个完整30天月减日号差,得到另一结果。把两条计算过程保留,能区分真实日历差异与日数公式实现差异。
剩余期限也从结算日算到下一付息日,不是用一减已过天数比例随意补出。ACT年度长度、本例365分母与付息间隔天数恰好相容;换成闰年或其他合同,已过和剩余的加总关系需要重新核查。不要在一端按365、另一端按360,却仍把它们称为同一计息期间。
ACT这个前缀本身不够完整。ACT/360、ACT/365F、按实际日历年分段等都有不同分母含义。30/360也有不同月末和二月处理细则。遇到只有简称的输入,先保留约定未知,不能挑一个库的默认值就说还原了合同。
只更改应计利息会造成什么错配?
若将应计额换成30E/360,却仍用ACT剩余期限求解,得到的是混合模型,既非本表第一行也非第二行。差异可能很小,仍然属于结构口径问题。最有用的检查是列出「应计用的约定」与「折现期限用的约定」两列,确认是否有明确理由不同。
正式债券定价还可能采用单期收益率与付息周期分数,而不是本例有效年乘方模型。本页选择一个到期支付的透明方程,用来检查日数如何进入输入,不声称完全复刻任何交易系统YTM。实际合同若有专门定价惯例,应按它重建现金流方程,而不是强迫结果与本页一致。
把净价改成99元,两种方法都必须先加各自应计额形成新全价,再求同一104元未来金额的折现率。若只把价格差直接加到收益率,便跳过了非线性求解。这个条件变化也能检查程序是否把净价与全价混作同一个成本字段。
月末、闰日和结算顺延需要分开什么?
日历上不存在2月30日,但30天月算法的合成日数可以作为规则产物存在;它不是实际经过的自然日。表格应分别标「实际天数」和「约定天数」,不要把合成数再拿去推算现实到账日期。日期加减与金融年分数转换,是两个不同动作。
结算日遇非营业日是否顺延、顺延后是否多计利息,也应查合同与结算安排。本例所有日期仅用于日期差实验,不核定实际交易日历,也不构造任何真实交易建议。知道两个日期相隔若干天,不代表已确认这两个日期都能办理相应业务。
[!pitfall] 不要用最后金额最接近的日计数反推合同规则。多个误差可能碰巧抵消;原始条款、日数过程和现金流方程应分别可追溯。
债券图鉴给出基础框架,年化收益率核算帮助辨认年率。日计数工具可作基础日期参照,本文ACT与30E规则由表格独立演算,不承诺工具支持全部合同惯例。输出的小数差只说明构造模型不同,没有据此判断真实债券便宜或昂贵。
另一个人只拿到结果,怎样重做核验?
把三组日期按明确格式重建,先计算实际经过日数与实际剩余日数,再独立执行三十天月算法。不要从收益率倒推日数,因为反推会混入价格和舍入误差。接着各自生成应计额与全价,最后用对应剩余年数折现一百零四元。输出除了年率,还应保留年分数与全价,方便判断不一致最早出现在哪一层。
若把结算日改到前一付息日,应计额应为零,剩余期约等于完整年度;改到下一付息前一天,年率求解对小期限和价格尾差更敏感,不能据此证明某套约定失效。临近到期时,几分钱误差除以很短期限后可能形成显眼年化差异,应优先提高输入核对精度。
这种敏感性也解释为什么「只差一点」不能直接归为系统误差:可能是一天日数、一个价格分位,或完全不同的年化定义。把日历、合同年分数与输出收益率分层保存,才能把原因逐步收窄。
若资料只有一个收益率而缺少结算日和日计数,应标记为无法完整复算。收益率看似精确到六位,并不能补回缺失的计息条件。本文没有替任何真实发行条款选定基准,取得有效合同后,应将其日计数细节作为独立版本重新计算并保存。
计算与来源怎样复核?
Python日期运算文档用于核对日期差实现;不替代任何金融合同的计息约定。来源核对日:2026-10-23。
署名:道积君编辑组。本文由AI辅助起草,所有数据为构造教学示例,金额、日期与公式经程序复算,不是实盘、真实市场历史或第三方框架运行结果。仅作投资教育,不推荐证券、平台或产品,不预测或保证收益。
复算资料
本篇编号为DJ083。可下载Python核算脚本(文本)与完整输入输出JSON,对照文中表格复算。脚本文件改存为.py后可用Python运行;数据均为构造教学样本。