債券是金融市場上最基礎的一種產品之一,它的定價尤為重要,很多其他金融產品的定價就是建立在債券的定價上,所以我們今天具體來談談要怎麼計算債券的價值。
債券的定義
所謂,知己知彼,百戰不殆,如果把債券當作我們今天要攻克的一個敵人,那麼我們的首要任務當然是弄明白,這個敵人是誰?
引用吳曉求的《證券投資學》(中國人民大學出版社,2000)中對債券的定義來看它的全貌吧:債券(Bonds / debenture)是一種金融契約,是政府、金融機構、工商企業等直接向社會借債籌藉資金時,向投資者發行,同時承諾按一定利率支付利息並按約定條件償還本金的債權債務憑證。債券的本質是債的證明書,具有法律效力。債券購買者或投資者與發行者之間是一種債權債務關係,債券發行人即債務人,投資者(債券購買者)即債權人。
從定義中,我們注意到債券的兩個重要屬性:利息和本金。沒錯,這兩個屬性決定了債券未來的現金流,對定價有著直接的影響。債券的分類形式多種多樣,但是我們只從付息形式來看債券的分類:
1.定息債券:也即固定利率債券,指債券發行人按固定票面利率定期支付利息的債券。
2.零息債券:債券發行人在債券期限內不支付任何利息,至到期兌付日按債券面值進行償付的債券。
3.到期一次還本付息債券:發行時規定票面利率、但是在到期兌付日前不支付利息,全部利息至到期兌付日和本金一同償付的債券。
4.浮息債券:也即浮動利率債券,債券發行人根據一定規則調整票面利率,並依此利率定期支付利息的債券。
本文只對前三種債券的定價進行討論,因為這三種債券的定價思路一致,公式略有不同,而浮息債券的定價就比較複雜了。
債券的現金流
對債券定價的第一步就是確定現金流的數量以及現金流的支付日期(付息日)。這三種債券的現金流是不同的,我們需要分類討論。
債券的價值計算需要規定日計數基準,即債券市場中計算應計利息天數和付息區間天數時採用的基準,一般會使用三種日計數基準:actual/actual,actual/365,actual/360。我國目前是使用actual/actual的方式去算,所以本文也只給出這種計息規則下的表達式。
1.定息債券
我們定義:
M:債券面值;
c:票面年利率;
p:付息周期;
:債券的起息日,債券開始生效的日期;
T:債券的到期日;
t:結算日,債券的估值日,也即計算日;
C:票面年利息;
f:年付息頻率;
對於M、c、p、
、T及t這幾個變量是給定的。
知道付息周期p,比如每年、每6個月或者每3個月付一次利息,那麼我們可以求出年付息頻率為:f=12/p。
如果付息周期是天,那麼年付息頻率為:f=365/p。
結合起息日
和到期日T,我們可以確定付息日:
...
因為我們要計算的是t時刻未來的現金流(只有未來的現金流才會對價值產生影響,過去的現金流已經過去了,不影響價值的計算),所以我們一般只截取大於t時刻的那些付息日記做變量,t時刻的前一個付息日記做。這裡這些付息日需要根據節假日規則進行調整,如果付息日剛好處在節假日,那麼通常都會後移至下一個營業日去支付,而我們用來計算的都是調整後的付息日。
那麼定息債券每個付息日需要付的利息(現金流)為C/f=M*c/f;
最後一個付息日,還需要加付本金M。
我們可以畫出一個現金流圖來表示:
定息債券的現金流圖
2.零息債券和一次還本付息債券
對於零息債券和一次還本付息債券,都是在債券的到期日進行本金和利息的支付(零息債券只要支付本金,一次還本付息債券需要支付本金和利息),所以其實際付息日為到期日,但是它們還存在理論付息日,即債券期限內每年與到期兌付日相同的日期,如零息債券A到期兌付日為2020年8月10日,則債券期限內每年的8月10日為債券A的理論付息日。同樣的,我們記比t時刻大的那些理論付息日為:
,t時刻的前一個理論付息日記做。
我們定義:
M:債券面值;
c:票面年利率;
C:票面年利息(C=M*c);
N:債券期限(年),即從起息日至到期兌付日的整年數;
這兩種債券在到期日需要支付的金額分別為:
零息債券:M;
一次還本付息債券:M+N*C。
我們可以畫出一個現金流圖來表示:
零息和一次還本付息債券的現金流圖
債券的價值
現在,我們已經確定了,債券的現金流和未來現金流發生的日期,我們需要進一步確定在未來每個支付日的折現因子,這樣我們就可以把未來的現金流折現成t時刻的現金流,並把所有折現現金流加總起來就是債券的現值。折現因子有兩種求法,一種是根據到期收益率曲線,另一種是根據即期收益率曲線。具體用哪種方法,需要看計算時候提供的數據了。
1.已知到期收益率曲線
到期收益率(Yield Rate)是指使債券未來現金流量的現值等於債券當前市價的貼現率,投資者按照當前市場價格購買並且一直持有到滿期時可以獲得的年平均收益率。市場上,一般給的是到期收益率曲線,即到期收益率-時間的關係曲線,我們運用直線插值法就可以求得對應債券的到期時間的到期收益率y。到期收益率根據未來現金流數量的不同,分單利和複利兩種形式。
(1)對處於最後付息周期的固定利率債券、待償期在一年及以內的到期一次還本付息債券和零息債券,到期收益率按單利計算。債券價值與到期收益率之間的計算公式為:
其中:
PV:債券全價;
FV:到期兌付日債券本息和,固定利率債券為M+C/f,到期一次還本付息債券為M+N*C,零息債券為M;
y:到期收益率;
D:債券結算日至到期兌付日的實際天數;
TY:當前計息年度的實際天數,算頭不算尾。
(2)對待償期在一年以上的到期一次還本付息債券和零息債券,到期收益率按複利計算。計算公式為:
其中:
PV:債券全價;
FV:到期兌付日債券本息和,到期一次還本付息債券為M+N*C,零息債券為M;
y:到期收益率;
d:結算日至下一最近理論付息日的實際天數;
m:結算日至到期兌付日的整年數;
TY:當前計息年度的實際天數,算頭不算尾。
(3)對不處於最後付息周期的固定利率債券,到期收益率按複利計算。計算公式為:
PV:債券全價;
y:到期收益率;
C:票面年利息;
f:年付息頻率;
d:債券結算日至下一最近付息日的實際天數;
n:結算日至到期兌付日的債券付息次數;
M:債券面值。
TS:當前付息周期的實際天數,即下一個付息日與上一個付息日之間的實際天數,算頭不算尾,含閏年的2月29日。
2.已知即期收益率曲線
即期收益率(Spot Rate) 也稱零息利率,是零息債券到期收益率的簡稱,在債券定價公式中,即期收益率就是用來進行現金流貼現的貼現率。我們得到t那一天的即期收益率曲線,結合我們已經求出的付息日以及未來的現金流就可以進行價值計算了。這裡三種類型的債券計算公式是一致的,無需進行區分。
即期收益率一般用連續複利的形式表示,折現因子為:
i:第i個付息日;
:第i個付息日的零息利率,需要根據即期收益率曲線直線插值得到;
:第i個付息日到結算日t的時間(年),,當前計息年度的實際天數,算頭不算尾。
求出每個付息日的結算因子,我們就可以得到債券的價值:
n:結算日至到期兌付日的債券付息次數;
:第i個付息日的現金流。
這兩種方式求出來的債券價值理論上是一致的,到期收益率曲線和即期收益率曲線間的互相轉換,也是基於這個原理。
債券的淨價
以上求的是債券的全價,但是真正反應債券價值本身的變動的是債券的淨價,全價中包含應計利息的部分,就是結算日上一個付息日到結算日之間的應計的利息。
債券的淨價=全價-應計利息
三種類型的債券的應計利息公式略有不同。
1.定息債券的應計利息為:
其中:
C:票面年利息;
f:年付息頻率;
t:起息日或上一付息日至結算日的實際天數;
TS:當前付息周期的實際天數,即下一個付息日與上一個付息日之間的實際天數,算頭不算尾,含閏年的2月29日。
2.零息債券的應計利息為:
其中:
t:起息日或上一付息日至結算日的實際天數;
T:債券的總的期限;
:債券發行價;
3.一次還本付息債券的應計利息為:
其中:
C:票面年利息;
K:債券起息日至結算日的整年數;
t:起息日或上一付息日至結算日的實際天數;
TY:當前計息年度的實際天數,即發行公告中標明的第一個起息日至次一年度對應的同月同日的時間間隔為第一個計息年度,算頭不算尾,以此類推。
寫在後面:
債券的價值計算,看起來公式簡單,其實寫成程序反而不容易,考慮的細節比較多,需要注意的有三個地方:
一是,確定付息日,需要做節假日調整,剛開始寫的時候,我是用前一個付息日+付息周期的方式去做,後面發現在月末的時候會有些微的日期差別,比如起息日是1月31日,下一個付息日是2月28,再下一個就變成3月28日,以此類推,但其實如果是每個月最後一天付的話應該是3月31日才對,所以後面統一用起息日+n個付息周期去做,配以一個月末規則(每月的最後一天或者每月的同一天)的變量,這個問題就被解決了;
二是,確定付息時間(單位:1.個付息周期;2.年),到期收益率和即期收益率的付息時間表示方法是不同的,對於到期收益率的時間單位是個付息周期,對於即期收益率的時間單位是年,這一點需要重點注意;
三是,確定對應付息日的折現利率,一般採用直線插值法去做,我想這應該也是到期收益率和即期收益率兩種方式計算出來的價值略有差別的原因吧,因為這包含了估計,就不那麼精確了。還有到期收益率曲線,有些時間點是單利,有些時間點是複利,兩個寫出來的折現因子公式是不同的,需要做判斷。
總之,債券的價值計算程序是我反覆修改優化過最多次的,哪怕現在我也不覺得,它達到了盡善盡美的程度。當然,關於債券的計算不止這些,還有債券的各類久期,凸性啊之類的計算,它們對於計算債券的風險是重要的,以後還會寫的。