主要内容gydF4y2Ba

SABRBraceGatarekMusielagydF4y2Ba

创建gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba的模型对象gydF4y2Ba帽gydF4y2Ba,gydF4y2Ba地板上gydF4y2Ba,gydF4y2BaFixedBondgydF4y2Ba,gydF4y2BaFloatBondgydF4y2Ba,gydF4y2BaFloatBondOptiongydF4y2Ba,gydF4y2BaFixedBondOptiongydF4y2Ba,gydF4y2BaOptionEmbeddedFixedBondgydF4y2Ba,或gydF4y2BaOptionEmbeddedFloatBondgydF4y2Ba仪器gydF4y2Ba

描述gydF4y2Ba

创建并定价gydF4y2Ba帽gydF4y2Ba,gydF4y2Ba地板上gydF4y2Ba,gydF4y2BaFloatBondgydF4y2Ba,gydF4y2BaFloatBondOptiongydF4y2Ba,gydF4y2BaFixedBondgydF4y2Ba,gydF4y2BaFixedBondOptiongydF4y2Ba,gydF4y2BaOptionEmbeddedFixedBondgydF4y2Ba,或gydF4y2BaOptionEmbeddedFloatBondgydF4y2Ba具有gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba使用此工作流建模:gydF4y2Ba

  1. 使用gydF4y2BafininstrumentgydF4y2Ba要创建gydF4y2Ba帽gydF4y2Ba,gydF4y2Ba地板上gydF4y2Ba,gydF4y2BaFixedBondgydF4y2Ba,gydF4y2BaFloatBondgydF4y2Ba,gydF4y2BaFloatBondOptiongydF4y2BaFixedBondOptiongydF4y2Ba,gydF4y2BaOptionEmbeddedFixedBondgydF4y2Ba,或gydF4y2BaOptionEmbeddedFloatBondgydF4y2Ba仪对象。gydF4y2Ba

  2. 使用gydF4y2BafinmodelgydF4y2Ba要指定gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba的模型对象。gydF4y2Ba帽gydF4y2Ba,gydF4y2Ba地板上gydF4y2Ba,gydF4y2BaFixedBondgydF4y2Ba,gydF4y2BaFloatBondgydF4y2Ba,gydF4y2BaFloatBondOptiongydF4y2Ba,gydF4y2BaFixedBondOptiongydF4y2Ba,gydF4y2BaOptionEmbeddedFixedBondgydF4y2Ba,或gydF4y2BaOptionEmbeddedFloatBondgydF4y2Ba仪对象。gydF4y2Ba

  3. 使用gydF4y2BafinpricergydF4y2Ba要指定gydF4y2BaIRMonteCarlogydF4y2Ba定价方法gydF4y2Ba帽gydF4y2Ba,gydF4y2Ba地板上gydF4y2Ba,gydF4y2BaFixedBondgydF4y2Ba,gydF4y2BaFloatBondgydF4y2Ba,gydF4y2BaFloatBondOptiongydF4y2Ba,gydF4y2BaFixedBondOptiongydF4y2Ba,gydF4y2BaOptionEmbeddedFixedBondgydF4y2Ba,或gydF4y2BaOptionEmbeddedFloatBondgydF4y2Ba仪对象。gydF4y2Ba

有关此工作流的详细信息,请参见gydF4y2Ba开始使用基于对象的金融工具定价框架的工作流程gydF4y2Ba.gydF4y2Ba

有关a的可用定价方法的更多信息gydF4y2Ba帽gydF4y2Ba,gydF4y2Ba地板上gydF4y2Ba,gydF4y2BaFixedBondgydF4y2Ba,gydF4y2BaFloatBondgydF4y2Ba,gydF4y2BaFloatBondOptiongydF4y2Ba,gydF4y2BaFixedBondOptiongydF4y2Ba,gydF4y2BaOptionEmbeddedFixedBondgydF4y2Ba,或gydF4y2BaOptionEmbeddedFloatBondgydF4y2Ba仪器,看gydF4y2Ba选择仪器,模型和价格gydF4y2Ba.gydF4y2Ba

创建gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

SABRBraceGatarekMusielaModelObjgydF4y2Ba= finmodel (gydF4y2BaModelTypegydF4y2Ba”,gydF4y2BaαgydF4y2Ba“alpha_value,”gydF4y2BaβgydF4y2Ba“beta_value,”gydF4y2BaVolatilityofVolatilitygydF4y2Ba“volatilityofvolatility_value,”gydF4y2BaFwdFwdCorrelationgydF4y2Ba“fwdfwdcorrelation_value,”gydF4y2BaVolVolCorrelationgydF4y2Ba”,volvolcorrelation_value)gydF4y2Ba创造经典gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba通过指定,对指向波动率相关性的前向为空的对象进行建模gydF4y2BaModelTypegydF4y2Ba和所需的名-值对参数gydF4y2BaαgydF4y2Ba,gydF4y2BaβgydF4y2Ba,gydF4y2BaVolatilityofVolatilitygydF4y2Ba,gydF4y2BaFwdFwdCorrelationgydF4y2Ba,gydF4y2BaVolVolCorrelationgydF4y2Ba设置gydF4y2Ba属性gydF4y2Ba使用名称-值对参数。例如,gydF4y2BaSABRBraceGatarekMusielaModelObj = finmodel("SABRBraceGatarekMusiela",'Alpha',Alpha,'Beta',Beta,'波动性',VolVolFunc,'FwdFwdCorrelation',FwdFwdCorrelation, 'VolVolCorrelation',VolVolCorrelation)gydF4y2Ba创造经典gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba对指向波动率相关性的前向为空的对象进行建模。gydF4y2Ba

