奇数期债券函数计算器
ODDFPRICE/ODDFYIELD/ODDLPRICE/ODDLYIELD:首期或末期长度不规则的债券价格与收益率。
- 免费免注册
- 结果可分享链接
- 浏览器本地计算
首期不规则 · 由收益率求价格
计算过程的关键中间量
| 项目 | 数值 | 说明 |
|---|---|---|
| 奇数首期跨越的准周期数 NC | 2 | 大于 1 就是长首期,首期比一个标准付息周期还长 |
| 首期票息折算系数 ΣDC/NL | 1.22527473 | 首期票息相当于几个标准票息,短首期小于 1 |
| 首期实际票息(每 100 面值) | 1.960440 | 标准期票息 1.600000 |
| 发行日到首次付息日天数 DFC | 225 | 按基准 1 口径数出来的天数 |
| 结算日到本准周期末天数 DSC | 170 | 折现指数的分子 |
| 准周期标准长度 E | 184.00 | Excel COUPDAYS 口径,30/360 系恒为 360/频率 |
| 首笔现金流折现指数 | 0.92391304 | = 跨过的整准周期数 + DSC/E |
| 已计息比例 ΣA/NL | 0.30136168 | 发行日到结算日已经跑了多少个准周期 |
| 应计利息(每 100 面值) | 0.482179 | 净价里已经扣掉了这一块 |
| 首期之后的规则票息笔数 N | 13 | 含到期日那一笔 |
| 全价(净价 + 应计) | 98.636054 | 实际交割掏出去的钱 |
收益率再挪一挪,净价变多少
| 年化收益率 | 净 价(每 100 面值) |
|---|---|
| 2.0000% | 107.758831 |
| 2.5000% | 104.442632 |
| 3.0000% | 101.242444 |
| 3.5000% | 98.153875 |
| 4.0000% | 95.172711 |
| 4.5000% | 92.294906 |
| 5.0000% | 89.516578 |
本工具按微软对 ODDFPRICE / ODDFYIELD / ODDLPRICE / ODDLYIELD 的公开定义实现,面值固定按 100 计, 赎回价与净价都是每 100 面值口径。ODDL 家族的折现按定义走单利而非复利,这是原始定义如此,不是简化。 模型不含节假日顺延、实际交割日调整、税费与违约风险;国内银行间与交易所市场的计息与结算惯例 与 Excel 的 basis 参数并不总能一一对应,对账请以托管机构和交易场所公布的口径为准。
怎么用
5 步- 先分清是首期怪还是末期怪:发行日到第一次付息之间的那段比标准付息周期长或短,用 ODDF 家族;最后一次规则付息到兑付之间那段不规则,用 ODDL 家族。判断错了参数栏都对不上,因为两个家族要的日期根本不是同一组。
- 按日期约束填四个日期:ODDF 家族必须满足发行日 < 结算日 < 首次付息日 < 到期日;ODDL 家族必须满足末次付息日 < 结算日 < 到期日。这和 Excel 的约束一模一样,填反了 Excel 返回 #NUM!,本工具会给一句中文提示。
- 填票面利率、赎回价与付息频率:票面利率填发行时定好的年利率,不是市场收益率。赎回价按每 100 面值填,正常到期兑付面值就填 100,提前赎回条款有溢价才改。付息频率决定准周期有多长,直接影响奇数期折算成几个标准票息。
- 把日计数基准和合同对齐:五个基准值算出来不是同一个数。合同或募集说明书写的是 30/360 就选 0 或 4,写实际天数就选 1 到 3。这一栏是整个计算里最容易被忽略、又最容易造成对账差额的地方。
- 看中间量表,不要只看那一个数:结果下面列出了准周期数、首期票息折算系数、应计天数、折现指数。判断有没有填错,看这几个中间量比看最终价格快得多:比如准周期数是 2 就说明这是长首期,如果你以为它是短首期,那就是日期填错了。
奇数期是怎么冒出来的
债券的付息日通常是固定的日历日,比如每年 3 月 1 日和 9 月 1 日各付一次。 可发行日是市场决定的,谁也没法保证正好落在付息日上。 一张 1 月 20 日发行、9 月 1 日第一次付息的半年付债券,第一段计息期只有七个多月, 比标准的六个月多一点;如果它 6 月发行,第一段就只有两个多月,比标准少一大截。 这多出来或少掉的那一截,就是奇数期。
普通的 PRICE 和 YIELD 假设每一期都一样长,遇到奇数期直接失效。 Excel 为此单独准备了四个函数:首期不规则用 ODDFPRICE 和 ODDFYIELD, 末期不规则用 ODDLPRICE 和 ODDLYIELD,每一对里前者由收益率求价格、后者由价格反解收益率。 末期不规则要少见得多,通常出现在提前赎回、条款重组或者到期日被单独约定过的品种上。
参数含义对照
结算日不是今天。 它是这笔交易实际交割、钱货两清的那一天,通常比成交日晚一到两个工作日。 Excel 只认你填进去的日期,不会帮你顺延节假日,所以填之前要先确认交割日到底是哪天。
首次付息日与末次付息日是两套语义。 ODDF 家族要发行日加首次付息日,用来框定那个不规则的开头; ODDL 家族要末次付息日,用来框定那个不规则的结尾。 这也是本工具把两组日期分开存的原因,切换标签不会把另一边的日期改成非法值。
赎回价按每 100 面值填。 正常到期兑付面值就是 100,带提前赎回条款、按 102 或 103 赎回的才改这一栏, 而且这时候到期日应该填赎回日,算出来的是到赎回日的收益率,不是到期收益率。
日计数基准决定天怎么数。 基准 0 和 4 都按每月 30 天、每年 360 天,区别在月末 31 号的处理; 基准 1 用真实天数除以真实年长度;基准 2 分子数真实天数、分母却按 360 天;基准 3 分母按 365 天。 合同写的是哪一种就选哪一种,这一栏不该靠默认值蒙。
为什么 Excel 和券商系统对不上
这是所有 Excel 债券函数共同的问题,在奇数期上被放得更大。 按命中率排序,第一位是日计数基准。Excel 那五个基准值来自美国市场惯例, 国内银行间市场与交易所市场的计息规则跟它们不是一一对应的关系, 硬套一个「差不多」的基准,应计天数就会差出几天,价格随之偏离。
第二位是结算日惯例。真实交割日被 T+1 结算规则和法定假日推着走, Excel 完全不管这些,你填哪天它就算哪天。差一天在普通债券上问题不大, 在奇数期上却可能把结算日推到另一个准周期里去,折现指数直接跳一格。 第三位才是报价小数位、取整规则这些小差别。对账时按这个顺序查,比乱翻公式快。
还有一个隐蔽的差别:ODDLPRICE 用的是单利折现而不是复利。 末期只剩一笔现金流,货币市场惯例就是线性折现,公式里根本没有幂次。 有些系统在这一段用了复利,两边结果自然对不上,而且差额会随剩余期限拉长而变大。
怎么用它做判断
拿到一张新发行的债券报价,最实用的做法是先反解。 把发行日、首次付息日、结算日和对方开的价填进去,用 ODDFYIELD 解出年化收益率, 这个数才是可比的。同期限、同信用等级的其他品种给多少,一对就知道这笔买卖贵还是便宜。 光看「比面值低两块」没有任何信息量,因为奇数首期的存在会让票息本身就和标准期不一样多。
反过来,你心里如果先有一个门槛,比如这类债至少要给到某个收益率才值得占用资金, 那就切到 ODDFPRICE,把门槛填进收益率栏,工具直接告诉你对应的净价是多少。 这就是你的出价上限。一句主观的要求被翻译成一个可以直接报出去的价格, 这是这四个函数在实务里最省事的用法。
结果下面那张收益率梯子是同一件事的批量版:把当前收益率上下各挪一个半百分点重算了一遍。 看一眼净价摆动的幅度,就知道这张券对利率有多敏感,比背久期公式直观。
常见误区
把首期不规则和末期不规则搞混。 判断很简单:不规则的那一段在开头还是结尾。开头用 ODDF,结尾用 ODDL。 两个家族要的日期完全不同,选错了连参数栏都填不满,这时候别硬填,退回去重新判断。
结算日过了首次付息日还在用 ODDF。 第一期一旦付完就翻篇了,剩下全是标准周期,这张债券对买方而言就是普通债券, 该用 PRICE 和 YIELD。Excel 在这种情况下返回 #NUM!,不是它算不了,是它在提醒你选错了函数。
拿净价当成实际付出去的钱。 结果里的主数字是净价,真正划账的是全价,两者差一个应计利息。 奇数期的应计比例本身就是个不规则的分数,这个差额比普通债券更显眼,别忽略。
只盯着最终价格,不看中间量。 准周期数是 1 还是 2,直接告诉你这是短首期还是长首期; 首期票息折算系数小于 1 就是短、大于 1 就是长。这些中间量对不上你的预期, 说明日期填错了,比反复核对最终价格有效得多。
边界与假设
本工具按微软对这四个函数的公开定义实现,面值固定按 100 计, 赎回价与净价都是每 100 面值口径。模型假设票息按约定足额到账、发行人不违约、 收益率在剩余期限内恒定,不含节假日顺延、实际交割日调整、税费与交易成本, 也不处理含权条款的行权路径。ODDFYIELD 用数值方法逼近,小数点后若干位的残差是迭代精度,不是错误。 与托管机构、交易场所对账,请以对方公布的计息与结算口径为准。
风险提示:本工具仅为测算演示,不构成投资建议。债券投资存在利率风险与信用风险,理论价格不等于可成交价格,实际交易请以券商报价与合同约定为准。
常见问题
7 条什么样的债券才需要用这四个函数?
为什么 Excel 算出来的价格和券商系统对不上?
ODDLPRICE 为什么用单利折现,不用复利?
准周期到底是什么,为什么要用它来切分奇数期?
净价、全价、应计利息在这里是什么关系?
结算日已经过了首次付息日,还能用 ODDF 吗?
赎回价填 100 以外的数是什么场景?
本工具仅为测算演示,不构成投资建议。计算结果受输入假设影响,实际情况请以官方规定与金融机构公布为准。