第8章固定收益证券计算.docx

上传人:b****8 文档编号:9478456 上传时间:2023-02-04 格式:DOCX 页数:38 大小:26.42KB
下载 相关 举报
第8章固定收益证券计算.docx_第1页
第1页 / 共38页
第8章固定收益证券计算.docx_第2页
第2页 / 共38页
第8章固定收益证券计算.docx_第3页
第3页 / 共38页
第8章固定收益证券计算.docx_第4页
第4页 / 共38页
第8章固定收益证券计算.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

第8章固定收益证券计算.docx

《第8章固定收益证券计算.docx》由会员分享,可在线阅读,更多相关《第8章固定收益证券计算.docx(38页珍藏版)》请在冰豆网上搜索。

第8章固定收益证券计算.docx

第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将日期字符串转化

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1