Module net.finmath.lib
Class DiscountCurveFromForwardCurve
java.lang.Object
net.finmath.marketdata.model.curves.AbstractCurve
net.finmath.marketdata.model.curves.DiscountCurveFromForwardCurve
- All Implemented Interfaces:
Serializable
,Cloneable
,ParameterObject
,Curve
,DiscountCurve
public class DiscountCurveFromForwardCurve
extends AbstractCurve
implements Serializable, DiscountCurve
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
ConstructorsConstructorDescriptionDiscountCurveFromForwardCurve(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(ForwardCurve forwardCurve)
Create a discount curve using a given forward curve.DiscountCurveFromForwardCurve(ForwardCurve forwardCurve, double periodLengthTimeScaling)
Create a discount curve using a given forward curve. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns a curve builder bases on a clone of this curve.double
getDiscountFactor(double maturity)
Returns the discount factor for the corresponding maturity.double
getDiscountFactor(AnalyticModel model, double maturity)
Returns the discount factor for the corresponding maturity.double[]
Get the current parameter associated with the state of the objects.double
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(double[] parameter)
Set the current parameter and change the state of the objects.Methods inherited from class net.finmath.marketdata.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.marketdata.model.curves.Curve
clone, getCloneForParameter, getName, getReferenceDate, getValue
-
Constructor Details
-
DiscountCurveFromForwardCurve
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
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
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
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 Details
-
getDiscountFactor
public double getDiscountFactor(double maturity)Description copied from interface:DiscountCurve
Returns the discount factor for the corresponding maturity. This getter is not optimized for performance.- Specified by:
getDiscountFactor
in interfaceDiscountCurve
- 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
Description copied from interface:DiscountCurve
Returns the discount factor for the corresponding maturity. This getter is not optimized for performance.- Specified by:
getDiscountFactor
in interfaceDiscountCurve
- 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
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 double[] 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(double[] 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
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.
-
hashCode
public int hashCode() -
equals
-