Class MultiFactorStateEvolver

java.lang.Object
org.drip.dynamics.hjm.MultiFactorStateEvolver
All Implemented Interfaces:
PointStateEvolver

public class MultiFactorStateEvolver
extends java.lang.Object
implements PointStateEvolver
MultiFactorStateEvolver sets up and implements the Base Multi-Factor No-arbitrage Dynamics of the Rates State Quantifiers as formulated in:
  • Heath, D., R. Jarrow, and A. Morton (1992): Bond Pricing and Term Structure of Interest Rates: A New Methodology for Contingent Claims Valuation Econometrica 60 (1) 77-105


In particular it looks to evolve the Multi-factor Instantaneous Forward Rates.

Author:
Lakshmi Krishnamurthy
  • Constructor Summary

    Constructors
    Constructor Description
    MultiFactorStateEvolver​(FundingLabel lslFunding, ForwardLabel lslForward, MultiFactorVolatility mfv, R1ToR1 auInitialInstantaneousForwardRate)
    MultiFactorStateEvolver Constructor
  • Method Summary

    Modifier and Type Method Description
    double compoundedShortRateIncrement​(int iSpotDate, int iViewDate, int iTargetDate, double dblCompoundedShortRate, double dblShortRate, int iViewTimeIncrement)
    Compute the Continuously Compounded Short Rate Increment given the Spot Date, the View Date, the Target Date, the Continuously Compounded Short Rate, the Current Short Rate, and the View Time Increment.
    LSQMPointUpdate evolve​(int iSpotDate, int iViewDate, int iSpotTimeIncrement, LSQMPointUpdate lsqmPrev)
    Evolve the Latent State and return the LSQM Point Update
    ForwardLabel forwardLabel()
    Retrieve the Forward Label
    FundingLabel fundingLabel()
    Retrieve the Funding Label
    R1ToR1 instantaneousForwardInitialTermStructure()
    Retrieve the Initial Instantaneous Forward Rate Term Structure
    double instantaneousForwardRateIncrement​(int iViewDate, int iTargetDate, int iViewTimeIncrement)
    Compute the Instantaneous Forward Rate Increment given the View Date, the Target Date, and the View Time Increment
    double liborForwardRateIncrement​(int iSpotDate, int iViewDate, int iTargetDate, double dblLIBORForwardRate, int iViewTimeIncrement)
    Compute the LIBOR Forward Rate Increment given the Spot Date, the View Date, the Target Date, the Current LIBOR Forward Rate, and the View Time Increment
    MultiFactorVolatility mfv()
    Retrieve the Multi-factor Volatility Instance
    double proportionalPriceIncrement​(int iViewDate, int iTargetDate, double dblShortRate, int iViewTimeIncrement)
    Compute the Proportional Price Increment given the View Date, the Target Date, the Short Rate, and the View Time Increment
    double shiftedLIBORForwardIncrement​(int iSpotDate, int iViewDate, int iTargetDate, double dblShiftedLIBORForwardRate, int iViewTimeIncrement)
    Compute the Shifted LIBOR Forward Rate Increment given the Spot Date, the View Date, the Target Date, the Current Shifted LIBOR Forward Rate, and the View Time Increment
    double shortRateIncrement​(int iSpotDate, int iViewDate, int iViewTimeIncrement)
    Compute the Short Rate Increment given the Spot Date, the View Date, and the View Time Increment

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • MultiFactorStateEvolver

      public MultiFactorStateEvolver​(FundingLabel lslFunding, ForwardLabel lslForward, MultiFactorVolatility mfv, R1ToR1 auInitialInstantaneousForwardRate) throws java.lang.Exception
      MultiFactorStateEvolver Constructor
      Parameters:
      lslFunding - The Funding Latent State Label
      lslForward - The Forward Latent State Label
      mfv - The Multi-Factor Volatility Instance
      auInitialInstantaneousForwardRate - The Initial Instantaneous Forward Rate Term Structure
      Throws:
      java.lang.Exception - Thrown if Inputs are Invalid
  • Method Details

    • fundingLabel

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

      public ForwardLabel forwardLabel()
      Retrieve the Forward Label
      Returns:
      The Forward Label
    • mfv

      public MultiFactorVolatility mfv()
      Retrieve the Multi-factor Volatility Instance
      Returns:
      The Multi-factor Volatility Instance
    • instantaneousForwardInitialTermStructure

      public R1ToR1 instantaneousForwardInitialTermStructure()
      Retrieve the Initial Instantaneous Forward Rate Term Structure
      Returns:
      The Initial Instantaneous Forward Rate Term Structure
    • instantaneousForwardRateIncrement

      public double instantaneousForwardRateIncrement​(int iViewDate, int iTargetDate, int iViewTimeIncrement) throws java.lang.Exception
      Compute the Instantaneous Forward Rate Increment given the View Date, the Target Date, and the View Time Increment
      Parameters:
      iViewDate - The View Date
      iTargetDate - The Target Date
      iViewTimeIncrement - The View Time Increment
      Returns:
      The Instantaneous Forward Rate Increment
      Throws:
      java.lang.Exception - Thrown if the Instantaneous Forward Rate Increment cannot be computed
    • proportionalPriceIncrement

      public double proportionalPriceIncrement​(int iViewDate, int iTargetDate, double dblShortRate, int iViewTimeIncrement) throws java.lang.Exception
      Compute the Proportional Price Increment given the View Date, the Target Date, the Short Rate, and the View Time Increment
      Parameters:
      iViewDate - The View Date
      iTargetDate - The Target Date
      dblShortRate - The Short Rate
      iViewTimeIncrement - The View Time Increment
      Returns:
      The Proportional Price Increment
      Throws:
      java.lang.Exception - Thrown if the Proportional Price Increment cannot be computed
    • shortRateIncrement

      public double shortRateIncrement​(int iSpotDate, int iViewDate, int iViewTimeIncrement) throws java.lang.Exception
      Compute the Short Rate Increment given the Spot Date, the View Date, and the View Time Increment
      Parameters:
      iSpotDate - The Spot Date
      iViewDate - The View Date
      iViewTimeIncrement - The View Time Increment
      Returns:
      The Short Rate Increment
      Throws:
      java.lang.Exception - Thrown if the Short Rate Increment cannot be computed
    • compoundedShortRateIncrement

      public double compoundedShortRateIncrement​(int iSpotDate, int iViewDate, int iTargetDate, double dblCompoundedShortRate, double dblShortRate, int iViewTimeIncrement) throws java.lang.Exception
      Compute the Continuously Compounded Short Rate Increment given the Spot Date, the View Date, the Target Date, the Continuously Compounded Short Rate, the Current Short Rate, and the View Time Increment.
      Parameters:
      iSpotDate - The Spot Date
      iViewDate - The View Date
      iTargetDate - The Target Date
      dblCompoundedShortRate - The Compounded Short Rate
      dblShortRate - The Short Rate
      iViewTimeIncrement - The View Time Increment
      Returns:
      The Short Rate Increment
      Throws:
      java.lang.Exception - Thrown if the Continuously Compounded Short Rate Increment cannot be computed
    • liborForwardRateIncrement

      public double liborForwardRateIncrement​(int iSpotDate, int iViewDate, int iTargetDate, double dblLIBORForwardRate, int iViewTimeIncrement) throws java.lang.Exception
      Compute the LIBOR Forward Rate Increment given the Spot Date, the View Date, the Target Date, the Current LIBOR Forward Rate, and the View Time Increment
      Parameters:
      iSpotDate - The Spot Date
      iViewDate - The View Date
      iTargetDate - The Target Date
      dblLIBORForwardRate - The LIBOR Forward Rate
      iViewTimeIncrement - The View Time Increment
      Returns:
      The Forward Rate Increment
      Throws:
      java.lang.Exception - Thrown if the LIBOR Forward Rate Increment cannot be computed
    • shiftedLIBORForwardIncrement

      public double shiftedLIBORForwardIncrement​(int iSpotDate, int iViewDate, int iTargetDate, double dblShiftedLIBORForwardRate, int iViewTimeIncrement) throws java.lang.Exception
      Compute the Shifted LIBOR Forward Rate Increment given the Spot Date, the View Date, the Target Date, the Current Shifted LIBOR Forward Rate, and the View Time Increment
      Parameters:
      iSpotDate - The Spot Date
      iViewDate - The View Date
      iTargetDate - The Target Date
      dblShiftedLIBORForwardRate - The Shifted LIBOR Forward Rate
      iViewTimeIncrement - The View Time Increment
      Returns:
      The Shifted Forward Rate Increment
      Throws:
      java.lang.Exception - Thrown if the Shifted LIBOR Forward Rate Increment cannot be computed
    • evolve

      public LSQMPointUpdate evolve​(int iSpotDate, int iViewDate, int iSpotTimeIncrement, LSQMPointUpdate lsqmPrev)
      Description copied from interface: PointStateEvolver
      Evolve the Latent State and return the LSQM Point Update
      Specified by:
      evolve in interface PointStateEvolver
      Parameters:
      iSpotDate - The Spot Date
      iViewDate - The View Date
      iSpotTimeIncrement - The Spot Time Increment
      lsqmPrev - The Previous LSQM Point Update
      Returns:
      The LSQM Point Update