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


Author:
Lakshmi Krishnamurthy
  • 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.Exception
      LognormalLIBORCurveEvolver Constructor
      Parameters:
      lslFunding - The Funding Latent State Label
      lslForward - The Forward Latent State Label
      iNumForwardTenor - Number of Forward Tenors to Build the Span
      scbcLIBOR - LIBOR Span Segment Custom Builder Control Instance
      scbcDiscountFactor - Discount Factor Span Segment Custom Builder Control Instance
      scbcLIBORIncrement - LIBOR Increment Span Segment Custom Builder Control Instance
      scbcDiscountFactorIncrement - Discount Factor Increment Span Segment Custom Builder Control Instance
      scbcContinuousForwardIncrement - Instantaneous Continuously Compounded Forward Rate Increment Span Segment Custom Builder Control Instance
      scbcSpotRateIncrement - Spot Rate Increment Span Segment Custom Builder Control Instance
      scbcInstantaneousEffectiveForward - Instantaneous Effective Annual Forward Rate Span Segment Custom Builder Control Instance
      scbcInstantaneousNominalForward - 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 Label
      lslForward - The Forward Latent State Label
      iNumForwardTenor - Number of Forward Tenors to Build the Span
      scbc - The Common Span Segment Custom Builder Control Instance
      Returns:
      The LognormalLIBORCurveEvolver Instance
    • fundingLabel

      public FundingLabel fundingLabel()
      Retrieve the Funding Label
      Returns:
      The Funding Label
    • forwardLabel

      public ForwardLabel 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

      public SegmentCustomBuilderControl scbcLIBOR()
      Retrieve the LIBOR Curve Segment Custom Builder Control Instance
      Returns:
      The LIBOR Curve Segment Custom Builder Control Instance
    • scbcDiscountFactor

      public SegmentCustomBuilderControl scbcDiscountFactor()
      Retrieve the Discount Factor Segment Custom Builder Control Instance
      Returns:
      The Discount Factor Segment Custom Builder Control Instance
    • scbcLIBORIncrement

      public SegmentCustomBuilderControl scbcLIBORIncrement()
      Retrieve the LIBOR Increment Segment Custom Builder Control Instance
      Returns:
      The LIBOR Increment Segment Custom Builder Control Instance
    • scbcDiscountFactorIncrement

      public SegmentCustomBuilderControl scbcDiscountFactorIncrement()
      Retrieve the Discount Factor Increment Segment Custom Builder Control Instance
      Returns:
      The Discount Factor Increment Segment Custom Builder Control Instance
    • scbcContinuousForwardIncrement

      public SegmentCustomBuilderControl 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

      public SegmentCustomBuilderControl scbcSpotRateIncrement()
      Retrieve the Spot Rate Increment Segment Custom Builder Control Instance
      Returns:
      The Spot Rate Increment Segment Custom Builder Control Instance
    • scbcInstantaneousEffectiveForward

      public SegmentCustomBuilderControl 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

      public SegmentCustomBuilderControl 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 interface CurveStateEvolver
      Parameters:
      iSpotDate - The Spot Date
      iViewDate - The View Date
      iSpotTimeIncrement - The Spot Evolution Increment
      lsqmPrev - 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 interface CurveStateEvolver
      Parameters:
      iEvolutionStartDate - The Evolution Start Date
      iEvolutionFinishDate - The Evolution Finish Date
      iEvolutionIncrement - The Evolution Increment
      iViewDate - The View Date
      lsqmStart - The Starting State Metrics
      iNumSimulation - 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 Simulation
      iEvolutionFinishDate - The Finish Date of the Simulation
      iEvolutionIncrement - The Simulation Evolution Increment
      iViewDate - The Forward View Date
      lsqmStart - The Initial/Starting LSQM State
      iNumSimulation - Number of Simulations
      Returns:
      The Array of Forward Curves that Result from the Simulation