例子gydF4y2Ba

SABRBraceGatarekMusielaModelObjgydF4y2Ba= finmodel (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba设置可选gydF4y2Ba属性gydF4y2Ba在前面的语法中,除了必需的参数之外,还使用其他的名称-值对。可以指定多个名称-值对参数。类的以下变体可以使用名称-值对来创建gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型:gydF4y2Ba

  • 创造经典gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象,使用gydF4y2BaFwdVolCorrelationgydF4y2Ba名称-值对参数:gydF4y2BaSABRBraceGatarekMusielaModelObj = finmodel("SABRBraceGatarekMusiela",'Alpha',Alpha,'Beta',Beta,' volatility ',VolVolFunc,'FwdFwdCorrelation',FwdFwdCorrelation,'VolVolCorrelation',VolVolCorrelation ', 'FwdVolCorrelation', 'FwdVolCorrelation',FwdVolCorrelation ',FwdVolCorrelation ',FwdVolCorrelation ',FwdVolCorrelation ',FwdVolCorrelation ',FwdVolCorrelation ')gydF4y2Ba

  • 创造经典gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象的Rebonato参数形式与null正向波动率相关性,使用gydF4y2Ba波动gydF4y2Ba名称-值对参数:gydF4y2BaSABRBraceGatarekMusielaModelObj = finmodel("SABRBraceGatarekMusiela",'Alpha',Alpha,'Beta',Beta,'Volatility ',VolVolFunc,'Volatility',VolFunc,'FwdFwdCorrelation', FwdFwdCorrelation,'VolVolCorrelation',VolVolCorrelation)gydF4y2Ba

  • 创造经典gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba用Rebonato参数形式建模对象gydF4y2BaFwdVolCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.02)gydF4y2Ba,使用gydF4y2Ba波动gydF4y2Ba而且gydF4y2BaFwdVolCorrelationgydF4y2Ba名称-值对参数:gydF4y2BaSABRBraceGatarekMusielaModelObj = finmodel("SABRBraceGatarekMusiela",'Alpha',Alpha,'Beta',Beta,'Volatility ',VolVolFunc,'Volatility',VolFunc,'FwdFwdCorrelation', FwdFwdCorrelation,'VolVolCorrelation',VolVolCorrelation)gydF4y2Ba.gydF4y2Ba

输入参数gydF4y2Ba

全部展开gydF4y2Ba

模型类型,指定为值为的字符串gydF4y2Ba“SABRBraceGatarekMusiela”gydF4y2Ba或者一个值为的字符向量gydF4y2Ba“SABRBraceGatarekMusiela”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

SABRBraceGatarekMusielagydF4y2Ba名称-值对参数gydF4y2Ba

指定必需的和可选的逗号分隔的对gydF4y2Ba名称,值gydF4y2Ba参数。gydF4y2Ba的名字gydF4y2Ba参数名称和gydF4y2Ba价值gydF4y2Ba对应的值。gydF4y2Ba的名字gydF4y2Ba必须出现在引号内。您可以以任意顺序指定多个名称和值对参数gydF4y2BaName1, Value1,…,的家gydF4y2Ba.gydF4y2Ba

例子:gydF4y2BaSABRBraceGatarekMusielaModelObj = finmodel("SABRBraceGatarekMusiela",'Alpha',Alpha,'Beta',Beta,'波动性',VolVolFunc,'FwdFwdCorrelation',FwdFwdCorrelation,'VolVolCorrelation',VolVolCorrelation)gydF4y2Ba

每个远期利率期限的初始SABR波动率,由逗号分隔的对组成gydF4y2Ba“α”gydF4y2Ba和一个(gydF4y2BaNumRates-1gydF4y2Ba)———gydF4y2Ba1gydF4y2Ba正数值向量。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

每个远期利率成熟度的SABR指数参数,指定为由逗号分隔的对组成gydF4y2Ba“β”gydF4y2Ba和一个(gydF4y2BaNumRates-1gydF4y2Ba)———gydF4y2Ba1gydF4y2Ba之间数值的向量gydF4y2Ba0gydF4y2Ba而且gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

波动率的变化,指定为由逗号分隔的对组成gydF4y2Ba“VolatilityofVolatility”gydF4y2Ba和一个(gydF4y2BaNumRates-1gydF4y2Ba)———gydF4y2Ba1gydF4y2Ba函数句柄的单元格数组。每个函数句柄必须将时间作为输入,并返回一个波动性的标量波动性,该波动性必须为正数值。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

远期汇率的相关矩阵,指定为逗号分隔的对,由gydF4y2Ba“FwdFwdCorrelation”gydF4y2Ba和一个(gydF4y2BaNumRates-1gydF4y2Ba)——- (gydF4y2BaNumRates-1gydF4y2Ba)相关矩阵。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

波动率的相关矩阵,指定为逗号分隔的对,由gydF4y2Ba“VolVolFwdCorrelation”gydF4y2Ba和一个(gydF4y2BaNumRates-1gydF4y2Ba)——- (gydF4y2BaNumRates-1gydF4y2Ba)相关矩阵。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

可选gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba名称-值对参数gydF4y2Ba

全部展开gydF4y2Ba

波动率,指定为逗号分隔的对,由gydF4y2Ba“波动”gydF4y2Ba和一个(gydF4y2BaNumRates-1gydF4y2Ba)———gydF4y2Ba1gydF4y2Ba函数句柄的单元格数组。指定这些可选的波动率函数句柄来使用Rebonato(2009)的参数形式,它用确定性波动率函数和随机修正项来模拟随机波动率。每个函数句柄必须将时间作为输入,并返回一个必须为正数值的标量波动率。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

远期利率和波动率之间的相关矩阵,以逗号分隔的对组成gydF4y2Ba“FwdVolCorrelation”gydF4y2Ba和一个(gydF4y2BaNumRates-1gydF4y2Ba)——- (gydF4y2BaNumRates-1gydF4y2Ba)相关矩阵。矩阵的对角线元素是SABR Rho参数。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

转发速率的周期,指定为逗号分隔的对,由gydF4y2Ba“时间”gydF4y2Ba一个标量数值。默认为gydF4y2Ba2gydF4y2Ba,这意味着远期利率之间的间隔为gydF4y2Ba0gydF4y2Ba,gydF4y2Ba5gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,gydF4y2Ba1.5gydF4y2Ba等等。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

每个远期利率期限的初始SABR波动率,作为gydF4y2BaNumRates-1gydF4y2Ba——- - - - - -gydF4y2Ba1gydF4y2Ba正数值向量。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

每个远期利率期限的SABR指数参数,作为gydF4y2BaNumRates-1gydF4y2Ba——- - - - - -gydF4y2Ba1gydF4y2Ba之间数值的向量gydF4y2Ba0gydF4y2Ba而且gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

波动率的变化,返回为gydF4y2BaNumRates-1gydF4y2Ba——- - - - - -gydF4y2Ba1gydF4y2Ba函数句柄的单元格数组。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

远期汇率的相关矩阵,返回为(gydF4y2BaNumRates-1gydF4y2Ba)——- (gydF4y2BaNumRates-1gydF4y2Ba)相关矩阵。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

波动率的相关矩阵,返回为(gydF4y2BaNumRates-1gydF4y2Ba)——- (gydF4y2BaNumRates-1gydF4y2Ba)相关矩阵。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

波动,作为一个返回gydF4y2BaNumRates-1gydF4y2Ba——- - - - - -gydF4y2Ba1gydF4y2Ba函数句柄的单元格数组。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

远期汇率与波动率之间的相关矩阵,以(gydF4y2BaNumRates-1gydF4y2Ba)——- (gydF4y2BaNumRates-1gydF4y2Ba)相关矩阵。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

正向速率的周期,作为标量数字返回。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

这个例子展示了为一个对象定价的工作流gydF4y2Ba帽gydF4y2Ba仪器当你使用gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba前向波动率相关性为空的模型gydF4y2BaIRMonteCarlogydF4y2Ba定价方法。gydF4y2Ba

创建gydF4y2Ba帽gydF4y2Ba仪对象gydF4y2Ba

使用gydF4y2BafininstrumentgydF4y2Ba要创建gydF4y2Ba帽gydF4y2Ba仪对象。gydF4y2Ba

CapOpt = fininstrument(gydF4y2Ba“帽子”gydF4y2Ba,gydF4y2Ba“成熟”gydF4y2Badatetime (2021 7 1),gydF4y2Ba“罢工”gydF4y2Ba, 0.035,gydF4y2Ba“名字”gydF4y2Ba,gydF4y2Ba“cap_option”gydF4y2Ba)gydF4y2Ba
CapOpt = Cap with properties: Strike: 0.0350期限:01- 7 -2021 ResetOffset: 0重置:1 Basis: 0 Principal: 100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 businessday惯例:"actual"假日:NaT名称:"cap_option"gydF4y2Ba

创造经典gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba具有空正向波动相关性的模型对象gydF4y2Ba

使用gydF4y2BafinmodelgydF4y2Ba要创建gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象是一个经典的SABR-BGM模型,前向波动率相关性为空。gydF4y2Ba

Alpha = [0.4;0.34;0.31;0.28];Beta = [0.5;0.5;0.5;0.5];SABRBGMVolVolFunc = @ (t) ((1) * (2) t +)。* exp (* t)——(3)+ (4);SABRBGMVolVolParams = [.]3 -。02.7 .14]; numRates = 5; VolVolFunc(1:numRates-1,1) = {@(t) SABRBGMVolVolFunc(SABRBGMVolVolParams,t)}; CorrFunc = @(i,j,B) exp(-B*abs(i-j)); FwdFwdCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.08); VolVolCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.04); SABRBGM_NF = finmodel(“SABRBraceGatarekMusiela”gydF4y2Ba,gydF4y2Ba“α”gydF4y2Baα,gydF4y2Ba“β”gydF4y2Ba,β,gydF4y2Ba“VolatilityofVolatility”gydF4y2BaVolVolFunc,gydF4y2Ba“FwdFwdCorrelation”gydF4y2BaFwdFwdCorrelation,gydF4y2Ba“VolVolCorrelation”gydF4y2BaVolVolCorrelation)gydF4y2Ba
SABRBGM_NF = SABRBraceGatarekMusiela with properties: Period: 2 Alpha: [4x1 double] Beta: [4x1 double] Volatility: {4x1 cell} volatiyofvolatility: {4x1 cell} FwdFwdCorrelation: [4x4 double] VolVolCorrelation: [4x4 double] FwdVolCorrelation: [4x4 double]gydF4y2Ba

