Class IssuerCurveDiscountFactors

  • All Implemented Interfaces:
    java.io.Serializable, org.joda.beans.Bean, org.joda.beans.ImmutableBean

    public final class IssuerCurveDiscountFactors
    extends java.lang.Object
    implements org.joda.beans.ImmutableBean, java.io.Serializable
    Provides access to discount factors for an issuer curve.

    The discount factor represents the time value of money for the specified issuer and currency when comparing the valuation date to the specified date.

    See Also:
    Serialized Form
    • Method Detail

      • of

        public static IssuerCurveDiscountFactors of​(DiscountFactors discountFactors,
                                                    LegalEntityGroup legalEntityGroup)
        Obtains an instance based on discount factors and legal entity group.
        Parameters:
        discountFactors - the discount factors
        legalEntityGroup - the legal entity group
        Returns:
        the issuer curve discount factors
      • getCurrency

        public Currency getCurrency()
        Gets the currency.

        The currency that discount factors are provided for.

        Returns:
        the currency
      • getValuationDate

        public java.time.LocalDate getValuationDate()
        Gets the valuation date.

        The raw data in this provider is calibrated for this date.

        Returns:
        the valuation date
      • discountFactor

        public double discountFactor​(java.time.LocalDate date)
        Gets the discount factor.

        The discount factor represents the time value of money for the specified currency and legal entity when comparing the valuation date to the specified date.

        If the valuation date is on or after the specified date, the discount factor is 1.

        Parameters:
        date - the date to discount to
        Returns:
        the discount factor
      • zeroRatePointSensitivity

        public IssuerCurveZeroRateSensitivity zeroRatePointSensitivity​(java.time.LocalDate date)
        Calculates the zero rate point sensitivity at the specified date.

        This returns a sensitivity instance referring to the zero rate sensitivity of the curve used to determine the discount factor. The sensitivity typically has the value (-discountFactor * relativeYearFraction). The sensitivity refers to the result of discountFactor(LocalDate).

        Parameters:
        date - the date to discount to
        Returns:
        the point sensitivity of the zero rate
        Throws:
        java.lang.RuntimeException - if the result cannot be calculated
      • zeroRatePointSensitivity

        public IssuerCurveZeroRateSensitivity zeroRatePointSensitivity​(java.time.LocalDate date,
                                                                       Currency sensitivityCurrency)
        Calculates the zero rate point sensitivity at the specified date specifying the currency of the sensitivity.

        This returns a sensitivity instance referring to the zero rate sensitivity of the curve used to determine the discount factor. The sensitivity typically has the value (-discountFactor * relativeYearFraction). The sensitivity refers to the result of discountFactor(LocalDate).

        This method allows the currency of the sensitivity to differ from the currency of the curve.

        Parameters:
        date - the date to discount to
        sensitivityCurrency - the currency of the sensitivity
        Returns:
        the point sensitivity of the zero rate
        Throws:
        java.lang.RuntimeException - if the result cannot be calculated
      • parameterSensitivity

        public CurrencyParameterSensitivities parameterSensitivity​(IssuerCurveZeroRateSensitivity pointSensitivity)
        Calculates the curve parameter sensitivity from the point sensitivity.

        This is used to convert a single point sensitivity to curve parameter sensitivity. The calculation typically involves multiplying the point and unit sensitivities.

        Parameters:
        pointSensitivity - the point sensitivity to convert
        Returns:
        the parameter sensitivity
        Throws:
        java.lang.RuntimeException - if the result cannot be calculated
      • getDiscountFactors

        public DiscountFactors getDiscountFactors()
        Gets the underlying discount factors for a single currency.

        This contains curve, curve currency, valuation date and day count convention. The discount factor, its point sensitivity and curve sensitivity are computed by this DiscountFactors.

        Returns:
        the value of the property, not null
      • getLegalEntityGroup

        public LegalEntityGroup getLegalEntityGroup()
        Gets the legal entity group.

        The group defines the legal entity that the discount factors are for.

        Returns:
        the value of the property, not null
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object