MATLAB筆記:固定收益證券

本文內容全部來源於《問道量化投資-用MATLAB來敲門》,只是對知識做個梳理,方便學習與記憶。

在資本市場上,佔據最大份額的仍然是固定收益類證券,美國的國債市場、公司債市場都是固定收益類證券市場。引發08年金融危機的MBS(Mortgage-backed securities,房產抵押支持證券)也屬於固定收益類證券。

現值和終值

債券的核心問題是定價問題,定價技術的核心是理解現金流的(現值Present value)和終值(Future Value)。貨幣有時間價值,今天的一塊錢比明天的一塊錢更值錢,因為它可以用於各種投資活動,以錢生息產生回報。如圖所示,用向上的箭頭代表現金流入,向下的箭頭代表現金流出,橫軸為時間。

現金流現值PV的計算公式如下:

PV=frac {P_{t}}  {(1+r)^{t}  }

其中,Pt是在t時刻發生的現金流,r是現金流的貼現率。

現金流的終值FV計算公式如下:

FV={P_{t}}  {(1+r)^{t}  }

按照固定的支付周期進行固定數量支付的多個現金流,稱為年金(annuity)。年金的現值是將發生在不同時間的現金流分別按照現值公式進行折現,將所有現值相加得到年金的現值。

MATLAB為現金流的終值和現值計算提供了4個可用函數。

fvfix:固定現金流終值的計算。語法:FutureVal=fvfix(Rate,NumPeriods,Payment,PresentVal,Due),Rate為名義年利率,NumPeriods為計息周期數,與債券到期日有關,Payment為利息支付額,PresentValue和Due是可選值

fvvar:變動現金流終值的計算。

pvfix:固定現金流現值的計算。

pvvar:變動現金流現值的計算。語法:PresentVal=pvvar(Cashflow,Rate,IrrCFDates),Cashflow為現金流向量,Rate為對應周期貼現率,IrrCFDates為非周期性折現率時的日期向量。

債券報價和交割價

債券的報價是凈價Clean Price,而交割時的價格為含息價Dirty Price,兩者之間的差價是在本計息周期已經發生的利息,為應計利息Accrued Interest(AI)。債券報價和交割價之間的關係如圖所示。

AI=frac{T-t}{t-t} C其中,AI為應計利息,C為息票。

計息標準根據不同的債券條款分為多種,其中較常用的有實際/360、實際/365,30/360等。

基本固定收益工具

(1)美國國債,由美國財政部發行,美國聯邦政府稅收為其擔保,市場認為其沒有信用風險,不會違約。但是它仍然受通脹和利率影響。

(2)市政債券,由美國州政府發行,債券擔保方式繁多,存在一定的違約風險。

(3)聯邦機構債券,面臨信用風險,聯邦政府不為其擔保。

(4)公司債,其風險和監管都比上述嚴格。一般會有專業的信用評級機構進行評級。

收益率計算

1. 根據貼現率、T-bill發行日、到期日計算債券收益率

對於期限短於一年的貼現債券,其報價方式是貼現率,在計算期限結構時有必要將其轉化為收益率。

[BEYield,MMYield]=tbilldisc2yield(Discount,Settle,Maturity),Discount為折現率,Settle為交割日,Maturity為到期日。BEYield為債券市場收益率,按照一年365天計算;MMYield為貨幣市場收益率,按照一年360天計算。

2. 根據債券收益率計算貼現率

Discount=tbillyield2disc(Yield,Settle,Maturity,Type)

3. 零息債券(zero-coupon bond)到期收益率函數

一些正常的付息日由於在零息債券中並不付息,因此稱為準息票日。當到期日在下一個準息票日之內和之外時收益率有不同的計算方法。語法為:

Yield=zeroyield(Price,Settle,Maturity,Period,Basis)

Price為債券價格,Period為一年計息頻率,Basis為應計天數規則

4. 固定收益證券的到期收益率

Yield=bndyield(Price,CouponRate,Settle,Maturity,Period,Basis)其中CouponRate為債券息票率

5. T-bill的到期收益率計算

[MMYield,BEYield,Discount]=tbillyield(Price,Settle,Maturity)

價格計算

在MATLAB中計算一個包含有息票率、結算日、到期日的債券的現金流、支付日、折現因子等的函數是cfamounts.

[CFlowAmounts,CFlowDates,TFactors,CFlowFlags]=cfamounts(CouponRate,Settle,Maturity,Period,Basis....)

CFlowAmounts為現金流數量,CFlowDates為對應現金流的日期,TFactors為對應現金流的折現因子,CFlowFlags為現金流類型。

2. 固定收益證券價格

[Price,AccruedInt]=bndprice(Yield,CouponRate,Settle,Maturity,Period,Basis,....)其中,Price為債券凈價,AccruedInt為應計利息。

3. 貼現類證券的價格

Price=prdisc(Settle,Maturity,Face,Discount,Basis)

4. T-bill的定價

Price=tbillprice(Rate,Settle,Maturity,Type)

5. 回購協議定價

回購協議類似短期票據抵押貸款,在解決短期流動性和隔夜資金頭寸配置上有重要作用。

TBEDiscount=tbillrepo(RepoRate,InitialDiscount,PurchaseDate,SaleDate,Maturity)

RepoDate為年化回購收益率,InitialDiscount為購買日的初始貼現率,PurchaseDate為回購協議簽訂日期,SaleDate為回購日期,Maturity為T-bill到期日。輸出參數TBEDiscount為回購盈虧平衡點的貼現率。

6. CD類產品定價

CD是可轉讓定期存單的縮寫,是貨幣市場上的主要工具,以短期為主,類似repo,存續期內並不支付利息。其發行不是貼現發行,而是按照面值發行,利息根據票面標定息票,按單利計算,計息規範為實際/360。CD的收益率是指在結算日購買,持有到到期日的收益率。CD的收益率是指在交割日購買,持有到期的收益率。

AccrInt=cdai(CouponRate,Settle,Maturity,IssueDate,Basis)計算應計利息

Yield=cdyield(Price,CouponRate,Settle,Maturity,IssueDate,Basis)計算收益率

[Price,AccrInt]=cdprice(Yield,CouponRate,Settle,Maturity,IssueDate,Basis)計算價格與應計利息

敏感性分析

在使用下列函數前,大家需要知道現金流久期和凸性的概念,這裡不贅述。

1. 現金流久期和凸性的計算

[Duration,ModDuration]=cfdur(CashFlow,Yield)

Duration為現金流的麥考利久期,ModDuration為現金流的修正久期。

CFlowConvexity=cfconv(CashFlow,Yield)計算現金流凸性。

2. 債券的久期計算

[ModDuration,YearDuration,PerDuration]=bnddurp(Price,CouponRate,Settle,Maturity,Period,Basis,...)

YearDuration為債券的麥考利久期,以年為計算單位。PerDuration則以半年為計算單位。

[YearConvexity,PerConvexity]=bndconvp(Price, CouponRate,Settle,Maturity,Period,Basis,...)

YearConvexity是以年為計量單位的債券凸性,PerConvexity是以Period參數為計量單位的凸性。

(未完待續)

推薦閱讀:

TAG:MATLAB | 债券 | 金融 |