理解利率树模型
简介
金融工具工具箱™支持以下利率树:金宝app
Black-Derman-Toy (BDT)
Black-Karasinski (BK)
Heath-Jarrow-Morton (HJM)
Hull-White (HW)
Cox-Ingersoll-Ross (CIR)
Heath-Jarrow-Morton模型是利率衍生品定价中应用最广泛的模型之一。该模型考虑给定利率的初始期限结构和远期利率波动率的规范,基于统计过程构建代表利率演变的树。欲知进一步解释,请参阅书籍固定收益证券与利率期权模型罗伯特·a·贾罗著。
Black-Derman-Toy模型是另一个常用的利率衍生品定价分析模型。该模型考虑了给定的初始零利率期限结构和长期利率收益率波动率的规范,构建了表示利率演变的树。如需进一步解释,请参阅菲舍尔·布莱克、伊曼纽尔·德曼和威廉·托伊的论文《利率的单因素模型及其在国债期权中的应用》。
Hull-White模型结合利率的初始期限结构和波动率期限结构,构建了短期利率的三叉重组树。生成的树用于评估利率相关证券的价值。赫尔-怀特模型在金融工具工具箱软件中的实现仅限于一个因素。
布莱克-卡拉辛斯基模型是赫尔-怀特模型的单因素对数正态模型。
有关赫尔-怀特模型和布莱克-卡拉辛斯基模型的进一步信息,请参阅该书期权、期货和其他衍生品约翰·c·赫尔著。
构建远期汇率树
远期利率树是表示一定时期内利率变化的基本单位。本节解释如何使用金融工具工具箱创建正向利率树。
请注意
为了避免不必要的重复,本文使用HJM和BDT模型来说明利率树的创建和使用。HW和BK模型与BDT模型类似。存在具体差异的地方,在HW和BK树结构.
MATLAB®创建速率树的函数是hjmtree
而且bdttree
.的hjmtree
功能创造结构,HJMTree
,包含茂密树木的时间和正向速率信息。的bdttree
函数创建了类似的结构,BDTTree
,表示重组树。
此结构是一个自包含单元,其中包括速率树(在FwdTree
结构的字段)以及用于构建此树的波动性、速率和时间规范。
这些函数以三个结构体作为输入参数:
波动率模型
VolSpec
.(见指定波动性模型(VolSpec).)利率期限结构
RateSpec
.(见指定利率期限结构(RateSpec).)树时间布局
TimeSpec
.(见指定时间结构(TimeSpec).)
可视化您创建的任何树的一个简单方法是使用树状视图
函数,该函数以图形方式显示树。看到树木的图形表示有关树状视图
.
调用序列
的调用语法hjmtree
是HJMTree = HJMTree (VolSpec, RateSpec, TimeSpec)
.
的调用语法类似地bdttree
是BDTTree = BDTTree (VolSpec, RateSpec, TimeSpec)
.
这些函数都需要VolSpec
,RateSpec
,TimeSpec
输入参数:
VolSpec
是指定正向汇率波动过程的结构。您创建VolSpec
使用任意一个函数hjmvolspec
或bdtvolspec
.的
hjmvolspec
函数最多支持三个因金宝app子的规格。它处理利率期限结构波动的这些模型:常数
静止的
指数
Vasicek
成比例的
单因素模型假设利率期限结构受单一不确定性来源的影响。结合多个因素可以让你在利率结构的形状和位置上指定不同类型的变化。看到
hjmvolspec
获取详细信息。的
bdtvolspec
函数只支持单个波动金宝app因子。波动性在树的节点对之间保持不变。您以十进制值的矢量形式提供输入波动值。看到bdtvolspec
获取详细信息。TimeSpec
是树时间布局规范。用函数创建这个变量hjmtimespec
或bdttimespec
.它表示费率报价的级别时间和级别日期之间的映射。这个结构间接地决定了树中的层数。
指定波动性模型(VolSpec)
因为HJM支持多因素(最金宝app多3个)波动率模型,而BDT(也包括BK和HW)只支持单一波动率模型hjmvolspec
而且bdtvolspec
函数需要不同的输入,产生的输出也略有不同。有关示例,请参见创建HJM波动率模型.有关BDT示例,请参见创建BDT波动率模型.
创建HJM波动率模型
这个函数hjmvolspec
生成结构VolSpec
,其中规定了波动过程
用于创建正向速率树。在这种情况下,资本T表示正向速率的开始时间,和t表示观测时间。波动性过程可以由在创建该过程的函数调用中按顺序指定的因素组合来构造。每个因子规范都以指定因子名称的字符向量开始,然后是相关参数。
HJM波动率规范示例。考虑一个使用单一因子的例子,具体地说,常数-西格玛因子。常量因子规范只需要一个参数,即值 .在本例中,该值对应于0.10。
HJMVolSpec = HJMVolSpec (“不变”, 0.10)
HJMVolSpec = FinObj: 'HJMVolSpec' FactorModels: {'Constant'} FactorArgs: {{1x1 cell}} SigmaShift: 0 NumFactors: 1 NumBranch: 2 PBranch: [0.5000 0.5000] Fact2Branch: [-1 1]
的NumFactors
字段VolSpec
结构,VolSpec。NumFactors = 1
,揭示了用于生成的因子的数量VolSpec
是一个。的FactorModels
字段表示是常数
因子,和NumBranches
Field分支数量。因此,结果树的每个节点都有两个分支,一个向上,另一个向下。
现在考虑一个由比例因子和指数因子构成的双因子波动过程。
指数因子Sigma_0 = 0.1;Lambda = 1;比例因子CurveProp = [0.11765;0.08825;0.06865);CurveTerm = [1;2;3);%构建VolSpecHJMVolSpec = HJMVolSpec (“比例”, CurveProp, CurveTerm,…1 e6,“指数”, Sigma_0, Lambda)
HJMVolSpec = FinObj: 'HJMVolSpec' FactorModels: {'Proportional' 'Exponential'} FactorArgs: {{1x3 cell} {1x2 cell}} SigmaShift: 0 NumFactors: 2 NumBranch: 3 PBranch: [0.2500 0.2500 0.5000] Fact2Branch: [2x3 double]
输出显示波动率规范是使用两个因素生成的。树的每个节点有三个分支。从上到下,每个分支的概率分别为0.25、0.25和0.5。
创建BDT波动率模型
这个函数bdtvolspec
生成结构VolSpec
,其中规定了波动过程。该函数需要三个输入参数:
估价日期
ValuationDate
收益率波动结束日期
VolDates
收益率波动值
VolCurve
可选的第四个参数InterpMethod
,指定插值方法,可以包括在内。
用于调用的语法bdtvolspec
是:
BDTVolSpec = BDTVolSpec (ValuationDate, VolDates, VolCurve,…InterpMethod)
地点:
ValuationDate
是树中的第一个观测日期。VolDates
表示收益率波动率结束日期的日期向量。VolCurve
是收益率波动值的向量。InterpMethod
是用插值的方法。默认为线性
.
BDT挥发率规范示例。考虑下面的例子:
ValuationDate = datetime(2000,1,1);EndDates = [datetime(2001,1,1);datetime(2002年,1,1);Datetime (2003,1,1);datetime(2005年,1,1)];波动率= [.2;.19;只要;.17;16);
使用bdtvolspec
创建一个波动性规范。由于没有显式指定插值方法,函数使用线性
违约。
BDTVolSpec = BDTVolSpec(估值日期,结束日期,波动率)
BDTVolSpec = FinObj: 'BDTVolSpec' ValuationDate: 730486 VolDates: [5x1 double] VolCurve: [5x1 double] VolInterpMethod: 'linear'
指定利率期限结构(RateSpec)
结构RateSpec
是一种利率期限结构,它定义了派生树利率的初始正向利率规范。利率期限结构建模说明如何使用函数创建这些结构intenvset
,给出利率,每个利率的开始和结束日期,以及复利值。
速率规格创建示例
考虑下面的例子:
复利= 1;比率= [0.02;0.02;0.02;0.02);开始日期= [' 01 - 1月- 2000;' 01 - 1月- 2001;' 01 - 1月- 2002;' 01 - 1月- 2003];结束日期= [' 01 - 1月- 2001;' 01 - 1月- 2002;' 01 - 1月- 2003;' 01 - 1月- 2004];ValuationDate =' 01 - 1月- 2000;RateSpec = intenvset(“复合”, 1“利率”率,…startdate可以的startdate可以,“EndDates”EndDates,…“ValuationDate”ValuationDate)
RateSpec = FinObj: 'RateSpec'复合:1光盘:[4x1 double]利率:[4x1 double] EndTimes: [4x1 double] StartTimes: [4x1 double] EndDates: [4x1 double] StartDates: [4x1 double] ValuationDate: 730486基础:0 EndMonthRule: 1
使用函数datedisp
检查变量中定义的日期RateSpec
.例如:
datedisp (RateSpec.ValuationDate)
01 - 1月- 2000
指定时间结构(TimeSpec
)
结构TimeSpec
指定利率树的时间结构。这个结构定义了树的每个层次上的观测时间与相应日期之间的映射。
TimeSpec
是否使用hjmtimespec
或bdttimespec
函数。这些函数需要三个输入参数:
估价日期
ValuationDate
到期日
成熟
复利率
复合
例如,用于调用的语法hjmtimespec
是
TimeSpec = hjmtimespec(估值日期,成熟度,复合)
地点:
ValuationDate
是树中的第一个观测日期。成熟
表示树的现金流日期的日期向量。这些期限的任何工具现金流都落在树节点上。复合
年化时复利率的频率。
创建时间规范
使用与创建利率期限结构相同的数据调用时间规范创建函数,RateSpec
构建指定树的时间布局的结构。
HJM时间规范示例。考虑下面的例子:
期限=结束日期;HJMTimeSpec = HJMTimeSpec(估值日期,成熟度,复合)
HJMTimeSpec = FinObj: 'HJMTimeSpec'估值日期:730486期限:[4x1 double]复利:1基准:0结束月规则:1
在构建时指定的期限TimeSpec
不必与之重合EndDates
的速率区间RateSpec
.自TimeSpec
定义树的时间-日期映射,在RateSpec
是插值得到的初始利率,其期限等于年利率TimeSpec
.
创建BDT时间规格。考虑下面的例子:
期限=结束日期;BDTTimeSpec = BDTTimeSpec(估值日期,期限,复合)
BDTTimeSpec = FinObj: 'BDTTimeSpec'估值日期:730486成熟度:[4x1 double]复利:1基础:0结束月规则:1
创建树
使用VolSpec
,RateSpec
,TimeSpec
您之前创建的用于创建HJM和BDT树的函数的输入。
创建HJM树
将波动系数重置为常量HJMVolSpec = HJMVolSpec (“不变”, 0.10);HJMTree = HJMTree (HJMVolSpec, RateSpec, HJMTimeSpec)
HJMTree = FinObj: 'HJMFwdTree' VolSpec: [1x1 struct] TimeSpec: [1x1 struct] RateSpec: [1x1 struct] tObs: [0 1 2 3] TFwd: {[4x1 double][3x1 double][2x1 double][3]} CFlowT: {[4x1 double][3x1 double][2x1 double][4]} FwdTree:{[4x1 double][3x1x2 double][2x2x2 double][1x4x2 double][1x4x2 double]
创建BDT树
现在使用之前计算的值VolSpec
,RateSpec
,TimeSpec
作为函数的输入bdttree
创建BDT树。
BDTTree = BDTTree (BDTVolSpec, RateSpec, BDTTimeSpec)
BDTTree = FinObj: 'BDTFwdTree' VolSpec: [1x1 struct] TimeSpec: [1x1 struct] RateSpec: [1x1 struct] tObs: [0 1.00 2.00 3.00] TFwd: {[4x1 double] [3x1 double] [2x1 double] [3.00]} CFlowT: {[4x1 double] [3x1 double] [2x1 double] [4.00]} FwdTree: {[1.02 1.02] [1.01 1.02 1.03] [1.01 1.02 1.02 1.02 1.03]}
研究树木
在使用模型时,Financial Instruments Toolbox使用树表示远期利率、价格等。在最高层,这些树有结构包裹着它们。这些结构封装了完整解释树中包含的信息所需的信息。
考虑这个例子,它在mat文件中使用利率和投资组合数据deriv.mat
包含在工具箱中。
将数据加载到MATLAB工作区中。
负载deriv.mat
显示从mat文件加载的变量列表。
谁
名称大小字节类属性BDTInstSet 1x1 15956 struct BDTTree 1x1 5138 struct BKInstSet 1x1 15946 struct BKTree 1x1 5904 struct CRRInstSet 1x1 12434 struct CRRTree 1x1 5058 struct EQPInstSet 1x1 12434 struct EQPTree 1x1 5058 struct HJMInstSet 1x1 15948 struct HJMTree 1x1 5838 struct HWInstSet 1x1 15946 struct HWTree 1x1 5904 struct ITTInstSet 1x1 12438 struct ITTTree 1x1 8862 struct ZeroInstSet 1x1 10282 struct ZeroRateSpec 1x1 1580 struct
HJM树形结构
的内容HJMTree
结构。
HJMTree
HJMTree = FinObj: 'HJMFwdTree' VolSpec: [1x1 struct] TimeSpec: [1x1 struct] RateSpec: [1x1 struct] tObs: [0 1 2 3] TFwd: {[4x1 double][3x1 double][2x1 double][3]} CFlowT: {[4x1 double][3x1 double][2x1 double][4]} FwdTree:{[4x1 double][3x1x2 double][2x2x2 double][1x4x2 double][1x4x2 double]
FwdTree
包含实际的正向速率树。MATLAB将其表示为一个单元格数组,每个单元格数组元素包含一个树级。
其他字段包含与解释中的值相关的其他信息FwdTree
.最重要的是VolSpec
,TimeSpec
,RateSpec
,分别包含波动率、时间结构和利率结构信息。
第一个节点。观察远期汇率FwdTree
.第一个节点表示估值日期,tObs = 0
.
HJMTree。FwdTree{1}
卖出价= 1.0356 1.0468 1.0523 1.0563
请注意
金融工具工具箱使用逆的折扣表示树中正向速率的符号。逆贴现表示资产的当前价值乘以其未来价值的一个因子。一般来说,这些远期因子是贴现因子的倒数。
仔细看RateSpec
用于生成此树的结构,以查看这些值的起源。将值排列在一个数组中。
[HJMTree.RateSpec。开始时间HJMTree.RateSpec.EndTimes…HJMTree.RateSpec.Rates]
Ans = 0 1.0000 0.0356 1.0000 2.0000 0.0468 2.0000 3.0000 0.0523 3.0000 4.0000 0.0563
如果你在第三列中找到相应的利率的逆折现,你就得到了树的第一个节点的值。您可以使用该函数将利率转换为反向折扣rate2disc
.
圆盘= rate2圆盘(hjmtree . timespec . compound,…HJMTree.RateSpec。率、HJMTree.RateSpec.EndTimes…HJMTree.RateSpec.StartTimes);FRates = 1./光盘
FRates = 1.0356 1.0468 1.0523 1.0563
第二个节点。第二个节点表示一流的观测时间,tObs = 1
.这个节点显示两个状态:一个表示向上的分支,另一个表示向下的分支。
请注意,HJMTree.VolSpec.NumBranch = 2
.
HJMTree。VolSpec
ans = FinObj: 'HJMVolSpec' FactorModels: {'Constant'} FactorArgs: {{1x1 cell}} SigmaShift: 0 NumFactors: 1 NumBranch: 2 PBranch: [0.5000 0.5000] Fact2Branch: [-1 1]
检查向上分支对应的节点的速率。
HJMTree.FwdTree {2} (:,: 1)
卖出价= 1.0364 1.0420 1.0461
现在检查相应的向下分支。
HJMTree.FwdTree {2} (:: 2)
卖出价= 1.0574 1.0631 1.0672
第三个节点。第三个节点表示第二次观测时间,tObs = 2
.这个节点总共包含四个状态,两个表示向上的分支,另外两个表示向下的分支。检查节点对应up状态的速率。
HJMTree.FwdTree {3} (:,: 1)
卖出价= 1.0317 1.0526 1.0358 1.0568
接下来检查相应的向下状态。
HJMTree.FwdTree {3} (:: 2)
卖出价= 1.0526 1.0738 1.0568 1.0781
隔离指定节点。从第三层开始,在树单元数组中建立索引变得复杂,并且隔离特定节点可能很困难。这个函数bushpath
通过将到达该节点的路径指定为到达该节点的分支向量来隔离特定节点。例如,考虑从根节点开始到达的节点,向上取分支,然后向下取分支,然后向下取另一个分支。假设树每个节点只有两个分支,向上的分支对应于1,向下的分支对应于2。从上到下的路径变成了向量[1 2 2]
.
FRates =灌木路径(HJMTree。FwdTree, [1 2 2])
FRates = 1.0356 1.0364 1.0526 1.0674
bushpath
返回输入参数中指定的路径所选中的所有节点的即期汇率,第一个节点对应根节点,最后一个节点对应目标节点。
使用直接索引隔离相同的节点
HJMTree。FwdTree{4}(:, 3, 2)
Ans = 1.0674
正如预期的那样,这个值对应于返回的速率的最后一个元素bushpath
.
您可以将这些技术用于“金融工具工具箱”生成的任何类型的树,例如正向利率树或价格树。
BDT树结构
的内容BDTTree
结构。
BDTTree
BDTTree = FinObj: 'BDTFwdTree' VolSpec: [1x1 struct] TimeSpec: [1x1 struct] RateSpec: [1x1 struct] tObs: [0 1.00 2.00 3.00] TFwd: {[4x1 double] [3x1 double] [2x1 double] [3.00]} CFlowT: {[4x1 double] [3x1 double] [2x1 double] [4.00]} FwdTree: {[1.10 1.14] [1.10 1.14 1.19] [1.09 1.12 1.16 1.22]}
FwdTree
包含实际的速率树。MATLAB将其表示为一个单元格数组,每个单元格数组元素包含一个树级。
其他字段包含与解释中的值相关的其他信息FwdTree
.最重要的是VolSpec
,TimeSpec
,RateSpec
,分别包含波动率、时间结构和利率结构信息。
看看RateSpec
用于生成此树的结构,以查看这些值的起源。将值排列在一个数组中。
[BDTTree.RateSpec。开始时间BDTTree.RateSpec.EndTimes…BDTTree.RateSpec.Rates]
Ans = 0 1.0000 0.1000 0 2.0000 0.1100 0 3.0000 0.1200 0 4.0000 0.1250
看看里面的汇率FwdTree
.第一个节点表示估值日期,tObs = 0
.第二个节点表示tObs = 1
.检查第二、第三和第四个节点上的速率。
BDTTree。FwdTree{2}
Ans = 1.0979 1.1432
第二个节点表示第一次观测时间,tObs = 1
.该节点总共包含两个状态,一个表示向上(1.0979
),另一个代表向下的分支(1.1432
).
请注意
本文档约定为显示价格在上面的树枝上。当显示时利率,上支的税率在下降,下支的税率在增加。
BDTTree。FwdTree{3}
Ans = 1.0976 1.1377 1.1942
第三个节点表示第二次观测时间tObs = 2
.该节点总共包含三个状态,一个表示向上(1.0976
),一个代表中间的分支(1.1377
),另一个代表向下的分支(1.1942
).
BDTTree。FwdTree{4}
Ans = 1.0872 1.1183 1.1606 1.2179
第四个节点表示第三次观测时间,tObs = 3
.该节点总共包含四个状态,其中一个表示向上(1.0872
),其中两个代表中间的分支(1.1183
而且1.1606
),另一个表示向下的分支(1.2179
).
隔离指定节点。这个函数treepath
通过将到达该节点的路径指定为到达该节点的分支向量来隔离特定节点。例如,考虑从根节点开始到达的节点,向上取分支,然后向下取分支,最后向下取另一个分支。假设树每个节点只有两个分支,向上的分支对应于1,向下的分支对应于2。从上到下的路径变成了向量[1 2 2]
.
FRates = treepath(bdtretree。FwdTree, [1 2 2])
FRates = 1.1000 1.0979 1.1377 1.1606
treepath
返回输入参数中指定的路径所选中的所有节点的短速率,第一个节点对应根节点,最后一个节点对应目标节点。
HW和BK树结构
HW和BK树结构类似于BDT树结构。如果检查文件中包含的示例HW树,就可以看到这一点deriv.mat
.
负载deriv.mat;HWTree
HWTree = FinObj: 'HWFwdTree' VolSpec: [1x1 struct] TimeSpec: [1x1 struct] RateSpec: [1x1 struct] tObs: [0 1.00 2.00 3.00] dObs: [731947.00 732313.00 732678.00 733043.00] CFlowT: {[4x1 double] [3x1 double] [3x1 double] [2x1 double] [2x1 double] [4.00]} Probs: {[3x1 double] [3x3 double] [3x5 double]}连接:{[2.00 3.00 4.00][1.08 1.04 1.02][1.08 1.07 1.05 1.03 1.01][1.09 1.08 1.06 1.04 1.02]
该结构的所有字段都与BDT对应的字段相似。BDT中还有两个字段没有出现:聚合氯化铝
而且连接
.的聚合氯化铝
字段表示树中每个节点的每个分支上的发生概率。的连接
字段描述给定树级别的节点与下一个树级别的节点之间的连通性。
聚合氯化铝
字段。虽然BDT和单因素HJM模型在一个节点上的每个分支具有相同的概率,但HW和BK没有。对于HW和BK树,聚合氯化铝
Field表示从一个节点移动到下一层的另一个节点时使用特定分支的可能性。
的聚合氯化铝
字段由一个单元格数组组成,每个树级有一个单元格。每个单元格都是3.
——- - - - - -NUMNODES
数组,上面一行表示向上移动的概率,中间一行表示中间移动的概率,最后一行表示向下移动的概率。
的前两个元素作为说明聚合氯化铝
结构的字段,对应于树的第一级(根)和第二级。
HWTree。聚合氯化铝{1}
0.1666666666666667 0.666666666667 0.166666666667
HWTree。聚合氯化铝{2}
0.12361333418768 0.1666666666666667 0.21877591615172 0.65761074966060 0.66666666666667 0.65761074966060 0.21877591615172 0.16666666666667 0.12361333418768
从上到下读取,其中的值HWTree。聚合氯化铝{1}
对应于根节点上,中,下的概率。
HWTree。聚合氯化铝{2}
是一个3.
——- - - - - -3.
值的矩阵。第一列表示顶部节点,第二列表示中间节点,最后一列表示底部节点。与根节点一样,第一行、第二行和第三行保存从每个节点向上、中间和向下分支的值。
正如预期的那样,任何节点上所有概率的和都等于1。
sum (HWTree.Probs {2})
1.0000 1.0000 1.0000
连接领域。区分HW和BK树结构与BDT树结构的另一个领域是连接
.该字段描述了给定级别中的每个节点如何连接到下一级别的节点。对这个字段的需求来自于树中可能出现的非标准分支。
的连接
HW树结构的字段由一个单元数组组成,每个树级有一个单元。
HWTree。连接
Ans = [2] [1x3 double] [1x5 double]
每个单元格包含一个1
——- - - - - -NUMNODES
向量。向量中的每个值都与相应树级别中的一个节点相关,并表示该节点的中间分支连接到的下一个树级别中的节点的索引。
中包含的值减去1连接
,则显示向上分支所连接的下一层节点的索引。如果你加上1
对于这些值,您将显示相应向下分支的索引。
举例来说,考虑一下HWTree。连接{1}
:
HWTree。连接{1}
Ans = 2
这表明根节点的中间分支如预期的那样连接到下一层的第二个(从顶部)节点。如果减去1
从这个值可以得到1
,它告诉您向上分支到顶部节点。如果你加上1
,你得到3.
,它指向树的第二层的最后一个节点。
现在考虑这个例子中的第3级:
HWTree。连接{3}
2 2 3 4 4
在这个层次上,存在非标准分支。这很容易识别,因为两个节点的中间分支连接到下一层的同一节点。
为了使其可视化,请考虑下面的树说明。
在这里,在树的第三层,即顶部和底部节点上,显然存在非标准分支。第一个和第二个节点连接到下一层的相同的三个节点。类似的分支发生在树的底部和相邻底部的节点上。
另请参阅
instbond
|instcap
|instcf
|instfixed
|instfloat
|instfloor
|instoptbnd
|instoptembnd
|instoptfloat
|instoptemfloat
|instrangefloat
|instswap
|instswaption
|intenvset
|bondbyzero
|cfbyzero
|fixedbyzero
|floatbyzero
|intenvprice
|intenvsens
|swapbyzero
|floatmargin
|floatdiscmargin
|hjmtimespec
|hjmtree
|hjmvolspec
|bondbyhjm
|capbyhjm
|cfbyhjm
|fixedbyhjm
|floatbyhjm
|floorbyhjm
|hjmprice
|hjmsens
|mmktbyhjm
|oasbyhjm
|optbndbyhjm
|optfloatbyhjm
|optembndbyhjm
|optemfloatbyhjm
|rangefloatbyhjm
|swapbyhjm
|swaptionbyhjm
|bdttimespec
|bdttree
|bdtvolspec
|bdtprice
|bdtsens
|bondbybdt
|capbybdt
|cfbybdt
|fixedbybdt
|floatbybdt
|floorbybdt
|mmktbybdt
|oasbybdt
|optbndbybdt
|optfloatbybdt
|optembndbybdt
|optemfloatbybdt
|rangefloatbybdt
|swapbybdt
|swaptionbybdt
|hwtimespec
|hwtree
|hwvolspec
|bondbyhw
|capbyhw
|cfbyhw
|fixedbyhw
|floatbyhw
|floorbyhw
|hwcalbycap
|hwcalbyfloor
|hwprice
|hwsens
|oasbyhw
|optbndbyhw
|optfloatbyhw
|optembndbyhw
|optemfloatbyhw
|rangefloatbyhw
|swapbyhw
|swaptionbyhw
|bktimespec
|bktree
|bkvolspec
|bkprice
|bksens
|bondbybk
|capbybk
|cfbybk
|fixedbybk
|floatbybk
|floorbybk
|oasbybk
|optbndbybk
|optfloatbybk
|optembndbybk
|optemfloatbybk
|rangefloatbybk
|swapbybk
|swaptionbybk
|capbyblk
|floorbyblk
|swaptionbyblk