主要内容

LiborMarketModel

建立LIBOR市场模型

描述

LIBOR市场模型(LMM)是一种不同于短期利率模型的利率模型,它演变了一组离散的远期利率。

具体来说,对数正规LMM为每个正向速率指定了以下扩散方程

d F t F μ d t + σ t d W

地点:

W是n维几何布朗运动

d W t d W j t ρ j

LMM是基于无套利论证的远期利率的漂移。具体地说,在即期LIBOR指标下,漂移表示为

μ t σ t j t τ j ρ j σ j t F j t 1 + τ j F j t

地点:

ρ j 表示输入参数。相关

σ j t 表示输入参数。VolFunc

F j t 的输入参数的计算ZeroCurve

τ 时间分数是否与远期汇率

问(t)索引是由关系定义的吗

T t 1 < t < T t

即期伦敦银行同业拆借利率的数字定义为

B t P t T t n 0 t 1 1 + τ n F n T n

创建

描述

例子

LMM= LiborMarketModel (ZeroCurveVolFunc相关创建一个LiborMarketModelLMM)对象,使用for所需的参数ZeroCurveVolFunc相关

请注意

或者,您也可以使用SABRBraceGatarekMusielaBraceGatarekMusiela模型对象创建LIBOR市场模型。有关更多信息,请参见开始使用基于对象的框架为金融工具定价的工作流程

例子

LMM= LiborMarketModel (___名称,值属性使用名称-值对。例如,LMM = LiborMarketModel(irdc,VolFunc,相关性,'周期',1).可以指定多个名称-值对。将每个属性名用单引号括起来。

输入参数

全部展开

零曲线用于发展未来利率的路径,指定为从IRDataCurve或者一个RateSpec这是从intenvset.的ZeroCurve输入设置ZeroCurve财产。

数据类型:对象|结构体

波动性函数,指定使用NumRates——- - - - - -1函数的单元格数组处理并设置VolFunc财产。每个函数句柄必须以时间为输入,并返回一个标量波动率。

请注意

要模拟的速率的数量simTermStructs功能是由大小决定的VolFunc而且相关输入必须是一致的。可以是任何值和,再加上属性,确定要模拟的速率的种类和数量。例如,如果设置为4(季度)和VolFunc长度为120而且相关有大小120——- - - - - -120,然后120模拟季度费率。换句话说,模拟30年的收益率曲线(0-3mos, 3mos-6mos, 6mos-9mos,等等,一直到30年)。因此,如果VolFunc而且相关有大小120的调用的输出simTermStructs是(nPeriods+1)———121——- - - - - -nTrials

数据类型:细胞

相关矩阵,用NumRates——- - - - - -NumRates相关矩阵和设置相关财产。

请注意

要模拟的速率的数量simTermStructs功能是由大小决定的VolFunc而且相关输入必须是一致的。可以是任何值和,再加上属性,确定要模拟的速率的种类和数量。例如,如果设置为4(季度)和VolFunc长度为120而且相关有大小120——- - - - - -120,然后120模拟季度费率。换句话说,模拟30年的收益率曲线(0-3mos, 3mos-6mos, 6mos-9mos,等等,一直到30年)。因此,如果VolFunc而且相关有大小120的调用的输出simTermStructs是(nPeriods+1)———121——- - - - - -nTrials

数据类型:

属性

全部展开

零曲线,指定为输出IRDataCurve或者一个RateSpec这是从intenvset

数据类型:对象|结构体

波动性函数,指定使用NumRates——- - - - - -1函数句柄的单元格数组。每个函数句柄必须以时间为输入,并返回一个标量波动率。

数据类型:细胞

相关矩阵,用NumRates——- - - - - -NumRates相关矩阵。

数据类型:

布朗因子的个数,用数值表示。默认为,其中因子的个数等于速率的个数。

数据类型:

远期利率的期限,特别是每年利率的数量,指定为的数值124,或12.默认值为2,表示远期汇率的间隔为0.511.5,等等。

数据类型:

对象的功能

simTermStructs 模拟LIBOR市场模型的期限结构

例子

全部折叠

创建一个LMM对象使用IRDataCurve

Settle = datetime(2007,12,15);CurveTimes = [1:5 7 10 20]';ZeroRates = [.]01.018 .024 .029 .033 .034 .035 .034]'; CurveDates = daysadd(Settle,360*CurveTimes,1); irdc = IRDataCurve(“零”、结算、CurveDates ZeroRates);LMMVolFunc = @ (t) ((1) * (2) t +)。* exp (* t)——(3)+ (4);LMMVolParams = [.]3 -。02.7 .14]; numRates = 20; VolFunc(1:numRates,1) = {@(t) LMMVolFunc(LMMVolParams,t)}; Beta = .08; CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j)); Correlation = CorrFunc(meshgrid(1:numRates)',meshgrid(1:numRates),Beta); LMM = LiborMarketModel(irdc,VolFunc,Correlation,“时间”, 1)
LMM = LiborMarketModel属性:ZeroCurve: [1x1 IRDataCurve] VolFunctions: {20x1 cell}相关性:[20x20 double] NumFactors: NaN周期:1

模拟指定的术语结构LMM对象。

[ZeroRates, ForwardRates] = simTermStructs(LMM, 10,“nTrials”, 100);

创建一个LMM对象使用RateSpec

Settle = datetime(2007,12,15);CurveTimes = [1:5 7 10 20]';ZeroRates = [.]01.018 .024 .029 .033 .034 .035 .034]'; CurveDates = daysadd(Settle,360*CurveTimes,1); RateSpec = intenvset(“利率”ZeroRates,“EndDates”CurveDates,StartDate可以的、解决);LMMVolFunc = @ (t) ((1) * (2) t +)。* exp (* t)——(3)+ (4);LMMVolParams = [.]3 -。02.7 .14]; numRates = 20; VolFunc(1:numRates,1) = {@(t) LMMVolFunc(LMMVolParams,t)}; Beta = .08; CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j)); Correlation = CorrFunc(meshgrid(1:numRates)',meshgrid(1:numRates),Beta); LMM = LiborMarketModel(RateSpec,VolFunc,Correlation,“时间”, 1)
LMM = LiborMarketModel属性:ZeroCurve: [1x1 IRDataCurve] VolFunctions: {20x1 cell}相关性:[20x20 double] NumFactors: NaN周期:1

模拟指定的术语结构LMM对象。

[ZeroRates, ForwardRates] = simTermStructs(LMM, 10,“nTrials”, 100);

更多关于

全部展开

参考文献

[1]布里戈,D.和F.墨丘利奥。利率模型-理论与实践。施普林格财经,2006。

版本历史

在R2013a中介绍