创建gydF4y2BaratecurvegydF4y2Ba对象gydF4y2Ba

创建一个gydF4y2BaratecurvegydF4y2Ba对象使用gydF4y2BaratecurvegydF4y2Ba.gydF4y2Ba

Settle = datetime(2019,1,1);类型=gydF4y2Ba“零”gydF4y2Ba;ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]';ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';ZeroDates = Settle + ZeroTimes;比率曲线(gydF4y2Ba“零”gydF4y2Ba、结算、ZeroDates ZeroRates)gydF4y2Ba
myRC =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[10x1 datetime]利率:[10x1 double]结算:01- 01- 2019 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”gydF4y2Ba

创建gydF4y2BaIRMonteCarlogydF4y2Ba定价的人对象gydF4y2Ba

使用gydF4y2BafinpricergydF4y2Ba要创建gydF4y2BaIRMonteCarlogydF4y2Baprice对象和使用gydF4y2BaratecurvegydF4y2Ba对象的gydF4y2Ba“DiscountCurve”gydF4y2Ba名称-值对参数。gydF4y2Ba

simDates = datetime(2019,7,1)+calmonths(0:6:24);outPricer = finpricer(gydF4y2Ba“IRMonteCarlo”gydF4y2Ba,gydF4y2Ba“模型”gydF4y2BaSABRBGM_NF,gydF4y2Ba“DiscountCurve”gydF4y2BamyRC,gydF4y2Ba“SimulationDates”gydF4y2BasimDates)gydF4y2Ba
outPricer = SABRBGMMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [01- july -2019 01- january -2020 01- july -2020…型号:[1x1 finmodel。]SABRBraceGatarekMusiela]gydF4y2Ba

