Class FlatForwardDiscountCurve

All Implemented Interfaces:
Curve, ExplicitBootCurve, DiscountFactorEstimator, LatentState
Direct Known Subclasses:
MultilateralFlatForwardCurve

public class FlatForwardDiscountCurve
extends ExplicitBootDiscountCurve
FlatForwardDiscountCurve manages the Discounting Latent State, using the Forward Rate as the State Response Representation. It exports the following functionality:

  • Boot Methods - Set/Bump Specific Node Quantification Metric, or Set Flat Value
  • Boot Calibration - Initialize Run, Compute Calibration Metric
  • Compute the discount factor, forward rate, or the zero rate from the Forward Rate Latent State
  • Create a ForwardRateEstimator instance for the given Index
  • Retrieve Array of the Calibration Components
  • Retrieve the Curve Construction Input Set
  • Compute the Jacobian of the Discount Factor Latent State to the input Quote
  • Synthesize scenario Latent State by parallel shifting/custom tweaking the quantification metric
  • Synthesize scenario Latent State by parallel/custom shifting/custom tweaking the manifest measure

Module Product Core Module
Library Fixed Income Analytics
Project Latent State Inference and Creation Utilities
Package Nonlinear (i.e., Boot) Latent State Construction
Author:
Lakshmi Krishnamurthy
  • Constructor Details

    • FlatForwardDiscountCurve

      public FlatForwardDiscountCurve​(JulianDate startDate, java.lang.String currency, int[] dateArray, double[] forwardRateArray, boolean discreteCompounding, java.lang.String compoundingDayCount, int compoundingFrequency) throws java.lang.Exception
      Boot-strap a constant forward discount curve from an array of dates and discount rates
      Parameters:
      startDate - Epoch Date
      currency - Currency
      dateArray - Array of Dates
      forwardRateArray - Array of Forward Rates
      discreteCompounding - TRUE - Compounding is Discrete
      compoundingDayCount - Day Count Convention to be used for Discrete Compounding
      compoundingFrequency - Frequency to be used for Discrete Compounding
      Throws:
      java.lang.Exception - Thrown if the curve cannot be created
  • Method Details

    • dates

      public int[] dates()
      Retrieve the Forward Node Dates
      Returns:
      The Forward Node Dates
    • nodeValues

      public double[] nodeValues()
      Retrieve the Forward Node Values
      Returns:
      The Forward Node Values
    • discreteCompounding

      public boolean discreteCompounding()
      Retrieve the Discrete Compounding Flag
      Returns:
      TRUE - Discrete Compounding
    • compoundingFrequency

      public int compoundingFrequency()
      Retrieve the Compounding Frequency
      Returns:
      The Compounding Frequency
    • compoundingDayCount

      public java.lang.String compoundingDayCount()
      Retrieve the Compounding Day Count
      Returns:
      The Compounding Day Count
    • df

      public double df​(int date) throws java.lang.Exception
      Description copied from interface: DiscountFactorEstimator
      Calculate the Discount Factor to the given Date
      Parameters:
      date - Date
      Returns:
      Discount Factor
      Throws:
      java.lang.Exception - Thrown if the Discount Factor cannot be calculated
    • forward

      public double forward​(int date1, int date2) throws java.lang.Exception
      Description copied from class: MergedDiscountForwardCurve
      Compute the Forward Rate between two Dates
      Specified by:
      forward in class MergedDiscountForwardCurve
      Parameters:
      date1 - First Date
      date2 - Second Date
      Returns:
      The Forward Rate
      Throws:
      java.lang.Exception - Thrown if the Forward Rate cannot be calculated
    • zero

      public double zero​(int date) throws java.lang.Exception
      Description copied from class: MergedDiscountForwardCurve
      Calculate the implied rate to the given date
      Specified by:
      zero in class MergedDiscountForwardCurve
      Parameters:
      date - Date
      Returns:
      Implied rate
      Throws:
      java.lang.Exception - Thrown if the discount factor cannot be calculated
    • forwardRateEstimator

      public ForwardRateEstimator forwardRateEstimator​(int date, ForwardLabel forwardLabel)
      Description copied from class: MergedDiscountForwardCurve
      Retrieve the Forward Curve that might be implied by the Latent State of this Discount Curve Instance corresponding to the specified Floating Rate Index
      Specified by:
      forwardRateEstimator in class MergedDiscountForwardCurve
      Parameters:
      date - The Date
      forwardLabel - The Floating Rate Index
      Returns:
      The Forward Curve Implied by the Discount Curve Latent State
    • canonicalTruthness

      public java.util.Map<java.lang.Integer,​java.lang.Double> canonicalTruthness​(java.lang.String latentQuantificationMetric)
      Description copied from class: MergedDiscountForwardCurve
      Convert the inferred Formulation Constraint into a "Truthness" Entity
      Overrides:
      canonicalTruthness in class MergedDiscountForwardCurve
      Parameters:
      latentQuantificationMetric - Latent State Quantification Metric
      Returns:
      Map of the Truthness Entities
    • parallelShiftManifestMeasure

      public FlatForwardDiscountCurve parallelShiftManifestMeasure​(java.lang.String manifestMeasure, double shift)
      Description copied from interface: LatentState
      Create a LatentState Instance from the Manifest Measure Parallel Shift
      Parameters:
      manifestMeasure - The Specified Manifest Measure
      shift - Parallel shift of the Manifest Measure
      Returns:
      New LatentState Instance corresponding to the Parallel Shifted Manifest Measure
    • shiftManifestMeasure

      public FlatForwardDiscountCurve shiftManifestMeasure​(int spanIndex, java.lang.String manifestMeasure, double shift)
      Description copied from interface: LatentState
      Create a LatentState Instance from the Shift of the Specified Manifest Measure
      Parameters:
      spanIndex - Index into the Span that identifies the Instrument
      manifestMeasure - The Specified Manifest Measure
      shift - Shift of the Manifest Measure
      Returns:
      New LatentState Instance corresponding to the Shift of the Specified Manifest Measure
    • customTweakManifestMeasure

      public ExplicitBootDiscountCurve customTweakManifestMeasure​(java.lang.String manifestMeasure, ManifestMeasureTweak manifestMeasureTweak)
      Description copied from interface: LatentState
      Create a LatentState Instance from the Manifest Measure Tweak Parameters
      Parameters:
      manifestMeasure - The Specified Manifest Measure
      manifestMeasureTweak - Manifest Measure Tweak Parameters
      Returns:
      New LatentState Instance corresponding to the Tweaked Manifest Measure
    • parallelShiftQuantificationMetric

      public FlatForwardDiscountCurve parallelShiftQuantificationMetric​(double shift)
      Description copied from interface: LatentState
      Create a LatentState Instance from the Quantification Metric Parallel Shift
      Parameters:
      shift - Parallel shift of the Quantification Metric
      Returns:
      New LatentState Instance corresponding to the Parallel Shifted Quantification Metric
    • customTweakQuantificationMetric

      public Curve customTweakQuantificationMetric​(ManifestMeasureTweak manifestMeasureTweak)
      Description copied from interface: LatentState
      Create a LatentState Instance from the Quantification Metric Tweak Parameters
      Parameters:
      manifestMeasureTweak - Quantification Metric Tweak Parameters
      Returns:
      New LatentState Instance corresponding to the Tweaked Quantification Metric
    • createBasisRateShiftedCurve

      public FlatForwardDiscountCurve createBasisRateShiftedCurve​(int[] dateArray, double[] basisArray)
      Description copied from class: ExplicitBootDiscountCurve
      Create a shifted curve from an array of basis shifts
      Specified by:
      createBasisRateShiftedCurve in class ExplicitBootDiscountCurve
      Parameters:
      dateArray - Array of dates
      basisArray - Array of basis
      Returns:
      Discount Curve
    • latentStateQuantificationMetric

      public java.lang.String latentStateQuantificationMetric()
      Description copied from class: MergedDiscountForwardCurve
      Retrieve the Latent State Quantification Metric
      Specified by:
      latentStateQuantificationMetric in class MergedDiscountForwardCurve
      Returns:
      The Latent State Quantification Metric
    • jackDDFDManifestMeasure

      public WengertJacobian jackDDFDManifestMeasure​(int date, java.lang.String manifestMeasure)
      Description copied from class: MergedDiscountForwardCurve
      Retrieve the Manifest Measure Jacobian of the Discount Factor to the given date
      Specified by:
      jackDDFDManifestMeasure in class MergedDiscountForwardCurve
      Parameters:
      date - Date
      manifestMeasure - Manifest Measure
      Returns:
      The Manifest Measure Jacobian of the Discount Factor to the given date
    • setNodeValue

      public boolean setNodeValue​(int nodeIndex, double value)
      Description copied from interface: ExplicitBootCurve
      Set the Value/Slope at the Node specified by the Index
      Parameters:
      nodeIndex - Node Index
      value - Node Value
      Returns:
      Success (true), failure (false)
    • bumpNodeValue

      public boolean bumpNodeValue​(int nodeIndex, double value)
      Description copied from interface: ExplicitBootCurve
      Bump the node value at the node specified the index by the value
      Parameters:
      nodeIndex - node index
      value - node bump value
      Returns:
      Success (true), failure (false)
    • setFlatValue

      public boolean setFlatValue​(double value)
      Description copied from interface: ExplicitBootCurve
      Set the flat value across all the nodes
      Parameters:
      value - node value
      Returns:
      Success (true), failure (false)