#include <PredictorCorrectorLMM.h>
Inheritance diagram for PredictorCorrectorLMM:
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.
Definition at line 82 of file PredictorCorrectorLMM.h.
Public Member Functions | |
void | switchToQMC () |
void | switchToMC () |
Real | XL (int j, int t) const |
const RealVector & | XLvect (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 | |
LiborMarketModel * | sample (int n, int volType, int corrType) |
|
Constructor, sets default stochastic generator: Mersenne Twister.
|
|
Switches to quasi random dynamics based on Sobol sequence. |
|
Switches to pseudo random dynamics based on Mersenne Twister. |
|
X-Libor , value in current path.
Implements LiborMarketModel. |
|
X-Libor vector , value in current path. Index base p, natural indices.
Implements LiborMarketModel. |
|
Sample LMM, quarterly accrual.
|
|
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. |
|
Prints the matrix Z of current Wiener increments, method is used for testing only. Reimplemented from LiborMarketModel. |
|
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. |
|
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.
Implements LiborMarketModel. Referenced by timeStep(). |
|
Evolves the full set of Libors from discrete time
Definition at line 227 of file PredictorCorrectorLMM.h. References timeStep(). |
|
Analytic approximation for the aggregate caplet volatility where . Exact if Libors have deterministic volatility. Quantity is needed for Black caplet fromula.
Reimplemented from LiborMarketModel. |
|
Analytic forecast for the swap rate volatility where is the logarithm of the swap rate. Quantity is needed for Black approximate swaption formula.
Reimplemented from LiborMarketModel. |
|
Message and fields. Implements LiborMarketModel. |