价格gydF4y2Ba帽gydF4y2Ba仪器gydF4y2Ba

使用gydF4y2Ba价格gydF4y2Ba来计算的价格和敏感性gydF4y2Ba帽gydF4y2Ba乐器。gydF4y2Ba

[Price,outPR] = Price (outprice,CapOpt,[gydF4y2Ba“所有”gydF4y2Ba])gydF4y2Ba
价格= 3.4214gydF4y2Ba
outPR = priceresult with properties:结果:[1x3表]PricerData: [1x1 struct]gydF4y2Ba
outPR。结果gydF4y2Ba
ans =gydF4y2Ba1×3表gydF4y2Ba价格三角洲γ  ______ _______ __________ 3.4214 -722.09 5.2843 e + 05gydF4y2Ba

您可以访问模拟利率gydF4y2Ba路径gydF4y2Ba在gydF4y2BaPricerDatagydF4y2Ba输出。gydF4y2Ba

outPR。价格rData
ans =gydF4y2Ba带字段的结构:gydF4y2BaSimulationTimes: [6x1时间表]路径:[6x8x1000 double] RandomNumbers: [1x1 struct]gydF4y2Ba

这个例子展示了为一个对象定价的工作流gydF4y2Ba地板上gydF4y2Ba当你使用经典乐器时gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型和gydF4y2BaIRMonteCarlogydF4y2Ba定价方法。gydF4y2Ba

创建gydF4y2Ba地板上gydF4y2Ba仪对象gydF4y2Ba

使用gydF4y2BafininstrumentgydF4y2Ba要创建gydF4y2Ba地板上gydF4y2Ba仪对象。gydF4y2Ba

