LiborMarketModel

创建LIBOR市场模型

描述

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

具体地说,lognormal 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

τ 时间分数是否与th远期利率

问(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,相关)创建一个LiborMarketModel(LMM)使用所需的参数ZeroCurve,VolFunc,相关

例子

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

输入参数

全部展开

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

数据类型:对象|结构体

波动性函数,使用a指定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

数据类型:细胞

相关矩阵,用a表示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

数据类型:对象|结构体

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

数据类型:细胞

相关矩阵,用a表示NumRates——- - - - - -NumRates相关矩阵。

数据类型:

布朗因子的个数,指定为一个数值。默认值是式中,因子的数目等于速率的数目。

数据类型:

远期汇率的周期,具体为每年的汇率数,指定为的数值1,2,4,或12。默认值为2,即远期利率间隔为0,。5,1,1.5等等。

数据类型:

对象的功能

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

例子

全部折叠

创建一个LMM对象使用一个IRDataCurve

解决= datenum (的15 - 12月- 2007);弯曲时间= [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 with properties: ZeroCurve: [1x1 IRDataCurve] VolFunctions: {20x1 cell}相关:[20x20 double]数字因子:NaN Period: 1

模拟指定的项的期限结构LMM对象。

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

创建一个LMM对象使用RateSpec

解决= datenum (的15 - 12月- 2007);弯曲时间= [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 with properties: ZeroCurve: [1x1 IRDataCurve] VolFunctions: {20x1 cell}相关:[20x20 double]数字因子:NaN Period: 1

模拟指定的项的期限结构LMM对象。

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

更多关于

全部展开

参考文献

[1] Brigo, D.和F. Mercurio。利率模型-理论与实践。Springer金融,2006。

介绍了R2013a