Module net.finmath.lib
Class DiscountCurveFromForwardCurve
- java.lang.Object
-
- net.finmath.marketdata2.model.curves.AbstractCurve
-
- net.finmath.marketdata2.model.curves.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 Summary
Constructors Constructor Description DiscountCurveFromForwardCurve(String forwardCurveName)
Create a discount curve using a given forward curve.DiscountCurveFromForwardCurve(String forwardCurveName, double periodLengthTimeScaling)
Create a discount curve using a given forward curve.DiscountCurveFromForwardCurve(ForwardCurveInterface forwardCurve)
Create a discount curve using a given forward curve.DiscountCurveFromForwardCurve(ForwardCurveInterface forwardCurve, double periodLengthTimeScaling)
Create a discount curve using a given forward curve.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
CurveBuilder
getCloneBuilder()
Returns a curve builder bases on a clone of this curve.RandomVariable
getDiscountFactor(double maturity)
Returns the discount factor for the corresponding maturity.RandomVariable
getDiscountFactor(AnalyticModel model, double maturity)
Returns the discount factor for the corresponding maturity.RandomVariable[]
getParameter()
Get the current parameter associated with the state of the objects.RandomVariable
getValue(AnalyticModel model, double time)
Returns the value for the time using the interpolation method associated with this curve within a given context, i.e., a model.int
hashCode()
void
setParameter(RandomVariable[] parameter)
Set the current parameter and change the state of the objects.-
Methods inherited from class net.finmath.marketdata2.model.curves.AbstractCurve
clone, getCloneForParameter, getName, getReferenceDate, getValue, getValues, toString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.finmath.marketdata2.model.curves.Curve
clone, getCloneForParameter, getName, getReferenceDate, getValue
-
-
-
-
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 interfaceDiscountCurveInterface
- 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 interfaceDiscountCurveInterface
- 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.
-
getParameter
public RandomVariable[] getParameter()
Description copied from interface:ParameterObject
Get the current parameter associated with the state of the objects.- Specified by:
getParameter
in interfaceParameterObject
- Returns:
- The parameter.
-
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 interfaceParameterObject
- 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 interfaceCurve
- 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.
-
-