FloorOpt = fininstrument(gydF4y2Ba“地板”gydF4y2Ba,gydF4y2Ba“成熟”gydF4y2Badatetime (2021 7 1),gydF4y2Ba“罢工”gydF4y2Ba, 0.05,gydF4y2Ba“重置”gydF4y2Ba, 1gydF4y2Ba“名字”gydF4y2Ba,gydF4y2Ba“floor_option”gydF4y2Ba)gydF4y2Ba
FloorOpt = Floor with properties: Strike: 0.0500成熟度:01- 7 -2021 ResetOffset: 0 Reset: 1 Basis: 0 Principal: 100 ProjectionCurve: [0x0 ratecurve] daycountadjusttedcash flow: 0 businessday惯例:“实际”假日:NaT名称:"floor_option"gydF4y2Ba

创造经典gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象gydF4y2Ba

使用gydF4y2BafinmodelgydF4y2Ba创造经典gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象。gydF4y2Ba

Alpha = [0.4;0.34;0.31;0.28];Beta = [0.5;0.5;0.5;0.5];SABRBGMVolVolFunc = @ (t) ((1) * (2) t +)。* exp (* t)——(3)+ (4);SABRBGMVolVolParams = [.]3 -。02.7 .14]; numRates = 5; VolVolFunc(1:numRates-1,1) = {@(t) SABRBGMVolVolFunc(SABRBGMVolVolParams,t)}; CorrFunc = @(i,j,B) exp(-B*abs(i-j)); FwdFwdCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.08); VolVolCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.04); SABRRho = [0.0005;0.0006;0.0060;0.0055]; FwdVolCorrelation = diag(SABRRho); SABRBGM_Classic = finmodel(“SABRBraceGatarekMusiela”gydF4y2Ba,gydF4y2Ba“α”gydF4y2Baα,gydF4y2Ba“β”gydF4y2Ba,β,gydF4y2Ba“VolatilityofVolatility”gydF4y2BaVolVolFunc,gydF4y2Ba“FwdFwdCorrelation”gydF4y2BaFwdFwdCorrelation,gydF4y2Ba“VolVolCorrelation”gydF4y2BaVolVolCorrelation,gydF4y2Ba“FwdVolCorrelation”gydF4y2BaFwdVolCorrelation)gydF4y2Ba
SABRBGM_Classic = SABRBraceGatarekMusiela with properties: Period: 2 Alpha: [4x1 double] Beta: [4x1 double] Volatility: {4x1 cell} volatiyofvolatility: {4x1 cell} FwdFwdCorrelation: [4x4 double] VolVolCorrelation: [4x4 double] FwdVolCorrelation: [4x4 double]gydF4y2Ba

创建gydF4y2BaratecurvegydF4y2Ba对象gydF4y2Ba

创建一个gydF4y2BaratecurvegydF4y2Ba对象使用gydF4y2BaratecurvegydF4y2Ba.gydF4y2Ba

Settle = datetime(2019,1,1);类型=gydF4y2Ba“零”gydF4y2Ba;ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]';ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';ZeroDates = Settle + ZeroTimes;比率曲线(gydF4y2Ba“零”gydF4y2Ba、结算、ZeroDates ZeroRates)gydF4y2Ba
myRC =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[10x1 datetime]利率:[10x1 double]结算:01- 01- 2019 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”gydF4y2Ba

创建gydF4y2BaIRMonteCarlogydF4y2Ba定价的人对象gydF4y2Ba

使用gydF4y2BafinpricergydF4y2Ba要创建gydF4y2BaIRMonteCarlogydF4y2Baprice对象和使用gydF4y2BaratecurvegydF4y2Ba对象的gydF4y2Ba“DiscountCurve”gydF4y2Ba名称-值对参数。gydF4y2Ba

simDates = datetime(2019,7,1)+calmonths(0:6:24);outPricer = finpricer(gydF4y2Ba“IRMonteCarlo”gydF4y2Ba,gydF4y2Ba“模型”gydF4y2BaSABRBGM_Classic,gydF4y2Ba“DiscountCurve”gydF4y2BamyRC,gydF4y2Ba“SimulationDates”gydF4y2BasimDates)gydF4y2Ba
outPricer = SABRBGMMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [01- july -2019 01- january -2020 01- july -2020…型号:[1x1 finmodel。]SABRBraceGatarekMusiela]gydF4y2Ba

价格gydF4y2Ba地板上gydF4y2Ba仪器gydF4y2Ba

使用gydF4y2Ba价格gydF4y2Ba来计算的价格和敏感性gydF4y2Ba地板上gydF4y2Ba乐器。gydF4y2Ba

[Price,outPR] = Price (outprice,FloorOpt,[gydF4y2Ba“所有”gydF4y2Ba])gydF4y2Ba
价格= 11.5243gydF4y2Ba
outPR = priceresult with properties:结果:[1x3表]PricerData: [1x1 struct]gydF4y2Ba
outPR。结果gydF4y2Ba
ans =gydF4y2Ba1×3表gydF4y2Ba价格三角洲γ  ______ _______ _____ 4299年11.524 - -180.89gydF4y2Ba

