floatbyhw
来自赫尔-怀特利率树的浮动利率票据
语法
描述
例子
使用Hull-White树为浮动利率票据定价
使用赫尔-怀特利率树为20个基点的浮动利率票据定价。
加载文件deriv.mat
,提供HWTree
.的HWTree
结构包含为票据定价所需的时间和利率信息。
负载deriv.mat;
使用必需的参数定义浮动利率票据。其他参数使用默认值。
Spread = 20;set = datetime(2004,1,1);成熟度= datetime(2007,1,1);
使用floatbyhw
计算票据的价格。
价格= floatbyhw(HWTree,价差,结算,成熟度)
价格= 100.5618
为摊销浮动利率票据定价
为摊销浮动利率票据定价主要
输入参数来定义摊销计划。
创建RateSpec
.
比率= [0.03583;0.042147;0.047345;0.052707;0.054302);ValuationDate = datetime(2011,11,15);StartDates = ValuationDate;EndDates = [datetime(2012,11,15);datetime(2013、11、15);datetime(2014、11、15); datetime(2015,11,15) ; datetime(2016,11,15)]; Compounding = 1; RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:1光盘:[5x1 double]利率:[5x1 double]结束时间:[5x1 double]开始时间:[5x1 double]结束日期:[5x1 double]开始日期:734822估值日期:734822基础:0 EndMonthRule: 1
使用以下数据创建浮动利率工具:
Settle = datetime(2011,11,15);成熟度= datetime(2015,11,15);Spread = 15;
定义浮动利率票据摊销计划。
Principal ={{datetime(2012,11,15) 100;datetime(2013,11,15) 70;datetime(2014,11,15) 40;
构建HW树,并假设波动率为10%。
VolDates = [datetime(2012,11,15);datetime(2013、11、15);datetime(2014、11、15);datetime(2015、11、15);datetime(2016、11、15);datetime(2017、11、15)];VolCurve = 0.1;AlphaDates = datetime(2017,11,15);阿尔法曲线= 0.1;HWVolSpec = HWVolSpec(速率规格。ValuationDate, VolDates, VolCurve,...AlphaDates AlphaCurve);HWTimeSpec = HWTimeSpec (RateSpec。ValuationDate,VolDates, Compounding); HWT = hwtree(HWVolSpec, RateSpec, HWTimeSpec);
计算摊销浮动利率票据的价格。
价格= floatbyhw(HWT,价差,结算,到期,“校长”校长)
价格= 100.3059
用浮动利率票据给项圈定价
为带有浮动利率票据的项圈定价癸酸盐
而且FloorRate
输入参数来定义项圈定价。
使用以下数据为两种套领浮动利率票据定价:
比率= [0.0287;0.03024;0.03345;0.03861;0.04033);ValuationDate = datetime(2012,4,1);StartDates = ValuationDate;EndDates = [datetime(2013,4,1);datetime (2014 4 1);datetime (2015 4 1); datetime(2016,4,1) ; datetime(2017,4,1)]; Compounding = 1;
创建RateSpec
.
RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”、复合);
构建HW树,并假设波动率为5%。
VolDates = [datetime(2013,4,1);datetime (2014 4 1);datetime (2015 4 1);datetime (2016 4 1);datetime (2017 4 1);datetime (2018 4 1)];VolCurve = 0.05;AlphaDates = datetime(2018,11,15);阿尔法曲线= 0.1;HWVolSpec = HWVolSpec(速率规格。ValuationDate, VolDates, VolCurve,...AlphaDates AlphaCurve);HWTimeSpec = HWTimeSpec (RateSpec。ValuationDate,VolDates, Compounding); HWT = hwtree(HWVolSpec, RateSpec, HWTimeSpec);
创建浮动利率票据工具。
set = datetime(2012,4,1);成熟度= datetime(2016,4,1);Spread = 10;本金= 100;
计算一个香草漂浮器的价格。
价格= floatbyhw(HWT,价差,结算,到期)
价格= 100.3680
计算有套期浮动利率票据的价格。
CapStrike = {{datetime(2014,4,1) 0.045;datetime(2015,4,1) 0.05;...datetime (2016 4 1) 0.06};0.06};FloorStrike = {{datetime(2014,4,1) 0.035;datetime(2015,4,1) 0.04;...datetime (2016 4 1) 0.05};0.03};PriceCollared = floatbyhw(HWT,价差,结算,成熟度,....“癸酸盐CapStrike,“FloorRate”FloorStrike)
PriceCollared =2×1102.0458 - 100.9299
当重置日期不是树级日期时为浮动利率票据定价
当使用floatbyhw
浮动利率票据的定价,在HW树中指定日期的情况下TimeSpec
与现金流日期不一致。
使用以下数据为浮动利率票据定价:
ValuationDate = datetime(2013,9,1);费率= [0.0001;0.0001;0.0010;0.0015);EndDates = [datetime(2013,12,1);datetime(2014,3,1);datetime(2014,6,1);datetime(2014,9,1)];
创建RateSpec
.
RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的,...ValuationDate,“EndDates”EndDates,“利率”率,“复合”1);
构建HW树。
Volcurve = 0.1;Alpha = 0.01;hw挥发物规格= hwvolspec(RateSpec. com)ValuationDate,...EndDates Volcurve,...EndDatesα);HWTimeSpec = HWTimeSpec (RateSpec。评估日期,结束日期,1);HWT = hwtree(HWVolatilitySpec, RateSpec, HWTimeSpec);
使用以下数据计算浮动利率票据的价格。
Spread = 10;Settle = datetime(2013,9,1);成熟度= datetime(2014,6,1);重置= 2;价格= floatbyhw(HWT,价差,结算,到期,“FloatReset”重置)
使用floatengbytrintree错误(第318行)工具“1”的现金流日期跨越树节点。floatbyhw(第136行)错误[Price, PriceTree, CFTree] = floatengbytrintree(HWTree, Spread, Settle, Maturity, OArgs{:});
这个错误表明,不可能确定用于计算重置日期的收益的适用利率,因为无法计算所需的适用利率(由于树节点的重组而丢失了信息)。请注意,如果FRN的重置周期跨越了一个以上的树级别,由于树的重组性质,计算支付将变得不可能。也就是说,连接两个连续重置日期的树路径不能唯一确定,因为连接两个付款日期的可能路径不止一条。最简单的解决方案是将树级别放在工具的现金流日期,这是通过指定HWTimeSpec
.在树级别之间设置重置日期也是可以接受的,只要树级别上存在重置日期。
要从这个错误中恢复,可以构建一个与仪器对齐的树。
基准= intenvget(RateSpec,“基础”);EOM = intenvget(利率,“EndMonthRule”);resetDates = cfdates(ValuationDate, Maturity, Reset, Basis, EOM);HWTimeSpec = HWTimeSpec (RateSpec。ValuationDate,resetDates, Reset); HWT = hwtree(HWVolatilitySpec, RateSpec, HWTimeSpec); Price = floatbyhw(HWT, Spread, RateSpec.ValuationDate,...成熟,“FloatReset”重置)
价格= 100.0748
输入参数
HWTree
- - - - - -利率结构
结构
利率树结构,由hwtree
数据类型:结构体
传播
- - - - - -高于参考利率的基点数目
向量
高于参考利率的基点数,以a表示NINST
——- - - - - -1
向量。
数据类型:双
解决
- - - - - -结算日期
datetime数组|字符串数组|日期字符向量
结算日期,指定为标量或NINST
——- - - - - -1
向量,使用日期时间数组、字符串数组或日期字符向量。
要支持现有代码,floatbyhw
也接受序列号作为输入,但不建议使用。
的解决
每个浮动利率票据的日期设置为ValuationDate
HW树的。浮动利率票据参数解决
将被忽略。
成熟
- - - - - -到期日
datetime数组|字符串数组|日期字符向量
到期日,指定为NINST
——- - - - - -1
向量,使用日期时间数组、字符串数组或日期字符向量表示每个浮动利率票据的到期日期。
要支持现有代码,floatbyhw
也接受序列号作为输入,但不建议使用。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:[Price,PriceTree] = floatbyhw(HWTree,价差,结算,成熟度,'基础',3)
FloatReset
- - - - - -每年付款的频率
1
(默认)|向量
每年支付的频率,由逗号分隔的对组成“FloatReset”
和一个NINST
——- - - - - -1
向量。
请注意
浮动利率票据的支付是由重置日期之间的有效利率决定的。如果FRN的重置周期跨越了一个以上的树级别,由于树的重组性质,计算支付将变得不可能。也就是说,连接两个连续重置日期的树路径不能唯一确定,因为连接两个付款日期的可能路径不止一条。
数据类型:双
基础
- - - - - -日数基础
0
(实际/实际)(默认)|整数的0
来13
日计数基础表示年化输入正向速率树时使用的基础,指定为由逗号分隔的对组成“基础”
和一个NINST
——- - - - - -1
向量。
0 = actual/实际的
1 = 30/360 (sia)
2 =实际/360
3 =实际/365
4 = 30/360 (psa)
5 = 30/360 (isda)
6 = 30/360(欧洲)
7 =实际/365(日语)
8 =实际/实际(ICMA)
9 =实际/360 (ICMA)
10 =实际/365 (ICMA)
11 = 30/360e (icma)
12 =实际/365 (ISDA)
13 =总线/252
有关更多信息,请参见基础.
数据类型:双
主要
- - - - - -名义本金金额或本金价值表
One hundred.
(默认)|向量或单元格数组
名义本金,以逗号分隔的一对,由“校长”
和一个向量或单元格数组。
主要
接受一个NINST
——- - - - - -1
向量或NINST
——- - - - - -1
单元格数组,其中单元格数组的每个元素都是aNumDates
——- - - - - -2
单元格数组,第一列是日期,第二列是其相关的名义主值。日期表示主体值有效的最后一天。
数据类型:细胞
|双
选项
- - - - - -衍生品定价期权结构
结构
衍生品期权定价结构,指定为逗号分隔的对组成“选项”
一个结构使用derivset
.
数据类型:结构体
EndMonthRule
- - - - - -月末规则标志,用于生成日期成熟
一个月的月底日期是否只有30天或更少
1
(效果)(默认)|非负整数[0, 1]
月末规则标志,用于生成日期成熟
一个月的月底日期是否只有30天或更少,指定为逗号分隔的对,由“EndMOnthRule”
和一个非负整数[0
,1
用…NINST
——- - - - - -1
向量。
0
= Ignore规则,这意味着付款日期总是同一个数字日。1
=设置规则,这意味着付款日期总是每月的最后一天。
数据类型:逻辑
AdjustCashFlowsBasis
- - - - - -标记根据实际期间天数调整现金流
假
(默认)|的价值0
(虚假的)或1
(真正的)
标志,以根据实际期间天数计数调整现金流,指定为逗号分隔的对,由“AdjustCashFlowsBasis”
和一个NINST
——- - - - - -1
值为的逻辑向量0
(虚假的)或1
(真正的)。
数据类型:逻辑
假期
- - - - - -用于计算营业日的假日
如果未指定,则默认为使用holidays.m
(默认)|MATLAB®日期
用于计算营业日的假日,指定为逗号分隔的对,由“假期”
和MATLAB数据使用NHolidays
——- - - - - -1
向量。
数据类型:datetime
BusinessDayConvention
- - - - - -工作日惯例
实际
(默认)|特征向量|字符向量的单元格数组
工作日约定,指定为逗号分隔的对,由“BusinessDayConvention”
还有一个字符向量aN
——- - - - - -1
营业日惯例的字符向量的单元格数组。营业日惯例的选择决定了如何对待非营业日。非营业日定义为周末加上任何其他不营业的日期(如法定假日)。值:
实际
-非工作日被有效忽略。非营业日的现金流假定在实际日期进行分配。遵循
—非营业日的现金流假设在下一个营业日进行分配。modifiedfollow
—非营业日的现金流假设在下一个营业日进行分配。但是,如果下一个营业日在不同的月份,则采用前一个营业日。以前的
-非营业日的现金流假设在前一个营业日进行分配。modifiedprevious
-非营业日的现金流假设在前一个营业日进行分配。但是,如果前一个营业日在不同的月份,则采用下一个营业日。
数据类型:字符
|细胞
癸酸盐
- - - - - -年上限率
小数
年上限利率,指定为逗号分隔的对,由“癸酸盐
和一个NINST
——- - - - - -1
十进制年利率或NINST
——- - - - - -1
单元格数组,其中每个元素都是aNumDates
——- - - - - -2
单元格数组,单元格数组的第一列是日期,第二列是相关的上限费率。该日期表示上限费率生效的最后一天。
数据类型:双
|细胞
FloorRate
- - - - - -年楼面租金
小数
年最低利率,指定为逗号分隔的对,由“FloorRate”
和一个NINST
——- - - - - -1
十进制年利率或NINST
——- - - - - -1
单元格数组,其中每个元素都是aNumDates
——- - - - - -2
单元格数组,单元格数组的第一列是日期,第二列是相关的最低费率。日期表示最低费率有效的最后一天。
数据类型:双
|细胞
输出参数
价格
-时间0时浮动利率票据的预期价格
向量
时间0时浮动利率票据的预期价格,返回为aNINST
——- - - - - -1
向量。
PriceTree
-仪器价格的树形结构
结构
仪器价格的树结构,返回为MATLAB树结构,包含仪器价格和应计利息的向量,以及每个节点的观察时间向量。在PriceTree
:
PriceTree。PTree
包含干净的价格。PriceTree。AITree
包含应计利息。PriceTree.tObs
包含观测次数。PriceTree。连接
包含连接向量。单元格数组中的每个元素描述了该层的节点如何连接到下一层。对于给定的树层,有NumNodes
元素,它们包含中间分支连接到的下一层节点的索引。从该值减去1表示向上分支连接的位置,加上1表示向下分支连接的位置。PriceTree。聚合氯化铝
包含概率数组。单元格数组的每个元素都包含该级别每个节点的向上、中间和向下转换概率。
更多关于
浮动利率注意
一个浮动利率注意是一种类似债券的证券,但票据的利率相对于参考指数利率定期重置,以反映市场利率的波动。
版本历史
R2006a之前介绍MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。