主要内容

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

即期LIBOR数字定义为

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

创建

描述

例子

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

请注意

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

例子

LMM= LiborMarketModel (___,名称,值属性使用名称-值对。例如,LMM = libor市场模型(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相关矩阵。

数据类型:

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

数据类型:

远期利率的期间,特别是每年的利率数量,指定为的数值1,2,4,或12.默认值为2,这意味着远期利率之间的间隔为0,.5,1,1.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);

更多关于

全部展开

参考文献

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

版本历史

在R2013a中引入