您可以访问模拟利率gydF4y2Ba路径gydF4y2Ba在gydF4y2BaPricerDatagydF4y2Ba输出。gydF4y2Ba

outPR。价格rData
ans =gydF4y2Ba带字段的结构:gydF4y2BaSimulationTimes: [6x1时间表]路径:[6x8x1000 double] RandomNumbers: [1x1 struct]gydF4y2Ba

                    

这个例子展示了为一个对象定价的工作流gydF4y2BaFixedBondgydF4y2Ba仪器当你使用gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型为Rebonato参数形式,前向波动率相关性为零gydF4y2BaIRMonteCarlogydF4y2Ba定价方法。gydF4y2Ba

创建gydF4y2BaFixedBondgydF4y2Ba仪对象gydF4y2Ba

使用gydF4y2BafininstrumentgydF4y2Ba要创建gydF4y2BaFixedBondgydF4y2Ba仪对象。gydF4y2Ba

固定b =仪表(gydF4y2Ba“FixedBond”gydF4y2Ba,gydF4y2Ba“成熟”gydF4y2Badatetime (2021 7 1),gydF4y2Ba“CouponRate”gydF4y2Ba, 0.021,gydF4y2Ba“时间”gydF4y2Ba2,gydF4y2Ba“基础”gydF4y2Ba, 1gydF4y2Ba“校长”gydF4y2Ba, 100,gydF4y2Ba“名字”gydF4y2Ba,gydF4y2Ba“fixed_bond_instrument”gydF4y2Ba)gydF4y2Ba
FixB = FixedBond与属性:CouponRate: 0.0210周期:2基础:1结束月规则:1本金:100 daycountadjuststedcashflow: 0营业日惯例:“实际”假期:NaT发放日期:NaT第一券日期:NaT最后券日期:NaT开始日期:NaT到期日期:01- july -2021名称:“fixed_bond_instrument”gydF4y2Ba

创建带有空前向波动相关性的Rebonato表单gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象gydF4y2Ba

使用gydF4y2BafinmodelgydF4y2Ba要创建gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象,是Rebonato参数形式的SABR-BGM模型,前向波动率相关性为空。gydF4y2Ba

Alpha = [0.4;0.34;0.31;0.28];Beta = [0.5;0.5;0.5;0.5];numRates = 5;SABRBGMVolVolFunc = @ (t) ((1) * (2) t +)。* exp (* t)——(3)+ (4);SABRBGMVolVolParams = [.]3 -。02.7 .14]; SABRBGMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4); SABRBGMVolParams = [.2 -.01 .8 .16]; VolFunc(1:numRates-1,1) = {@(t) SABRBGMVolFunc(SABRBGMVolParams,t)}; VolVolFunc(1:numRates-1,1) = {@(t) SABRBGMVolVolFunc(SABRBGMVolVolParams,t)}; CorrFunc = @(i,j,B) exp(-B*abs(i-j)); FwdFwdCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.08); VolVolCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.04); SABRBGM_Rebonato = finmodel(“SABRBraceGatarekMusiela”gydF4y2Ba,gydF4y2Ba“α”gydF4y2Baα,gydF4y2Ba“β”gydF4y2Ba,β,gydF4y2Ba“VolatilityofVolatility”gydF4y2BaVolVolFunc,gydF4y2Ba“波动”gydF4y2BaVolFunc,gydF4y2Ba“FwdFwdCorrelation”gydF4y2BaFwdFwdCorrelation,gydF4y2Ba“VolVolCorrelation”gydF4y2BaVolVolCorrelation)gydF4y2Ba
SABRBGM_Rebonato = SABRBraceGatarekMusiela与属性:周期:2 Alpha: [4x1 double] Beta: [4x1 double]波动性:{4x1 cell}波动性:{4x1 cell} FwdFwdCorrelation: [4x4 double] VolVolCorrelation: [4x4 double] FwdVolCorrelation: [4x4 double]gydF4y2Ba

创建gydF4y2BaratecurvegydF4y2Ba对象gydF4y2Ba

创建一个gydF4y2BaratecurvegydF4y2Ba对象使用gydF4y2BaratecurvegydF4y2Ba.gydF4y2Ba

Settle = datetime(2019,1,1);类型=gydF4y2Ba“零”gydF4y2Ba;ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]';ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';ZeroDates = Settle + ZeroTimes;比率曲线(gydF4y2Ba“零”gydF4y2Ba、结算、ZeroDates ZeroRates)gydF4y2Ba
myRC =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[10x1 datetime]利率:[10x1 double]结算:01- 01- 2019 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”gydF4y2Ba

创建gydF4y2BaIRMonteCarlogydF4y2Ba定价的人对象gydF4y2Ba

