Package org.drip.dynamics.lmm
Class LognormalLIBORCurveEvolver
java.lang.Object
org.drip.dynamics.lmm.LognormalLIBORCurveEvolver
- All Implemented Interfaces:
CurveStateEvolver
public class LognormalLIBORCurveEvolver extends java.lang.Object implements CurveStateEvolver
LognormalLIBORCurveEvolver sets up and implements the Multi-Factor No-arbitrage Dynamics of the
full Curve Rates State Quantifiers traced from the Evolution of the LIBOR Forward Rate as formulated in:
- Goldys, B., M. Musiela, and D. Sondermann (1994): Log-normality of Rates and Term Structure Models The University of New South Wales
- Musiela, M. (1994): Nominal Annual Rates and Log-normal Volatility Structure The University of New South Wales
- Brace, A., D. Gatarek, and M. Musiela (1997): The Market Model of Interest Rate Dynamics Mathematical Finance 7 (2) 127-155
- Module = Product Core Module
- Library = Fixed Income Analytics
- Project = HJM, Hull White, LMM, and SABR Dynamic Evolution Models
- Package = LMM Based Latent State Evolution
- Author:
- Lakshmi Krishnamurthy
-
Constructor Summary
Constructors Constructor Description LognormalLIBORCurveEvolver(FundingLabel lslFunding, ForwardLabel lslForward, int iNumForwardTenor, SegmentCustomBuilderControl scbcLIBOR, SegmentCustomBuilderControl scbcDiscountFactor, SegmentCustomBuilderControl scbcLIBORIncrement, SegmentCustomBuilderControl scbcDiscountFactorIncrement, SegmentCustomBuilderControl scbcContinuousForwardIncrement, SegmentCustomBuilderControl scbcSpotRateIncrement, SegmentCustomBuilderControl scbcInstantaneousEffectiveForward, SegmentCustomBuilderControl scbcInstantaneousNominalForward)
LognormalLIBORCurveEvolver Constructor -
Method Summary
Modifier and Type Method Description static LognormalLIBORCurveEvolver
Create(FundingLabel lslFunding, ForwardLabel lslForward, int iNumForwardTenor, SegmentCustomBuilderControl scbc)
Create a LognormalLIBORCurveEvolver InstanceBGMCurveUpdate
evolve(int iSpotDate, int iViewDate, int iSpotTimeIncrement, LSQMCurveUpdate lsqmPrev)
Evolve the Latent State and return the LSQM Curve UpdateForwardLabel
forwardLabel()
Retrieve the Forward LabelFundingLabel
fundingLabel()
Retrieve the Funding LabelSegmentCustomBuilderControl
scbcContinuousForwardIncrement()
Retrieve the Instantaneous Continuously Compounded Forward Rate Increment Segment Custom Builder Control InstanceSegmentCustomBuilderControl
scbcDiscountFactor()
Retrieve the Discount Factor Segment Custom Builder Control InstanceSegmentCustomBuilderControl
scbcDiscountFactorIncrement()
Retrieve the Discount Factor Increment Segment Custom Builder Control InstanceSegmentCustomBuilderControl
scbcInstantaneousEffectiveForward()
Retrieve the Instantaneous Effective Annual Forward Rate Increment Segment Custom Builder Control InstanceSegmentCustomBuilderControl
scbcInstantaneousNominalForward()
Retrieve the Instantaneous Nominal Annual Forward Rate Increment Segment Custom Builder Control InstanceSegmentCustomBuilderControl
scbcLIBOR()
Retrieve the LIBOR Curve Segment Custom Builder Control InstanceSegmentCustomBuilderControl
scbcLIBORIncrement()
Retrieve the LIBOR Increment Segment Custom Builder Control InstanceSegmentCustomBuilderControl
scbcSpotRateIncrement()
Retrieve the Spot Rate Increment Segment Custom Builder Control Instancedouble[][]
simulatePrincipalMetric(int iEvolutionStartDate, int iEvolutionFinishDate, int iEvolutionIncrement, int iViewDate, LSQMCurveUpdate lsqmStart, int iNumSimulation)
Simulate the Principal Metric from the Start to the End DateForwardCurve[]
simulateTerminalLatentState(int iEvolutionStartDate, int iEvolutionFinishDate, int iEvolutionIncrement, int iViewDate, LSQMCurveUpdate lsqmStart, int iNumSimulation)
Construct an Array of Forward Curves that Result from the Simulationint
spanTenor()
Retrieve the Number of Forward Tenors comprising the Span TenorMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
LognormalLIBORCurveEvolver
public LognormalLIBORCurveEvolver(FundingLabel lslFunding, ForwardLabel lslForward, int iNumForwardTenor, SegmentCustomBuilderControl scbcLIBOR, SegmentCustomBuilderControl scbcDiscountFactor, SegmentCustomBuilderControl scbcLIBORIncrement, SegmentCustomBuilderControl scbcDiscountFactorIncrement, SegmentCustomBuilderControl scbcContinuousForwardIncrement, SegmentCustomBuilderControl scbcSpotRateIncrement, SegmentCustomBuilderControl scbcInstantaneousEffectiveForward, SegmentCustomBuilderControl scbcInstantaneousNominalForward) throws java.lang.ExceptionLognormalLIBORCurveEvolver Constructor- Parameters:
lslFunding
- The Funding Latent State LabellslForward
- The Forward Latent State LabeliNumForwardTenor
- Number of Forward Tenors to Build the SpanscbcLIBOR
- LIBOR Span Segment Custom Builder Control InstancescbcDiscountFactor
- Discount Factor Span Segment Custom Builder Control InstancescbcLIBORIncrement
- LIBOR Increment Span Segment Custom Builder Control InstancescbcDiscountFactorIncrement
- Discount Factor Increment Span Segment Custom Builder Control InstancescbcContinuousForwardIncrement
- Instantaneous Continuously Compounded Forward Rate Increment Span Segment Custom Builder Control InstancescbcSpotRateIncrement
- Spot Rate Increment Span Segment Custom Builder Control InstancescbcInstantaneousEffectiveForward
- Instantaneous Effective Annual Forward Rate Span Segment Custom Builder Control InstancescbcInstantaneousNominalForward
- Instantaneous Nominal Annual Forward Rate Span Segment Custom Builder Control Instance- Throws:
java.lang.Exception
- Thrown if Inputs are Invalid
-
-
Method Details
-
Create
public static final LognormalLIBORCurveEvolver Create(FundingLabel lslFunding, ForwardLabel lslForward, int iNumForwardTenor, SegmentCustomBuilderControl scbc)Create a LognormalLIBORCurveEvolver Instance- Parameters:
lslFunding
- The Funding Latent State LabellslForward
- The Forward Latent State LabeliNumForwardTenor
- Number of Forward Tenors to Build the Spanscbc
- The Common Span Segment Custom Builder Control Instance- Returns:
- The LognormalLIBORCurveEvolver Instance
-
fundingLabel
Retrieve the Funding Label- Returns:
- The Funding Label
-
forwardLabel
Retrieve the Forward Label- Returns:
- The Forward Label
-
spanTenor
public int spanTenor()Retrieve the Number of Forward Tenors comprising the Span Tenor- Returns:
- Number of Forward Tenors comprising the Span Tenor
-
scbcLIBOR
Retrieve the LIBOR Curve Segment Custom Builder Control Instance- Returns:
- The LIBOR Curve Segment Custom Builder Control Instance
-
scbcDiscountFactor
Retrieve the Discount Factor Segment Custom Builder Control Instance- Returns:
- The Discount Factor Segment Custom Builder Control Instance
-
scbcLIBORIncrement
Retrieve the LIBOR Increment Segment Custom Builder Control Instance- Returns:
- The LIBOR Increment Segment Custom Builder Control Instance
-
scbcDiscountFactorIncrement
Retrieve the Discount Factor Increment Segment Custom Builder Control Instance- Returns:
- The Discount Factor Increment Segment Custom Builder Control Instance
-
scbcContinuousForwardIncrement
Retrieve the Instantaneous Continuously Compounded Forward Rate Increment Segment Custom Builder Control Instance- Returns:
- The Instantaneous Continuously Compounded Forward Rate Increment Segment Custom Builder Control Instance
-
scbcSpotRateIncrement
Retrieve the Spot Rate Increment Segment Custom Builder Control Instance- Returns:
- The Spot Rate Increment Segment Custom Builder Control Instance
-
scbcInstantaneousEffectiveForward
Retrieve the Instantaneous Effective Annual Forward Rate Increment Segment Custom Builder Control Instance- Returns:
- The Instantaneous Effective Annual Forward Rate Increment Segment Custom Builder Control Instance
-
scbcInstantaneousNominalForward
Retrieve the Instantaneous Nominal Annual Forward Rate Increment Segment Custom Builder Control Instance- Returns:
- The Instantaneous Nominal Annual Forward Rate Increment Segment Custom Builder Control Instance
-
evolve
public BGMCurveUpdate evolve(int iSpotDate, int iViewDate, int iSpotTimeIncrement, LSQMCurveUpdate lsqmPrev)Description copied from interface:CurveStateEvolver
Evolve the Latent State and return the LSQM Curve Update- Specified by:
evolve
in interfaceCurveStateEvolver
- Parameters:
iSpotDate
- The Spot DateiViewDate
- The View DateiSpotTimeIncrement
- The Spot Evolution IncrementlsqmPrev
- The Previous LSQM Curve Update- Returns:
- The LSQM Curve Update
-
simulatePrincipalMetric
public double[][] simulatePrincipalMetric(int iEvolutionStartDate, int iEvolutionFinishDate, int iEvolutionIncrement, int iViewDate, LSQMCurveUpdate lsqmStart, int iNumSimulation)Description copied from interface:CurveStateEvolver
Simulate the Principal Metric from the Start to the End Date- Specified by:
simulatePrincipalMetric
in interfaceCurveStateEvolver
- Parameters:
iEvolutionStartDate
- The Evolution Start DateiEvolutionFinishDate
- The Evolution Finish DateiEvolutionIncrement
- The Evolution IncrementiViewDate
- The View DatelsqmStart
- The Starting State MetricsiNumSimulation
- Number of Simulations- Returns:
- The Array of the Evolved Tenor LIBOR's
-
simulateTerminalLatentState
public ForwardCurve[] simulateTerminalLatentState(int iEvolutionStartDate, int iEvolutionFinishDate, int iEvolutionIncrement, int iViewDate, LSQMCurveUpdate lsqmStart, int iNumSimulation)Construct an Array of Forward Curves that Result from the Simulation- Parameters:
iEvolutionStartDate
- The Start Date of the SimulationiEvolutionFinishDate
- The Finish Date of the SimulationiEvolutionIncrement
- The Simulation Evolution IncrementiViewDate
- The Forward View DatelsqmStart
- The Initial/Starting LSQM StateiNumSimulation
- Number of Simulations- Returns:
- The Array of Forward Curves that Result from the Simulation
-