Class ForeignCollateralizedDiscountCurve

All Implemented Interfaces:
Curve, ExplicitBootCurve, DiscountFactorEstimator, LatentState

public class ForeignCollateralizedDiscountCurve
extends ExplicitBootDiscountCurve
ForeignCollateralizedDiscountCurve computes the discount factor corresponding to one unit of domestic currency collateralized by a foreign collateral.
Module Product Core Module
Library Fixed Income Analytics
Project Latent State Inference and Creation Utilities
Package Basis Spline Based Latent States
Author:
Lakshmi Krishnamurthy
  • Constructor Details

    • ForeignCollateralizedDiscountCurve

      public ForeignCollateralizedDiscountCurve​(java.lang.String currency, MergedDiscountForwardCurve foreignCollateralizedDiscountCurve, FXCurve fxCurve, VolatilityCurve foreignCollateralizedVolatilityCurve, VolatilityCurve fxVolatilityCurve, R1ToR1 collateralForeignFXCorrelationFunction) throws java.lang.Exception
      ForeignCollateralizedDiscountCurve constructor
      Parameters:
      currency - The Currency
      foreignCollateralizedDiscountCurve - The Collateralized Foreign Discount Curve
      fxCurve - The FX Forward Curve
      foreignCollateralizedVolatilityCurve - The Foreign Collateral Volatility Curve
      fxVolatilityCurve - The FX Volatility Curve
      collateralForeignFXCorrelationFunction - The FX Foreign Collateral Correlation Curve
      Throws:
      java.lang.Exception - Thrown if the Inputs are invalid
  • Method Details

    • 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)