使用gydF4y2BafinpricergydF4y2Ba要创建gydF4y2BaIRMonteCarlogydF4y2Baprice对象和使用gydF4y2BaratecurvegydF4y2Ba对象的gydF4y2Ba“DiscountCurve”gydF4y2Ba名称-值对参数。gydF4y2Ba

simDates = datetime(2019,7,1)+calmonths(0:6:24);outPricer = finpricer(gydF4y2Ba“IRMonteCarlo”gydF4y2Ba,gydF4y2Ba“模型”gydF4y2BaSABRBGM_Rebonato,gydF4y2Ba“DiscountCurve”gydF4y2BamyRC,gydF4y2Ba“SimulationDates”gydF4y2BasimDates)gydF4y2Ba
outPricer = SABRBGMMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [01- july -2019 01- january -2020 01- july -2020…型号:[1x1 finmodel。]SABRBraceGatarekMusiela]gydF4y2Ba

价格gydF4y2BaFixedBondgydF4y2Ba仪器gydF4y2Ba

使用gydF4y2Ba价格gydF4y2Ba来计算的价格和敏感性gydF4y2BaFixedBondgydF4y2Ba乐器。gydF4y2Ba

[Price,outPR] = Price (outprice,FixB,[gydF4y2Ba“所有”gydF4y2Ba])gydF4y2Ba
价格= 103.5433gydF4y2Ba
outPR = priceresult with properties:结果:[1x3表]PricerData: [1x1 struct]gydF4y2Ba
outPR。结果gydF4y2Ba
ans =gydF4y2Ba1×3表gydF4y2Ba价格三角洲γ  ______ ______ _____ 103.54 -253.5 628.2gydF4y2Ba

您可以访问模拟利率gydF4y2Ba路径gydF4y2Ba在gydF4y2BaPricerDatagydF4y2Ba输出。gydF4y2Ba

outPR。价格rData
ans =gydF4y2Ba带字段的结构:gydF4y2BaSimulationTimes: [6x1时间表]路径:[6x8x1000 double] RandomNumbers: [1x1 struct]gydF4y2Ba

这个例子展示了为一个对象定价的工作流gydF4y2BaFloatBondgydF4y2Ba仪器当你使用gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型的Rebonato参数形式和一个gydF4y2BaIRMonteCarlogydF4y2Ba定价方法。gydF4y2Ba

创建gydF4y2BaFloatBondgydF4y2Ba仪对象gydF4y2Ba

使用gydF4y2BafininstrumentgydF4y2Ba要创建gydF4y2BaFloatBondgydF4y2Ba仪对象。gydF4y2Ba

FloatB = fininstrument(gydF4y2Ba“FloatBond”gydF4y2Ba,gydF4y2Ba“成熟”gydF4y2Badatetime (2021 7 1),gydF4y2Ba“传播”gydF4y2Ba, 0.025,gydF4y2Ba“重置”gydF4y2Ba2,gydF4y2Ba“基础”gydF4y2Ba, 1gydF4y2Ba“校长”gydF4y2Ba, 100,gydF4y2Ba“EndMonthRule”gydF4y2Ba假的,gydF4y2Ba“名字”gydF4y2Ba,gydF4y2Ba“float_bond_instrument”gydF4y2Ba)gydF4y2Ba
FloatB = FloatBond with properties: Spread: 0.0250 ProjectionCurve: [0x0 ratecurve] ResetOffset: 0 Reset: 2 Basis: 1 EndMonthRule: 0 Principal: 100 daycountadjuststedcashflow: 0 BusinessDayConvention: "actual" LatestFloatingRate: NaN Holidays: NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 01-Jul-2021 Name: "float_bond_instrument"gydF4y2Ba

创建Rebonato形式gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象gydF4y2Ba

使用gydF4y2BafinmodelgydF4y2Ba要创建gydF4y2BaSABRBraceGatarekMusielagydF4y2Ba模型对象是Rebonato参数形式的SABR-BGM模型。gydF4y2Ba

