主要内容

hjmprice

工具价格从希斯-贾罗-莫顿利率树

描述

例子

价格PriceTree) = hjmprice (HJMTreeInstSet通过创建的利率树计算工具的无套利价格hjmtree.金融工具变量中包含的所有工具,InstSet定价。

hjmprice处理仪器类型:“债券”“现金流”“OptBond”“OptEmBond”“OptEmBond”“OptFloat”“OptEmFloat”“固定”“浮”“帽子”“地板”“RangeFloat”“交换”.看到instadd构造已定义的类型。

例子

价格PriceTree) = hjmprice (___选项的可选输入参数选项

例子

全部折叠

从数据文件加载HJM树和工具deriv.mat

负载deriv.mat;HJMSubSet = instselect (HJMInstSet,“类型”, {“债券”“帽子”});instdisp (HJMSubSet)
指数类型CouponRate结算期限为基础EndMonthRule IssueDate FirstCouponDate LastCouponDate StartDate可以面对名称数量1键0.04 01 - 1月- 2000年01 - 2003年1月- 1南南南南南南南4%债券100 2债券0.04 01 - 1月- 2000年01 - 2004年1月- 2南南南南南南南4%债券50指数类型罢工解决成熟度CapReset主要基础名称数量3 Cap 0.03 01-Jan-2000 01-Jan-2004 1 NaN NaN 3% Cap 30

使用hjmprice为仪器定价。

[价格,价格树]= hjmprice(HJMTree, hjm子集)
警告:不是所有的现金流都与树一致。结果将近似。在hjmprice (line 85)中Price = 98.7159 97.5280 6.2831 PriceTree = FinObj: 'HJMPriceTree' PBush: {[3x1 double] [3x1x2 double] [3x2x2 double] [3x4x2 double]} tObs: [0 1 2 3 4]

您可以使用树状视图看看这三种乐器在价格树上的价格。

树状视图

利率期限结构数据如下:

率= (0.035;0.042147;0.047345;0.052707);ValuationDate =“2010年1月- 1”;startdate可以= ValuationDate;EndDates = {“2011年1月- 1”“2012年1月- 1”“2013年1月- 1”“2014年1月- 1”};复合= 1;

创建一个RateSpec

RS = intenvset (“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RS =结构体字段:FinObj: 'RateSpec' compound: 1 Disc: [4x1 double] Rates: [4x1 double] EndTimes: [4x1 double] StartTimes: [4x1 double] EndDates: [4x1 double] StartDates: 734139 ValuationDate: 734139 Basis: 0 EndMonthRule: 1

创建一个不同期限的阶梯式息票债券投资组合。

解决=' 01 - 1月- 2010;成熟= {' 01 - 1月- 2011' 01 - 1月- 2012' 01 - 1月- 2013' 01 - 1月- 2014};CouponRate = {{' 01 - 1月- 2011.042;' 01 - 1月- 2012. 05;' 01 - 1月- 201306;' 01 - 1月- 201407}};ISet = instbond(息票率,结算,到期,1);instdisp (ISet)
指数类型CouponRate结算期限为基础EndMonthRule IssueDate FirstCouponDate LastCouponDate StartDate可以面对1键(细胞)01 - 1月- 2010年01 - 1月- 2011年1 0 1南南南南100 2键(细胞)01 - 1月- 2010年01 - 1月- 2012年1 0 1南南南南100 3的债券(细胞)01 - 1月- 2010年01 - 1月- 2013年1 0 1南南南南100 4债券(细胞)01 - 1月- 2010年01 - 1月- 201410 1 NaN NaN 100

使用以下数据构建树:

波动率= [2;.19;只要;.17];CurveTerm = [1;2;3;4);HJMTimeSpec = HJMTimeSpec (ValuationDate, EndDates);HJMVolSpec = HJMVolSpec (“比例”,波动率,曲线项,1e6);HJMT = hjmtree (RS, HJMVolSpec HJMTimeSpec)
HJMT =结构体字段:[0 1 23] dObs: [734139 734504 734869 735235] TFwd: {[4x1 double] [3x1 double] [2x1 double] [4]} CFlowT: {[4x1 double] [3x1 double] [2x1 double] [4]}

计算阶梯息票债券的价格。

HJMT = hjmprice(HJMT, ISet)
PHJM =4×1100.6763 100.7368 100.9266 101.0115

利率期限结构数据如下:

率= (0.035;0.042147;0.047345;0.052707);ValuationDate =“2010年1月- 1”;startdate可以= ValuationDate;EndDates = {“2011年1月- 1”“2012年1月- 1”“2013年1月- 1”“2014年1月- 1”};复合= 1;

创建一个RateSpec

RS = intenvset (“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RS =结构体字段:FinObj: 'RateSpec' compound: 1 Disc: [4x1 double] Rates: [4x1 double] EndTimes: [4x1 double] StartTimes: [4x1 double] EndDates: [4x1 double] StartDates: 734139 ValuationDate: 734139 Basis: 0 EndMonthRule: 1

创建一个三阶可赎回债券和三阶普通债券的工具组合,并显示工具组合。

解决=' 01 - 1月- 2010;成熟= {' 01 - 1月- 2012' 01 - 1月- 2013' 01 - 1月- 2014};CouponRate = {{' 01 - 1月- 2011.042;' 01 - 1月- 2012. 05;' 01 - 1月- 201306;' 01 - 1月- 201407}};OptSpec =“电话”;罢工= 100;ExerciseDates =' 01 - 1月- 2011一年内可赎回带有嵌入期权的债券ISet = instoptembnd(息票率,结算,到期,OptSpec, Strike,...ExerciseDates,“时间”1);%纯债券ISet = instbond(ISet, CouponRate, Settle, Maturity, 1);instdisp (ISet)
索引类型CouponRate解决成熟度OptSpec罢工ExerciseDates时期基础EndMonthRule IssueDate FirstCouponDate LastCouponDate StartDate可以面对AmericanOpt 1 OptEmBond[电池]01 - 1月- 2010年01 - 1月- 2012拨打100 01 - 1月- 2011年1 0 1南南南南100 0 2 OptEmBond[电池]01 - 1月- 2010年01 - 1月- 2013拨打100 01 - 1月- 2011年1 0 1南南南南100 0 3OptEmBond[电池]01 - 1月- 2010年01 - 1月- 2014拨打100 01 - 1月- 2011年1 0 1南南南南100 0索引类型CouponRate结算期限为基础EndMonthRule IssueDate FirstCouponDate LastCouponDate StartDate可以面对4债券(细胞)01 - 1月- 2010年01 - 1月- 2012年1 0 1南南南南100 5的债券(细胞)01 - 1月- 2010年01 - 1月- 2013年1 0 1南南南南100 6键[细胞]01- 1- 2010 01- 1- 2014 10 1 NaN NaN 100

使用以下数据构建树:

波动率= [2;.19;只要;.17];CurveTerm = [1;2;3;4);HJMTimeSpec = HJMTimeSpec (ValuationDate, EndDates);HJMVolSpec = HJMVolSpec (“比例”,波动率,曲线项,1e6);HJMT = hjmtree (RS, HJMVolSpec HJMTimeSpec)
HJMT =结构体字段:[0 1 23] dObs: [734139 734504 734869 735235] TFwd: {[4x1 double] [3x1 double] [2x1 double] [4]} CFlowT: {[4x1 double] [3x1 double] [2x1 double] [4]}

使用仪器的价格hjmprice

HJMT = hjmprice(HJMT, ISet)
PHJM =6×1100.3682 100.1557 99.9232 100.7368 100.0.9266 101.0115

前三行对应阶梯式可赎回债券的价格,最后三行对应阶梯式普通债券的价格。

利率期限结构数据如下:

率= (0.035;0.042147;0.047345;0.052707);ValuationDate =“2011年1月- 1”;startdate可以= ValuationDate;EndDates = {“2012年1月- 1”“2013年1月- 1”“2014年1月- 1”“2015年1月- 1”};复合= 1;

创建一个RateSpec

RS = intenvset (“ValuationDate”ValuationDate,startdate可以的...startdate可以,“EndDates”EndDates,“利率”率,“复合”复合)
RS =结构体字段:FinObj: 'RateSpec' compound: 1 Disc: [4x1 double] Rates: [4x1 double] EndTimes: [4x1 double] StartTimes: [4x1 double] EndDates: [4x1 double] StartDates: 734504 ValuationDate: 734504 Basis: 0 EndMonthRule: 1

创建一个包含两种区间票据和一种浮动利率票据的工具组合,并显示以下数据:

传播= 200;解决=“2011年1月- 1”;成熟=“2014年1月- 1”%第一个范围注RateSched(1)。日期= {“2012年1月- 1”“2013年1月- 1”“2014年1月- 1”};RateSched(1)。费率= [0.045 0.055;0.0525 - 0.0675;0.06 - 0.08);%第二范围注意事项RateSched(2)。日期= {“2012年1月- 1”“2013年1月- 1”“2014年1月- 1”};RateSched(2)。利率= [0.048 0.059;0.055 - 0.068;0.07 - 0.09);创建一个InstSetInstSet = instadd (“RangeFloat”, Spread, Settle, Maturity, RateSched);增加浮动利率票据InstSet = instadd (InstSet,“浮”传播,沉淀,成熟);%显示投资组合仪表instdisp (InstSet)
指数型传播解决成熟度RateSched FloatReset基础主要EndMonthRule 1 RangeFloat 200 01 - 1月- 2011年01 - 100年1月- 2014(结构)1 0 1 2 RangeFloat 200 01 - 1月- 2011年01 - 100年1月- 2014(结构)1 0 1索引类型传播解决成熟度FloatReset基础主要EndMonthRule癸酸盐FloorRate浮动200 01 - 1月- 2011年01 - 100年1月- 2014 1 0 1正无穷

构建树的数据如下:

波动率= [2;.19;只要;.17];CurveTerm = [1;2;3;4);MaTree = {“2012年1月- 1”“2013年1月- 1”“2014年1月- 1”“2015年1月- 1”};HJMTS = hjmtimespec(ValuationDate, MaTree);HJMVS = hjmvolspec (“比例”,波动率,曲线项,1e6);HJMT = hjmtree(HJMVS, RS, HJMTS)
HJMT =结构体字段:[0 1 23] dObs: [734504 734869 735235 735600] TFwd: {[4x1 double] [3x1 double] [2x1 double] [4]} CFlowT: {[4x1 double] [3x1 double] [2x1 double] [4]}

价格组合。

价格= hjmprice(HJMT, InstSet)
价格=3×191.1555 90.6656 105.5147

使用instswap创建浮动-浮动互换,并为互换定价hjmprice

RateSpec = intenvset (“利率”, 0。StartDate可以的,今天,“EndDate”datemnth(今天60));= instswap([。02 . 03],今天,datemnth(今天,60 ),[], [], [], [ 1 1]);VolSpec = hjmvolspec (“不变”, 2);TimeSpec = hjmtimespec(今天,cfdates(今天,datemnth(今天,60),1));HJMTree = HJMTree (VolSpec RateSpec TimeSpec);hjmprice (HJMTree)
ans = -4.3220

使用instswap创建多个互换,并为互换定价hjmprice

RateSpec = intenvset (“利率”, 0。StartDate可以的,今天,“EndDate”datemnth(今天60));= instswap([。03年02),今天,datemnth(今天,60 ),[], [], [], [ 1 1]);是= instswap((200 300),今天,datemnth(今天,60吗 ),[], [], [], [ 0 0]);是= instswap((。08年300),今天,datemnth(今天,60 ),[], [], [], [ 1 0]);VolSpec = hjmvolspec (“不变”, 2);TimeSpec = hjmtimespec(今天,cfdates(今天,datemnth(今天,60),1));HJMTree = HJMTree (VolSpec RateSpec TimeSpec);hjmprice (HJMTree)
ans =3×14.3220 -4.3220 -0.2701

输入参数

全部折叠

利率树结构,通过使用hjmtree

数据类型:结构体

包含集合的仪器变量NINST仪器,指定使用instadd.仪器按类型分类;每种类型可以有不同的数据字段。存储的数据字段是每个仪器的行向量或字符向量。

数据类型:结构体

(可选)衍生品定价期权结构,创建使用derivset

数据类型:结构体

输出参数

全部折叠

每一种乐器的价格,以NINST——- - - - - -1向量。在利率树上通过逆向动态规划计算价格。如果一种乐器不能被定价,则必须对其进行定价在该条目中返回。

相关的单类定价功能如下:

树状结构的仪器价格,返回作为MATLAB®树的结构,包含仪器价格和应计利息的向量,以及每个节点的观测时间的向量。在PriceTree

  • PriceTree。PTree包含清洁价格。

  • PriceTree。AITree包含应计利息。

  • PriceTree.tObs包含观测时间。

之前介绍过的R2006a