今天要整理債券的付息日系列 COUPPCD、COUPNCD 這幾個長得很像的函式,再加上 DURATION、MDURATION,還有算應計利息的 ACCRINT、ACCRINTM。
我沒有在工作上算過債券,這篇當工具書。看債券條款時常會問:下一次付息是哪天、到下次付息還有幾天、已經累積多少利息、利率變動時價格大概會動多少,這些就是這一組在回答的。價格與殖利率的函式在 債券價格函式 那篇。本文所有數字僅示範計算,不是投資建議。
怎麼選
| 想知道 | 用這個 |
|---|---|
| 上一個付息日/下一個付息日 | COUPPCD/COUPNCD |
| 到期前還剩幾次付息 | COUPNUM |
| 這一期已過幾天/整期幾天/還剩幾天 | COUPDAYBS/COUPDAYS/COUPDAYSNC |
| 利率敏感度 | DURATION、MDURATION |
| 已累積的利息金額 | ACCRINT(定期付息)、ACCRINTM(到期付息) |
例子與 day count basis
後面 COUP 系列與存續期間都用同一檔假想債券:2026/07/01 交割,2030/11/15 到期,每年付息 2 次,所以付息日落在每年 5/15 與 11/15。
day count basis 是選填的最後一個參數,沒填等於 0:
| basis | 名稱 | 天數算法 |
|---|---|---|
| 0 | 美國 30/360 | 每月 30 天,一期 360/次數 天 |
| 1 | 實際/實際 | 實際日曆天,一期用實際天數 |
| 2 | 實際/360 | 實際日曆天,一期 360/次數 天 |
| 3 | 實際/365 | 實際日曆天,一期 365/次數 天 |
| 4 | 歐洲 30/360 | 每月 30 天,一期 360/次數 天 |
30/360 規則:天數 = (年差 × 360) + (月差 × 30) + (日差),起日是 31 就當 30;basis 0 迄日是 31 且起日(調整後)是 30 以上時迄日當 30,basis 4 的 31 一律當 30。2 月底的處理上,basis 0 依 NASD 規則把 2 月底當 30 日,basis 4 沒有這條規則。例如到期日是 2030/2/28 時,COUPDAYBS 的 basis 0 是 121 天(2/28 當 30 日),basis 1 是 123 天(實際天數)。
付息日
COUPPCD
交割日之前的上一個付息日。
語法:
COUPPCD:上一個付息日
=COUPPCD(DATE(2026,7,1), DATE(2030,11,15), 2, 0)結果是 2026/05/15。回傳的是日期序號,儲存格要套日期格式才會看到日期。
COUPNCD
交割日之後的下一個付息日。
語法:
COUPNCD:下一個付息日
=COUPNCD(DATE(2026,7,1), DATE(2030,11,15), 2, 0)結果是 2026/11/15。
COUPNUM
交割後到到期日之間還有幾次付息。
語法:
COUPNUM:剩餘付息次數
=COUPNUM(DATE(2026,7,1), DATE(2030,11,15), 2, 0)結果是 9:2026/11 一次,2027 到 2030 每年 2 次共 8 次。
付息期天數
這三個函式一起看最清楚,同一組日期換 basis 的結果:
| basis | COUPDAYBS | COUPDAYS | COUPDAYSNC |
|---|---|---|---|
| 0 | 46 | 180 | 134 |
| 1 | 47 | 184 | 137 |
| 2 | 47 | 180 | 137 |
| 3 | 47 | 182.5 | 137 |
| 4 | 46 | 180 | 134 |
COUPDAYBS
從上一個付息日到交割日的天數。
語法:
COUPDAYBS:5/15 到 7/1
=COUPDAYBS(DATE(2026,7,1), DATE(2030,11,15), 2, 0)basis 0 是 2 × 30 + (1 − 15) = 46;basis 1 用實際日曆天,5/15 到 7/1 是 47 天。
COUPDAYS
包含交割日的那一個付息期,整期有幾天。
語法:
COUPDAYS:整期天數
=COUPDAYS(DATE(2026,7,1), DATE(2030,11,15), 2, 0)basis 0 是 360 ÷ 2 = 180。basis 1 是實際的 5/15 到 11/15,共 184 天。basis 3 是 365 ÷ 2 = 182.5。
COUPDAYSNC
從交割日到下一個付息日的天數。
語法:
COUPDAYSNC:7/1 到 11/15
=COUPDAYSNC(DATE(2026,7,1), DATE(2030,11,15), 2, 0)basis 0 是 180 − 46 = 134,basis 1 是實際天數 137。basis 0 的這個例子,不管是「整期減已過」(180 − 46),還是直接用 30/360 算 7/1 到 11/15(4 × 30 + 14),結果都是 134。
存續期間
存續期間是債券現金流量的加權平均回收時間,單位是年,也用來粗估利率變動 1% 時價格大約變動多少 %。
DURATION
算 Macaulay 存續期間。
語法:
DURATION:票面 4.75%,殖利率 5.8%
=DURATION(DATE(2026,7,1), DATE(2030,11,15), 0.0475, 0.058, 2, 0)結果是 3.9663 年。算法:把每期現金流量(利息 2.375,最後一期加 100)用殖利率折現,乘上時間(年)加權,再除以現值總和。比距離到期的約 4.4 年短,因為中間有領利息。
MDURATION
修正存續期間:DURATION ÷ (1 + 殖利率 ÷ 付息次數)。
語法:
MDURATION:同一檔債券
=MDURATION(DATE(2026,7,1), DATE(2030,11,15), 0.0475, 0.058, 2, 0)結果是 3.8545,驗算 3.9663 ÷ (1 + 0.058 ÷ 2) = 3.8545。意思是殖利率上升 1 個百分點,價格約下跌 3.85%,這是近似。
應計利息
ACCRINT
定期付息債券,從發行日到交割日累積的利息。
語法:
ACCRINT:面額 1000,票面 4.75%
=ACCRINT(DATE(2026,3,1), DATE(2026,9,1), DATE(2026,8,15), 0.0475, 1000, 2, 0)basis 0 下 3/1 到 8/15 是 5 × 30 + 14 = 164 天,利息 = 1000 × 4.75% × 164 ÷ 360 = 21.6389。交割日晚於首次付息日時(例如交割日改成 10/15),Sheets 仍從發行日起算,3/1 到 10/15 是 224 天,結果是 29.5556。
Excel 的 ACCRINT 多一個第 8 個參數 calc_method:填 FALSE 時,交割日晚於首次付息日的部分會從首次付息日起算。Sheets 的官方說明沒有列這個參數,填 FALSE 也不會改變結果。所以在 Excel 明確填 FALSE 的話,這種情況的數字會和 Sheets 不一樣。
ACCRINTM
到期一次付息的證券,發行日到到期日的利息。
語法:
ACCRINTM:basis 0
=ACCRINTM(DATE(2026,3,1), DATE(2026,9,1), 0.0475, 1000, 0)30/360 是 180 天,1000 × 4.75% × 180 ÷ 360 = 23.7500。改成 basis 3,實際 184 天除以 365,結果是 23.9452。官方語法把面額列為選填,但沒有寫省略時的預設值,我習慣一律寫明。
要找價格或殖利率,回 債券價格函式。
接下來可以
相關文章
查看所有文章留言討論
共 0 則留言
