Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

PredictorCorrectorLMM Class Reference

#include <PredictorCorrectorLMM.h>

Inheritance diagram for PredictorCorrectorLMM:

LiborMarketModel List of all members.

Detailed Description

Libor Market Model with time dependent deterministic log-Libor volatilities and constant log-Libor correlations. The volatilities and correlations are encapsulated in the FactorLoading. Two types of FactorLoadings are implemented.

The state variables are the Libors themselves and paths are generated using a predictor corrector simulation of the true Libor dynamics, see book, 6.5.1.

Time steps move directly from one point on the tenor structure to the following point and are simulated in the forward martingale measure at the terminal time . The stochastic dynamics is either pseudo random (MC) based on the Mersenne Twister or quasi random (QMC) based on the Sobol sequence.

Author:
Michael J. Meyer

Definition at line 82 of file PredictorCorrectorLMM.h.

Public Member Functions

void switchToQMC ()
void switchToMC ()
Real XL (int j, int t) const
const RealVectorXLvect (int t, int p)
 PredictorCorrectorLMM (LiborFactorLoading *fl)
void newWienerIncrements (int t)
void printWienerIncrements (int t, int s) const
int effectiveDimension (int t, int s) const
void timeStep (int t, int p)
void timeStep (int t)
Real capletAggregateVolatility (int i) const
Real swaptionAggregateVolatility (int p, int q, int t) const
std::ostream & printSelf (std::ostream &os) const

Static Public Member Functions

LiborMarketModelsample (int n, int volType, int corrType)


Constructor & Destructor Documentation

PredictorCorrectorLMM::PredictorCorrectorLMM LiborFactorLoading   fl
 

Constructor, sets default stochastic generator: Mersenne Twister.

Parameters:
fl volatility and correlation structure, see FactorLoading.


Member Function Documentation

void PredictorCorrectorLMM::switchToQMC  
 

Switches to quasi random dynamics based on Sobol sequence.

void PredictorCorrectorLMM::switchToMC  
 

Switches to pseudo random dynamics based on Mersenne Twister.

Real PredictorCorrectorLMM::XL int    j,
int    t
const [virtual]
 

X-Libor , value in current path.

Parameters:
j Libor index.
t discrete time.

Implements LiborMarketModel.

const RealVector& PredictorCorrectorLMM::XLvect int    t,
int    p
[virtual]
 

X-Libor vector , value in current path. Index base p, natural indices.

Parameters:
p index of first Libor.
t discrete time.

Implements LiborMarketModel.

LiborMarketModel* PredictorCorrectorLMM::sample int    n,
int    volType,
int    corrType
[static]
 

Sample LMM, quarterly accrual.

Parameters:
n dimension (number of accrual intervals).
volType type of volatility surface (VolSurface::JR,M,CONST).
corrType type of correlations (Correlations::JR,CS).

void PredictorCorrectorLMM::newWienerIncrements int    t [virtual]
 

Writes a new set of standard normal increments driving a full Libor path to time t into the field Z. Forwards the request to the StochasticGenerator.

Reimplemented from LiborMarketModel.

void PredictorCorrectorLMM::printWienerIncrements int    t,
int    s
const [virtual]
 

Prints the matrix Z of current Wiener increments, method is used for testing only.

Reimplemented from LiborMarketModel.

int PredictorCorrectorLMM::effectiveDimension int    t,
int    s
const [inline, virtual]
 

The effective dimension of the simulation, that is, the number of standard normal deviates needed to compute one path. This is the dimension of the low discrepancy sequence generator needed for QMC simulation.

Note: if this is too high (>623 for Mersenne Twister) a random number generator may not be able to ensure equidistribution in this dimension calling into question the mathematical basis for Monte Carlo expectations.

Reimplemented from LiborMarketModel.

Definition at line 202 of file PredictorCorrectorLMM.h.

void PredictorCorrectorLMM::timeStep int    t,
int    p
[virtual]
 

Time step of the X-Libors . (discrete time t -> t+1) using a predictor-corrector algorithm and the current matrix Z of standard normal increments. See book, 6.5.1.

Parameters:
t discrete time (continuous time ).
p Libors evolved are .

Implements LiborMarketModel.

Referenced by timeStep().

void PredictorCorrectorLMM::timeStep int    t [inline]
 

Evolves the full set of Libors from discrete time t to time t+1 in a single time step using the current matrix Z of standard normal increments.

Parameters:
t current discrete time (continuous time T_t).

Definition at line 227 of file PredictorCorrectorLMM.h.

References timeStep().

Real PredictorCorrectorLMM::capletAggregateVolatility int    i const [virtual]
 

Analytic approximation for the aggregate caplet volatility

where . Exact if Libors have deterministic volatility. Quantity is needed for Black caplet fromula.

Parameters:
i caplet on .

Reimplemented from LiborMarketModel.

Real PredictorCorrectorLMM::swaptionAggregateVolatility int    p,
int    q,
int    t
const [virtual]
 

Analytic forecast for the swap rate volatility

where is the logarithm of the swap rate. Quantity is needed for Black approximate swaption formula.

Parameters:
p,q swap along on .
t swaption exercise at time .

Reimplemented from LiborMarketModel.

std::ostream& PredictorCorrectorLMM::printSelf std::ostream &    os const [virtual]
 

Message and fields.

Implements LiborMarketModel.


The documentation for this class was generated from the following file:
Generated on Mon Sep 22 02:16:33 2003 for Libor-Library by doxygen1.3-rc3