Class DiscountCurveFromForwardCurve

  • All Implemented Interfaces:
    Serializable, Cloneable, ParameterObject, Curve, DiscountCurveInterface

    public class DiscountCurveFromForwardCurve
    extends AbstractCurve
    implements Serializable, DiscountCurveInterface
    A discount curve derived from a given forward curve. The discount factors df(t) are defined at t = k * d for integers k via df(t+d) = df(t) / (1 + f(t) * d) and for t = k * d and 0 < r < d via df(t+r) = df(t) / (1 + f(t) * r) where d is a given the payment offset and f(t) is the forward curve.

    Note that a special interpolation is performed for in-between points. Hence, creating a ForwardCurveFromDiscountCurve and from it a DiscountCurveFromForwardCurve will not recover the original curve since interpolation points may be lost.

    Version:
    1.0
    Author:
    Christian Fries
    See Also:
    Serialized Form
    • Constructor Detail

      • DiscountCurveFromForwardCurve

        public DiscountCurveFromForwardCurve​(String forwardCurveName,
                                             double periodLengthTimeScaling)
        Create a discount curve using a given forward curve. The discount factors df(t) are defined at t = k * d for integers k via df(t+d) = df(t) / (1 + f(t) * d) and for t = k * d and 0 < r < d via df(t+r) = df(t) / (1 + f(t) * r) where d is a given the payment offset and f(t) is the forward curve.
        Parameters:
        forwardCurveName - The name of the forward curve used for calculation of the discount factors.
        periodLengthTimeScaling - A scaling factor applied to d, adjusting for the internal double time to the period length daycount fraction (note that this may only be an approximate solution to capture daycount effects).
      • DiscountCurveFromForwardCurve

        public DiscountCurveFromForwardCurve​(ForwardCurveInterface forwardCurve,
                                             double periodLengthTimeScaling)
        Create a discount curve using a given forward curve. The discount factors df(t) are defined at t = k * d for integers k via df(t+d) = df(t) / (1 + f(t) * d) and for t = k * d and 0 < r < d via df(t+r) = df(t) / (1 + f(t) * r) where d is a given the payment offset and f(t) is the forward curve.
        Parameters:
        forwardCurve - The forward curve used for calculation of the discount factors.
        periodLengthTimeScaling - A scaling factor applied to d, adjusting for the internal double time to the period length daycount fraction (note that this may only be an approximate solution to capture daycount effects).
      • DiscountCurveFromForwardCurve

        public DiscountCurveFromForwardCurve​(String forwardCurveName)
        Create a discount curve using a given forward curve. The discount factors df(t) are defined at t = k * d for integers k via df(t+d) = df(t) / (1 + f(t) * d) and for t = k * d and 0 < r < d via df(t+r) = df(t) / (1 + f(t) * r) where d is a given the payment offset and f(t) is the forward curve.
        Parameters:
        forwardCurveName - The name of the forward curve used for calculation of the discount factors.
      • DiscountCurveFromForwardCurve

        public DiscountCurveFromForwardCurve​(ForwardCurveInterface forwardCurve)
        Create a discount curve using a given forward curve. The discount factors df(t) are defined at t = k * d for integers k via df(t+d) = df(t) / (1 + f(t) * d) and for t = k * d and 0 < r < d via df(t+r) = df(t) / (1 + f(t) * r) where d is a given the payment offset and f(t) is the forward curve.
        Parameters:
        forwardCurve - The forward curve used for calculation of the discount factors.
    • Method Detail

      • getDiscountFactor

        public RandomVariable getDiscountFactor​(double maturity)
        Description copied from interface: DiscountCurveInterface
        Returns the discount factor for the corresponding maturity. This getter is not optimized for performance.
        Specified by:
        getDiscountFactor in interface DiscountCurveInterface
        Parameters:
        maturity - The maturity for which the discount factor is requested.
        Returns:
        The discount factor (i.e., price of the zero coupon bond with given maturity and notional 1.
      • getDiscountFactor

        public RandomVariable getDiscountFactor​(AnalyticModel model,
                                                double maturity)
        Description copied from interface: DiscountCurveInterface
        Returns the discount factor for the corresponding maturity. This getter is not optimized for performance.
        Specified by:
        getDiscountFactor in interface DiscountCurveInterface
        Parameters:
        model - An analytic model providing a context. Some curves do not need this (can be null).
        maturity - The maturity for which the discount factor is requested.
        Returns:
        The discount factor (i.e., price of the zero coupon bond with given maturity and notional 1.
      • getValue

        public RandomVariable getValue​(AnalyticModel model,
                                       double time)
        Description copied from interface: Curve
        Returns the value for the time using the interpolation method associated with this curve within a given context, i.e., a model. The model (context) is needed only if the curve relies on another curve. Examples are a forward curve which relies on a discount curve or a discount curve which is defined via a spread over another curve.
        Specified by:
        getValue in interface Curve
        Parameters:
        model - An analytic model providing a context.
        time - Time for which the value should be returned.
        Returns:
        The value at the give time.
      • setParameter

        public void setParameter​(RandomVariable[] parameter)
        Description copied from interface: ParameterObject
        Set the current parameter and change the state of the objects.
        Specified by:
        setParameter in interface ParameterObject
        Parameters:
        parameter - The parameter associated with the new state of the objects.
      • getCloneBuilder

        public CurveBuilder getCloneBuilder()
                                     throws CloneNotSupportedException
        Description copied from interface: Curve
        Returns a curve builder bases on a clone of this curve. Using that curve builder you may create a new curve from this curve by adding points or changing properties. Note: The clone has the same name than this one.
        Specified by:
        getCloneBuilder in interface Curve
        Returns:
        An object implementing the CurveBuilderInterface where the underlying curve is a clone of this curve.
        Throws:
        CloneNotSupportedException - Thrown, when this curve could not be cloned.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object