主要内容

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

τ 时间分数和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 (ZeroCurveVolFunc相关创建一个LiborMarketModelLMM)对象使用所需的参数ZeroCurveVolFunc相关

例子

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

解决= datenum (的15 - 12月- 2007);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 with properties: zercurve: [1x1 IRDataCurve] VolFunctions: {20x1 cell} Correlation: [20x20 double] NumFactors: NaN Period: 1

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

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

创建一个LMM对象使用RateSpec

解决= datenum (的15 - 12月- 2007);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 with properties: zercurve: [1x1 IRDataCurve] VolFunctions: {20x1 cell} Correlation: [20x20 double] NumFactors: NaN Period: 1

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

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

更多关于

全部展开

参考文献

[1]布里戈,d和f·莫丘利奥。利率模型-理论与实践。施普林格融资,2006年。

介绍了R2013a