Alpha = [0.4;0.34;0.31;0.28];Beta = [0.5;0.5;0.5;0.5];numRates = 5;SABRBGMVolVolFunc = @ (t) ((1) * (2) t +)。* exp (* t)——(3)+ (4);SABRBGMVolVolParams = [.]3 -。02.7 .14]; SABRBGMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4); SABRBGMVolParams = [.2 -.01 .8 .16]; VolFunc(1:numRates-1,1) = {@(t) SABRBGMVolFunc(SABRBGMVolParams,t)}; VolVolFunc(1:numRates-1,1) = {@(t) SABRBGMVolVolFunc(SABRBGMVolVolParams,t)}; CorrFunc = @(i,j,B) exp(-B*abs(i-j)); FwdFwdCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.08); VolVolCorrelation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),.04); SABRRho = [0.0005;0.0006;0.0060;0.0055]; FwdVolCorrelation = diag(SABRRho); SABRBGM_Rebonato_param = finmodel(“SABRBraceGatarekMusiela”gydF4y2Ba,gydF4y2Ba“α”gydF4y2Baα,gydF4y2Ba“β”gydF4y2Ba,β,gydF4y2Ba“VolatilityofVolatility”gydF4y2BaVolVolFunc,gydF4y2Ba“波动”gydF4y2BaVolFunc,gydF4y2Ba“FwdFwdCorrelation”gydF4y2BaFwdFwdCorrelation,gydF4y2Ba“VolVolCorrelation”gydF4y2BaVolVolCorrelation,gydF4y2Ba“FwdVolCorrelation”gydF4y2BaFwdVolCorrelation)gydF4y2Ba
SABRBGM_Rebonato_param = SABRBraceGatarekMusiela with properties: Period: 2 Alpha: [4x1 double] Beta: [4x1 double] Volatility: {4x1 cell} volatiyofvolatility: {4x1 cell} FwdFwdCorrelation: [4x4 double] VolVolCorrelation: [4x4 double] FwdVolCorrelation: [4x4 double]gydF4y2Ba

创建gydF4y2BaratecurvegydF4y2Ba对象gydF4y2Ba

创建一个gydF4y2BaratecurvegydF4y2Ba对象使用gydF4y2BaratecurvegydF4y2Ba.gydF4y2Ba

Settle = datetime(2019,1,1);类型=gydF4y2Ba“零”gydF4y2Ba;ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]';ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';ZeroDates = Settle + ZeroTimes;比率曲线(gydF4y2Ba“零”gydF4y2Ba、结算、ZeroDates ZeroRates)gydF4y2Ba
myRC =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[10x1 datetime]利率:[10x1 double]结算:01- 01- 2019 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”gydF4y2Ba

创建gydF4y2BaIRMonteCarlogydF4y2Ba定价的人对象gydF4y2Ba

使用gydF4y2BafinpricergydF4y2Ba要创建gydF4y2BaIRMonteCarlogydF4y2Baprice对象和使用gydF4y2BaratecurvegydF4y2Ba对象的gydF4y2Ba“DiscountCurve”gydF4y2Ba名称-值对参数。gydF4y2Ba

simDates = datetime(2019,7,1)+calmonths(0:6:24);outPricer = finpricer(gydF4y2Ba“IRMonteCarlo”gydF4y2Ba,gydF4y2Ba“模型”gydF4y2BaSABRBGM_Rebonato_param,gydF4y2Ba“DiscountCurve”gydF4y2BamyRC,gydF4y2Ba“SimulationDates”gydF4y2BasimDates)gydF4y2Ba
outPricer = SABRBGMMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [01- july -2019 01- january -2020 01- july -2020…型号:[1x1 finmodel。]SABRBraceGatarekMusiela]gydF4y2Ba

价格gydF4y2BaFloatBondgydF4y2Ba仪器gydF4y2Ba

使用gydF4y2Ba价格gydF4y2Ba来计算的价格和敏感性gydF4y2BaFloatBondgydF4y2Ba乐器。gydF4y2Ba

[Price,outPR] = Price (outprice,FloatB,[gydF4y2Ba“所有”gydF4y2Ba])gydF4y2Ba
价格= 106.1830gydF4y2Ba
outPR = priceresult with properties:结果:[1x3表]PricerData: [1x1 struct]gydF4y2Ba
outPR。结果gydF4y2Ba
ans =gydF4y2Ba1×3表gydF4y2Ba价格三角洲γ  ______ _______ ______ 106.18 -9.2496 16.927gydF4y2Ba

您可以访问模拟利率gydF4y2Ba路径gydF4y2Ba在gydF4y2BaPricerDatagydF4y2Ba输出。gydF4y2Ba

outPR。价格rData
ans =gydF4y2Ba带字段的结构:gydF4y2BaSimulationTimes: [6x1时间表]路径:[6x8x1000 double] RandomNumbers: [1x1 struct]gydF4y2Ba

更多关于gydF4y2Ba

全部展开gydF4y2Ba

参考文献gydF4y2Ba

Brigo, D.和F. Mercurio。gydF4y2Ba利率模型——理论与实践。gydF4y2Ba施普林格财经,2006。gydF4y2Ba

[2]克里斯波尔迪,C.,维格,G.和P.拉金。gydF4y2BaSABR和SABR LIBOR市场模型的实践。gydF4y2Ba帕尔格雷夫·麦克米伦,2015。gydF4y2Ba

[3]哈根,P. A.莱斯涅夫斯基。gydF4y2Ba具有SABR风格波动率的LIBOR市场模型。gydF4y2Ba工作文件摩根大通,2008。gydF4y2Ba

[4] Rebonato, R., McKay, K.和R. White。gydF4y2BaSABR/LIBOR市场模型:复杂利率衍生品的定价、校准和对冲。gydF4y2Ba威利,2009年。gydF4y2Ba

R2021b中引入gydF4y2Ba