-qg
第
8
章
固定收益证券计算
8
.
1
固定收益债券定价
(
1
)
bndprice
p>
函数
目的:
给固定收益债券定价
格式:
[Price,Accrue
dInt]=bndprice(Yield,CouponRate,Settle,Maturity)
p>
[Price,AccruedInt]=bndprice
(Yield,CouponRate,Settle,Maturity,Period,Basis,End
MonthRule,
IssueDate,FirstCouponDate,L
astCouponDate,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
同时出现时,
Fi
rstCouponDate
优先决定红利发放结构
LastCouponDate
可选项,到期日的最后一次红利发放日。当
FirstCouponD
ate
没标明时,
LastCouponDate
决定红利发放结构。红利发放结构无论
LastCouponDate
是何时,都以其为准,并且
紧接着债权到期日.
StarDate
可选项,债权实际起始日(现金流起始日)
< br>。当预计未来的工具时,用它标明未来
的日期,如果没有特别说明
StarDate
,起始日是
settlement
date
Face
面值,缺省值是100
上面所有的参数必须是1*
NUMBONDS
或是
NUMBOND
S
*1的向量。
当为可选项时,
用
p>
(
〔〕
)
代替,在
向量用
NaN
填写没说明的输入项。
描述:
本函数表明给定日期和半年收益后,计算价格和利息。其
中
Price
是价格,
Accrued
Int
是结算
日的利息。
Price<
/p>
和
Yield
有如下公式:
Price+Accrued
—
p>
Interest=sum(CashFlow*(1+Yield/2)^(-Time)
)
例
8-1
Yield=[0.04;0.05;0.06]
CouponRate=0.05
Settle=’20
-Jan-
19
97’
M
aturity=’15
-Jun-
2002’
Period=2
Basis=0
[Pric
e,AccruedInt]=bndprice(Yield,CouponRate,Settle,Mat
urity,Period,Basis)
Price=104.8106
99.9951
95.4384
AccruedInt=0.4945
0.4945
0.4945
参阅:
cfamounts,bndyield
(
2
)
prdisc<
/p>
函数
目的
折价债券的价格
格式
Price=prdisc(Settle,Maturit
y,Face,Discount,Basis)
参数
Settle
作为序列时间号或日期串进入,必须早于或等于到期日。
Maturity
作为日期串进入。
Face
票面价值。
Discount
债券的银行折现率,是分数。
Basis
计算日期的基础。
描述
本函数表示返回债券的价格,它的收益率是银行要求的折现率。
例
8-2
Settle=’10/14/2000’;
Maturity
=’03/17/2001’;
Face=100;
Discount=0.087;
Basis=2;
price=prdisc(Se
ttle,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,I
ssue,Face,CouponRate,Yield,Basis)
回车
Price=99.9784
AccruInterest=1.9591
(
4
)
prtbill
目的
国库券的价格,政府债券的定价
格式
Price=prtbill(Settle,Maturi
ty,Face,Discount)
参数
Settle
作为序列时间号或日期串进入。必须早于或等于到期日。
Maturity
作为日期串进入。
Face
票面价值。
Discount
债券的银行折现率。是分数。
描述
本函数表示返回国库券的价格。
例
8-4
2002
年
2
月
10
日
发行,
2002
年
8
< br>月
6
日到期,折现率
3.77%
,并且平价是
1000$$
。则使
用这些数据有
Price=prtbill
(‘2/10/2002’,’8/6/2002’,1000,0 .0377)
返回
Price=
981.4642
8
.
2
利率期限结构
(
1
)
Disc2zero
函数
目的
给定贴现曲线的零曲线,用
Zero
曲线描述
贴现曲线
格式
(ZeroRates,Curv
eDates)=disc2zero(Discrates,CurveDates,Settle,Outp
utCompounding,OutputBasis)
参数
DiscRates
贴现要素的列向量,其要素构成投资领域的贴现曲线
CurveDates
对应的到期日列向量
Settle
DiscRates
里的贴现率的结算时间
OutputCompounding
1
年复利
2
半年复利
3
每年三次复利
4
季度复利
6
两月复利
12
月复利
365
日复利
-1
连续复利
Output basis
0
实际值/实际值(缺省值)
1
30/360,
2
实际值
/360
3
实际值
/365
描述
(ZeroRates,CurveDates)=disc
2zero(discRates,CurveDates,Settle,OutputCompoundin
g,OutputBasis)
ZeroRates
十进制列向量
CurveDates
对应的
zero rates
列向量这个向量与输入的
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)
Set daily compounding for the output
zero curve, on an actual/365 basis.
OutputCompounding=365
OutputBasis=3
执行方程
[Zerorates,C
urveDates]=disc2zero(DiscRates,CurveDates,Settle,O
utputcompounding,output
Basis)
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
只是基点。然而,
MA
TLAB
完全精确的计算出它们。如果你如上<
/p>
输入
DisvRates
,
ZeroRates
可能会有所不同。
注意
zero2disc
和其它的利率期限结构函数
< br>(
2
)
fwd2zero
目的
给定远期曲线的零曲线
格式
[ZeroRates,
CurveDates]=fwd2zero(ForwardRates, CurveDates,
Settle, OutputCompounding,
OutputBasis, InputCompounding,
InputBasis)
参数
ForwardRates
一组债券的远期利率。总之,中的利率构成了投资领域的远期
曲线。
CurveDates
对应远期利率的到期日向量
.
Settle
远期利率的一般结算日
.
OutputCompounding
1
年复利
2
半年复利
3
每年三次复利
4
季度复利
6
两月复利
12
月复利
365
日复利
-1
连续复利
Output basis
0
实际值/实际值(缺省值)
1
30/360,
2
实际值
/360
3
实际值
/365
InputCompounding
InputBasis
描述
<
/p>
计算了给定远期曲线的
Zero
曲线以及
到期日
ZeroRates
A
NUMBONDS-by-1 vector of decimal fractions. In
aggregate, the rates in ZeroRates
constitute a zero curve for the
investment horizon represented by CurveDates.
CurveDates
A
NUMBONDS-by-1
vector
of
maturity
dates(as
serial
date
numbers)
that
correspond to the zero
rates in ZeroRates. This vector is the same as the
input
vector CurveDates.
例
8-6
Given an impliede forward
curve ForwardRates over a set of maturity dates
CurveDates, and a
settlement date
Settle:
FowardRates= [0.0469
0.0519
0.0549
0.0535
0.0558
0.0508
0.0560
0.0545
0.0615
0.0486];
CurveDates= [da
tenum(
’
06-Nov-2000
’
)
datenum(
’
11-Dec-2000
’
)
p>
datenum(
’
15-Jan-200
1
’
)
datenum(
’
05-Feb-2001
’
)
p>
datenum(
’
04-Mar-200
1
’
)
datenum(
’
02-Apr-2001
’
)
p>
datenum(
’
30-Apr-200
1
’
)
datenum(
’
25-Jun-2001
’
)
p>
datenum(
’
04-Sep-200
1
’
)
datenum(
’
12-Nov-2001
’
)
Settle= datenum(
’
03-Nov-2000
’
)
Set
daily
compounding
for
the
zero
curve,
on
an
actual/365
basis.
The
forward
curve
was
compounded annually on an actual/actual
basis.
OutputCompounding= 365;
OutputBasis= 3;
InputCompounding= 1;
InputBasis= 0;
Execute the
function
[ZeroRates,
CurveDates]=fwd2zero(ForwardRates,
CurveDates,
Settle,
OutputCompounding,
OutputBasis, InputCompounding,
InputBasis)
Which returns the zero curve ZeroRates
at the maturity dates CurveDates:
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
只是基点。
但是
,
用
MA
TLAB
< br>可以完全准确的计算。
如果你如上输入
ForwardR
ates
,
ZeroRates
p>
可能于到期日的不同。
注意
zero2fwd and other functions for Term
Structure of Interest Rates.
(
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.0475 100 200;
datenum(‘7/1/2000’)0.06 100
200;
datenum(‘7/1/2000’)0.09375 100
610;
datenum(‘6/30/2001)0.
05125
100 131;
datenum(‘4/15’2002’)0.07125 100
410;
datenum(‘1/15/2000’)0.065 100
200;
datenum(‘9/1/1999’)0.08 100
330;
datenum(‘4/30/2001’)0.05875 100
200;
datenum(‘11/15/1999’)0.07125 100
200;
datenum(‘6/30/2000’)0.07 100
231;
date
num(‘7/1’2001’)0.0525
100 230;
datenum(‘4/30/2002’)0.07 100
200];
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
[ZeroR
ates,ZeroDates]=zbtprice(Bonds,Price,Settle,…Outpu
tCompounding,
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
OutputBasis,
BondsPrices=prb
yzero(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
)
pyld2z
ero
函数
目的
给定平价收益曲线的零曲线
语法
[ZeroRates,CurveDates]=pyld
2zero(ParRates,CurveDates,Settle,OutputComping,Out
putBasis,
p>
InputCompounding,InputBasis,MaxIrteration
s)
参数
ParRates
年隐含的平价收益率向量水平线代
表曲线日期平价利率中的收益绿构成隐
含平价收益曲线。
CurveDates
与平价利率相对应的日期向量。
Settle
平价利率制定是的日期向量。
OutputComping
输出的复利。复利频率标量。遵守以下规则:
1
年复利
2
半年复利
3
每年三次复利
4
季度复利
6
两月复利
12
月复利
365
日复利
-1
连续复利
OutputBasis
输出年零利率的日期计算基础
0
实际值/实际值(缺省值)
1
30/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,Cur
veDates,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
p>
(
5
)
zbtpr
ice
函数
目的:
< br>从给定价格的付息证券数据中得到
Zero
曲线,给定价
格息票债券的零曲线
格式:
[zerorates, curvedates] =
zbtprice( bonds, price,
settle,…
outputcompounding
,outbasis ,maxiterations )
参数:
bonds
可以推导
Zero
曲线的付息证券的信
息。一个
n
行
2
列的矩阵,每一行代表一种
证券,前两列是必须有的;其他的可以任选到必须按照顺序
增加。
Bonds
中每一种证券具有相同的
行数和列数。列包括:
maturity
证券的到期日,连续的日期数字。使用
datenum
< br>将日期字符串转化为连续的日期型
数字。
Coupondate
证券的利息率,小数。
Face
(任选的)证券的偿还值或面值。默认值=
100
Period
(任选的)每年利息,整数。既定值=
0
,
1
,
2
,
3
,
4
,
6
,
12
。默认值=
2
Basis
(任选的)计数基础
:
0
=实际天数
/
实际天数(默认值)
,
1
p>
=
30/360
,
2
=实际值
/360
,
3
=实际值
/365
Endmonthrule
(任选的)月末标识。只有一个月
是
30
天或少于
30
< br>天且到期日为月末日时使用
标识。
0
表示忽略标识,意味着证券付息日总是每月的同一天。
1
表
示设置标识(默认值)
,证券付
息日总是每月的最后一天。
p>
Prices
包括
Bonds
中每一证券各自的公平价格
(无息价格)
的列向量,
行数必须与
B
onds
的行数一致。
Settle
偿债日(日期型数字或字符串)
,这表示
Zero
曲线的
0
时点,它通常是所有证券的
常见偿还日。
Outputcompounding
(任选的)
Zerorates
中年付息频率间隔标量。既定值包括;
p>
1.
按年付息,
2.
每年付息(默认值)
,
3.
一年
3
次付息,
4.
按季付息,
6.
隔月付息,
12.
按月付息
Outputbasis
(
任选的)
计算
Zerorates
数值过程中使用的与现金流量日期相一
致的计数基础,
标量。
0
=实际天数<
/p>
/
实际天数(默认值)
,
1
=
30/360
,
2
=实际值
/360
,
3
=实际值
/365
Maxiterations
(任选的)求
解
Zerorates
数值中重复的次数的最大值,标量。默认
值=
50
,大于
50
< br>的数值会减慢处理过程。
描
述
:
[zerorates,
curvedates]
=
zbtprice(
bonds,
price,
settle,
outputcompounding
,outbasis
,maxiterations
)
使用
bootstrap
方法得出既定付息证券组合及其
价格下的
Zero
曲线。
Zero
曲线由输入的
Bonds
投资组合中推导的无息证券
组合的到期收益组成。
这个方程所使用的
bootstrap<
/p>
方法不需要调整输入投资组合证券的现金流日期。它使用理论上的平
价证券套利,并通过插入得到的
zerorates
,为了
得到更好的结果,使用投资范围内均匀间隔且至
少是
30
种证券的投资组合。
Zerorates m
行
1
列的各
值为小数的向量,它是
Curverates
表示的投资范围内
每一点的
zerorate
;
m
p>
是有相同到期日的证券的数量。通常,
Zerorates
的数值构成了
Zero
曲线。当多于一
-qg
-qg
-qg
-qg
-qg
-qg
-qg
-qg
-
上一篇:各种收益率
下一篇:学前儿童发展评价复习资料