第8章固定收益证券计算.docx
- 文档编号:9478456
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:38
- 大小:26.42KB
第8章固定收益证券计算.docx
《第8章固定收益证券计算.docx》由会员分享,可在线阅读,更多相关《第8章固定收益证券计算.docx(38页珍藏版)》请在冰豆网上搜索。
第8章固定收益证券计算
第8章固定收益证券计算
8.1固定收益债券定价
(1)bndprice函数
目的:
给固定收益债券定价
格式:
[Price,AccruedInt]=bndprice(Yield,CouponRate,Settle,Maturity)
[Price,AccruedInt]=bndprice(Yield,CouponRate,Settle,Maturity,Period,Basis,EndMonthRule,
IssueDate,FirstCouponDate,LastCouponDate,StartDate,Face)
参数:
Yield 半年为基础的到期收益
CouponRate分红利率
Settle结算日期,时间向量或字符串,必须小于等于到期日
Maturity到期日,日期向量
Period选择项,年分红次数,缺省值2,可为0,1,2,3,4,6,12
Basis选择项,债券的天数计算法。
缺省值为0=实际值/实际值,1=30/360,2=实际值/360,3=实际值/365
EndMonthRule可选项,月未规则,应用在到期日是在小于等于30天的月份.0代表债券的红利发放日总是固定的一天,缺省1代表是在实际的每个月未
IssueDate可选项,发行日期
FirstCouponDate可选项,第一次分红日。
当FirstCouponDate和LastCouponDate同时出现时,FirstCouponDate优先决定红利发放结构
LastCouponDate可选项,到期日的最后一次红利发放日。
当FirstCouponDate没标明时,LastCouponDate决定红利发放结构。
红利发放结构无论LastCouponDate是何时,都以其为准,并且紧接着债权到期日.
StarDate可选项,债权实际起始日(现金流起始日)。
当预计未来的工具时,用它标明未来的日期,如果没有特别说明StarDate,起始日是settlementdate
Face面值,缺省值是100
上面所有的参数必须是1*NUMBONDS或是NUMBONDS*1的向量。
当为可选项时,用(〔〕)代替,在向量用NaN填写没说明的输入项。
描述:
本函数表明给定日期和半年收益后,计算价格和利息。
其中Price是价格,AccruedInt是结算日的利息。
Price和Yield有如下公式:
Price+Accrued—Interest=sum(CashFlow*(1+Yield/2)^(-Time))
例8-1
Yield=[0.04;0.05;0.06]
CouponRate=0.05
Settle=’20-Jan-1997’
Maturity=’15-Jun-2002’
Period=2
Basis=0
[Price,AccruedInt]=bndprice(Yield,CouponRate,Settle,Maturity,Period,Basis)
Price=104.810699.995195.4384
AccruedInt=0.49450.49450.4945
参阅:
cfamounts,bndyield
(2)prdisc函数
目的折价债券的价格
格式Price=prdisc(Settle,Maturity,Face,Discount,Basis)
参数Settle作为序列时间号或日期串进入,必须早于或等于到期日。
Maturity作为日期串进入。
Face票面价值。
Discount债券的银行折现率,是分数。
Basis计算日期的基础。
描述本函数表示返回债券的价格,它的收益率是银行要求的折现率。
例8-2Settle=’10/14/2000’;
Maturity=’03/17/2001’;
Face=100;
Discount=0.087;
Basis=2;
price=prdisc(Settle,Maturity,Face,Discount,Basis)
返回
Price=96.2783
(3)prmat函数
目的到期支付利息的债券的价格,与到期利率有关的价格
格式[Price,AccruInterest]=prmat(Settle,Maturity,Issue,Face,CouponRate,Yield,Basis)
参数Settle作为序列时间号或日期串进入,必须早于或等于到期日。
Maturity作为日期串进入。
Issue作为序列时间号或日期串进入。
Face票面价值。
CouponRate作为分数进入。
Yield年收益率。
是分数。
Basis计算日期的基础。
描述本函数表示返回价格和在到期支付债券的精确利率。
这个函数也应用于零息票债券或纯折现债券,通过使
例8-3
Settle=’02/07/2002’;
Maturity=’04/13/2002’;
Issue=’10/11/2002’;
Face=100;
CouponRate=0.0608;
Yield=0.0608;
Basis=1;
[Price,AccruInterest]=prmat(Settle,Maturity,Issue,Face,CouponRate,Yield,Basis)
回车
Price=99.9784
AccruInterest=1.9591
(4)prtbill
目的国库券的价格,政府债券的定价
格式Price=prtbill(Settle,Maturity,Face,Discount)
参数Settle作为序列时间号或日期串进入。
必须早于或等于到期日。
Maturity作为日期串进入。
Face票面价值。
Discount债券的银行折现率。
是分数。
描述本函数表示返回国库券的价格。
例8-42002年2月10日发行,2002年8月6日到期,折现率3.77%,并且平价是1000$。
则使用这些数据有
Price=prtbill(‘2/10/2002’,’8/6/2002’,1000,0.0377)
返回
Price=
981.4642
8.2利率期限结构
(1)Disc2zero函数
目的 给定贴现曲线的零曲线,用Zero曲线描述贴现曲线
格式
(ZeroRates,CurveDates)=disc2zero(Discrates,CurveDates,Settle,OutputCompounding,OutputBasis)
参数DiscRates 贴现要素的列向量,其要素构成投资领域的贴现曲线
CurveDates 对应的到期日列向量
Settle DiscRates里的贴现率的结算时间
OutputCompounding
1年复利
2半年复利
3每年三次复利
4季度复利
6两月复利
12月复利
365日复利
-1连续复利
Outputbasis
0实际值/实际值(缺省值)
130/360,
2实际值/360
3实际值/365
描述
(ZeroRates,CurveDates)=disc2zero(discRates,CurveDates,Settle,OutputCompounding,OutputBasis)
ZeroRates 十进制列向量
CurveDates 对应的zerorates列向量这个向量与输入的CurveDates相量相似
例8-5
DiscRates=[0.9996
0.9947
0.9896
0.9866
0.9826
0.9786
0.9745
0.9665
0.9552
0.9466]
CurveDates=[datenum(06-Nov-2000)
datenum(11-Dec-2000)
datenum(15-jan-2001)
datenum(05-Feb-2001)
datenum(04-Mar-2001)
datenum(02-Apr-2001)
datenum(30-Apr-2001)
datenum(25-Jun-2001)
datenum(04-Sep-2001)
datenum(12-Nov-2001)]
Settle=datenum(03-Nov-2000)
Setdailycompoundingfortheoutputzerocurve,onanactual/365basis.
OutputCompounding=365
OutputBasis=3
执行方程
[Zerorates,CurveDates]=disc2zero(DiscRates,CurveDates,Settle,Outputcompounding,outputBasis)
ZeroRates=
0.0487
0.0510
0.0523
0.0524
0.0530
0.0526
0.0530
0.0532
0.0549
0.0536
CurveDates=
730796
730831
730866
730887
730914
730943
730971
731027
731098
731167
实际上,DiscRates,ZeroRates只是基点。
然而,MATLAB完全精确的计算出它们。
如果你如上输入DisvRates,ZeroRates可能会有所不同。
注意 zero2disc和其它的利率期限结构函数
(2)fwd2zero
目的 给定远期曲线的零曲线
格式
[ZeroRates,CurveDates]=fwd2zero(ForwardRates,CurveDates,Settle,OutputCompounding,
OutputBasis,InputCompounding,InputBasis)
参数ForwardRates一组债券的远期利率。
总之,中的利率构成了投资领域的远期曲线。
CurveDates对应远期利率的到期日向量.
Settle远期利率的一般结算日.
OutputCompounding
1年复利
2半年复利
3每年三次复利
4季度复利
6两月复利
12月复利
365日复利
-1连续复利
Outputbasis
0实际值/实际值(缺省值)
130/360,
2实际值/360
3实际值/365
InputCompounding
InputBasis
描述 计算了给定远期曲线的Zero曲线以及到期日
ZeroRatesANUMBONDS-by-1vectorofdecimalfractions.Inaggregate,theratesinZeroRatesconstituteazerocurvefortheinvestmenthorizonrepresentedbyCurveDates.
CurveDatesANUMBONDS-by-1vectorofmaturitydates(asserialdatenumbers)thatcorrespondtothezeroratesinZeroRates.ThisvectoristhesameastheinputvectorCurveDates.
例8-6GivenanimpliedeforwardcurveForwardRatesoverasetofmaturitydatesCurveDates,andasettlementdateSettle:
FowardRates=[0.0469
0.0519
0.0549
0.0535
0.0558
0.0508
0.0560
0.0545
0.0615
0.0486];
CurveDates=[datenum(’06-Nov-2000’)
datenum(’11-Dec-2000’)
datenum(’15-Jan-2001’)
datenum(’05-Feb-2001’)
datenum(’04-Mar-2001’)
datenum(’02-Apr-2001’)
datenum(’30-Apr-2001’)
datenum(’25-Jun-2001’)
datenum(’04-Sep-2001’)
datenum(’12-Nov-2001’)
Settle=datenum(’03-Nov-2000’)
Setdailycompoundingforthezerocurve,onanactual/365basis.Theforwardcurvewascompoundedannuallyonanactual/actualbasis.
OutputCompounding=365;
OutputBasis=3;
InputCompounding=1;
InputBasis=0;
Executethefunction
[ZeroRates,CurveDates]=fwd2zero(ForwardRates,CurveDates,Settle,OutputCompounding,OutputBasis,InputCompounding,InputBasis)
WhichreturnsthezerocurveZeroRatesatthematuritydatesCurveDates:
ZeroRates=
0.0457
0.0501
0.0516
0.0517
0.0523
0.0517
0.0521
0.0523
0.0540
0.0528
CurveDates=
730796
730831
730866
730887
730914
730943
730971
731027
731098
731167
实际上,ForwardRates和ZeroRates只是基点。
但是,用MATLAB可以完全准确的计算。
如果你如上输入ForwardRates,ZeroRates可能于到期日的不同。
注意zero2fwdandotherfunctionsforTermStructureofInterestRates.
(3)Prbyzero函数
目的一组零曲线证券组合的债券价格,零息票债券的价格
格式BondsPrices=prbyzero(Bonds,Settle,ZeroRates,ZeroDates)
参数Bonds用于计算价格的债券信息。
六阶债券矩阵每一行代表一种债券。
首先的两列是被要求的;剩下的是可选的但必须按顺序添加。
证券中的行必须有相同的列。
Maturity到期日是序列日期数。
CouponRate小数指示能支付的息票
Face票面利率
Period债券付息期
Basis债券日期计算基础
EndMonthRule这个规则只适用于到期日的月末是三十天或小于三十天。
Settle建立日期的序列日期值。
ZeroRates观察到的零率的日期曲线矩阵。
每一列代表曲线率。
每一行代表观察日期。
ZeroDates第一列的观察值为零。
描述BondsPrices=prbyzero(Bonds,Settle,ZeroRates,ZeroDates)计算证券组合中债券的价格。
债券价格是光票债券曲线数目矩阵。
每一列来自相应的零利率曲线。
例8-7
Bonds=[datenum(‘6/1/1998’)0.0475100200;
datenum(‘7/1/2000’)0.06100200;
datenum(‘7/1/2000’)0.09375100610;
datenum(‘6/30/2001)0.05125100131;
datenum(‘4/15’2002’)0.07125100410;
datenum(‘1/15/2000’)0.065100200;
datenum(‘9/1/1999’)0.08100330;
datenum(‘4/30/2001’)0.05875100200;
datenum(‘11/15/1999’)0.07125100200;
datenum(‘6/30/2000’)0.07100231;
datenum(‘7/1’2001’)0.0525100230;
datenum(‘4/30/2002’)0.07100200];
Prices=[99.375;
99.875;
105.75;
96.875;
103.625;
101.125;
103.125;
99.375;
101.0;
101.25;
96.375;
102.75];
Settle=datenum(‘12/18/1997’)
OutputCompounding=2;
OutputBasis=3;
MaxIterations=50;
执行zbtprice
[ZeroRates,ZeroDates]=zbtprice(Bonds,Price,Settle,…OutputCompounding,OutputBasis,MaxIterations)
ZeroRates=0.0616
0.0690
0.0658
0.0590
0.0648
0.0655
0.0606
0.0601
0.0642
0.0621
0.0627
ZeroDates=729907
730364
730439
730500
730667
730668
730971
731032
731033
731321
731336
现在执行prbyzero
BondsPrices=prbyzero(Bonds,Settle,ZeroRates,ZeroDates)
得到
BondsPrices=
99.38
98.80
106.83
96.88
103.62
101.13
103.12
99.36
101.00
101.25
96.37
102.74
(4)pyld2zero函数
目的给定平价收益曲线的零曲线
语法[ZeroRates,CurveDates]=pyld2zero(ParRates,CurveDates,Settle,OutputComping,OutputBasis,
InputCompounding,InputBasis,MaxIrterations)
参数ParRates年隐含的平价收益率向量水平线代表曲线日期平价利率中的收益绿构成隐含平价收益曲线。
CurveDates与平价利率相对应的日期向量。
Settle平价利率制定是的日期向量。
OutputComping输出的复利。
复利频率标量。
遵守以下规则:
1年复利
2半年复利
3每年三次复利
4季度复利
6两月复利
12月复利
365日复利
-1连续复利
OutputBasis输出年零利率的日期计算基础
0实际值/实际值(缺省值)
130/360,
2实际值/360
3实际值/365
InputCompounding表示年输入平价利率的标量。
缺省值=输出复利。
InputBasis计算输入平价利率的日期基础。
MaxIrterations得出零利率集的最大重复次数。
描述返回给定平价收益曲线和到期日的零曲线。
ZeroRates分数纵量。
它组成代表曲线日期的投资横轴。
CurveDates与零利率相应的到期日。
例8-8给定一组到期日和签定日的平价利率曲线:
ParRates=[0.0479
0.0522
0.0540
0.0540
0.0536
0.0532
0.0532
0.0539
0.0558
0.0543]
CurveDates=[datenum(06-11-2000)
Datenum(11-12-2000)
Datenum(15-12-2001)
Datenum(05-02-2001)
Datenum(04-03-2001)
Datenum(02-04-2001)
Datenum(30-04-2001)
Datenum(25-06-2001)
Datenum(04-09-2001)
Datenum(12-11-2001)
Settle=datenum(03-11-2000)
50次重复
OutputComping=12
OutputBasis=3
InputCompounding=1
InputBasis=0
MaxIrterations=50
运行方程[ZeroRates,CurveDates]=pyld2zero(ParRates,CurveDates,Settle,OutputComping,OutputBasis,
InputCompounding,InputBasis,MaxIrterations)
返回
ZeroRates=
0.0461
0.0498
0.0519
0.0520
0.0510
0.0510
0.0508
0.0520
0.0543
0.0530
CurveDates=
730796
730831
730866
730887
730914
730943
730971
731027
731098
731167
(5)zbtprice函数
目的:
从给定价格的付息证券数据中得到Zero曲线,给定价格息票债券的零曲线
格式:
[zerorates,curvedates]=zbtprice(bonds,price,settle,…
outputcompounding,outbasis,maxiterations)
参数:
bonds可以推导Zero曲线的付息证券的信息。
一个n行2列的矩阵,每一行代表一种证券,前两列是必须有的;其他的可以任选到必须按照顺序增加。
Bonds中每一种证券具有相同的行数和列数。
列包括:
maturity证券的到期日,连续的日期数字。
使用datenum将日期字符串转化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 固定 收益 证券 计算