This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.


Simulate term structures for LIBOR Market Model


[ZeroRates,ForwardRates] = simTermStructs(LMM,nPeriods)
[ZeroRates,ForwardRates] = simTermStructs(___,Name,Value)



[ZeroRates,ForwardRates] = simTermStructs(LMM,nPeriods) rsimulates future zero curve paths using a specified LiborMarketModel object.


[ZeroRates,ForwardRates] = simTermStructs(___,Name,Value) adds optional name-value pair arguments.


collapse all

Create a LMM object.

Settle = datenum('15-Dec-2007');
CurveTimes = [1:5 7 10 20]';
ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]';
CurveDates = daysadd(Settle,360*CurveTimes,1);
irdc = IRDataCurve('Zero',Settle,CurveDates,ZeroRates);
LMMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(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-1)',meshgrid(1:numRates-1),Beta);
LMM = LiborMarketModel(irdc,VolFunc,Correlation,'Period',1)
LMM = 
  LiborMarketModel with properties:

       ZeroCurve: [1x1 IRDataCurve]
    VolFunctions: {1x19 cell}
     Correlation: [19x19 double]
      NumFactors: NaN
          Period: 1

Simulate the term structures for the specified LMM object.

[ZeroRates, ForwardRates] = simTermStructs(LMM, 20,'nTrials',100);

Input Arguments

collapse all

LiborMarketModel object, specified using the LMM object created using LiborMarketModel.

Data Types: object

Number of simulation periods, specified as a numeric value. The nPeriods value is determined by the swaption expiry and the periodicity of the rates of the model. For example, if you were to price a swaption expiring in 5 years with a semiannual LIBOR Market Model (LMM), then nPeriods would be 10.

Data Types: double

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: [ZeroRates, ForwardRates] = simTermStructs(LMM, 20,'nTrials',100)

collapse all

Number of simulated trials (sample paths), specified as a positive scalar integer value of nPeriods observations each. If you do not specify a value for this argument, the default is 1, indicating a single path of correlated state variables.

Data Types: double

Flag indicating whether antithetic sampling is used to generate the Gaussian random variates that drive the zero-drift, unit-variance rate Brownian vector dW(t), specified as a Boolean scalar flag. For details on the Brownian vector, see simBySolution.

Data Types: logical

Direct specification of the dependent random noise process, specified as a numeric value. The Z value is used to generate the zero-drift, unit-variance rate Brownian vector dW(t) that drives the simulation. For details, see simBySolution for the GBM model.

Data Types: double

Maturities to compute at each time step, specified as a numeric vector.

Tenor enables you to choose a different set of rates to output than the underlying rates. For example, you may want to simulate quarterly data but only report annual rates; this can be done by specifying the optional input Tenor.

The default for tenor is the number of rates in the LiborMarketModel object as specified by the Correlation and VolFunc input arguments for the LiborMarketModel object.

Data Types: double

Output Arguments

collapse all

Simulated zero-rate term structures, returned as a nPeriods+1-by-nTenors-by-nTrials matrix.

Simulated zero-rate term structures, returned as a nPeriods+1-by-nTenors-by-nTrials matrix.

Introduced in R2013a

Was this topic helpful?