## Class ForwardCurveNelsonSiegelSvensson

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

public class ForwardCurveNelsonSiegelSvensson
extends AbstractCurve
implements Serializable, ForwardCurve
Implementation of a forward given by a Nelson-Siegel-Svensson (NSS) parameterization. In the NSS parameterization the zero rate $$r(T)$$ is given by $r(T) = \beta_0 + \beta_1 \frac{1-x_0}{T/\tau_0} + \beta_2 ( \frac{1-x_0}{T/\tau_0} - x_0) + \beta_3 ( \frac{1-x_1}{T/\tau_1} - x_1)$ where $$x_0 = \exp(-T/\tau_0)$$ and $$x_1 = \exp(-T/\tau_1)$$. The sub-family of curves with $$\beta_3 = 0$$ is called Nelson-Siegel parameterization.
Version:
1.0
Author:
Christian Fries
DiscountCurveNelsonSiegelSvensson, Serialized Form
• ### Constructor Summary

Constructors
Constructor Description
ForwardCurveNelsonSiegelSvensson​(String name, LocalDate referenceDate, String paymentOffsetCode, BusinessdayCalendar paymentBusinessdayCalendar, BusinessdayCalendar.DateRollConvention paymentDateRollConvention, DayCountConvention daycountConvention, double[] parameter, double timeScaling)
ForwardCurveNelsonSiegelSvensson​(String name, LocalDate referenceDate, String paymentOffsetCode, BusinessdayCalendar paymentBusinessdayCalendar, BusinessdayCalendar.DateRollConvention paymentDateRollConvention, DayCountConvention daycountConvention, double[] parameter, double timeScaling, double periodOffset)
• ### Method Summary

All Methods
Modifier and Type Method Description
ForwardCurveNelsonSiegelSvensson clone()
Create a deep copied clone.
CurveBuilder getCloneBuilder()
Returns a curve builder bases on a clone of this curve.
ForwardCurveNelsonSiegelSvensson getCloneForParameter​(double[] value)
Create a clone with a modified parameter.
String getDiscountCurveName()
double getForward​(AnalyticModel model, double fixingTime)
Returns the forward for the corresponding fixing time.
double getForward​(AnalyticModel model, double fixingTime, double paymentOffset)
Returns the forward for the corresponding fixing time and paymentOffset.
double[] getForwards​(AnalyticModel model, double[] fixingTimes)
Returns the forwards for a given vector fixing times.
double[] getParameter()
Get the current parameter associated with the state of the objects.
double getPaymentOffset​(double fixingTime)
Returns the payment offset associated with this forward curve and a corresponding fixingTime.
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.
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

getName, getReferenceDate, getValue, getValues, toString
• ### Methods inherited from class java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
• ### Methods inherited from interface net.finmath.marketdata.model.curves.Curve

getName, getReferenceDate, getValue
• ### Constructor Detail

• #### ForwardCurveNelsonSiegelSvensson

public ForwardCurveNelsonSiegelSvensson​(String name,
LocalDate referenceDate,
String paymentOffsetCode,
DayCountConvention daycountConvention,
double[] parameter,
double timeScaling,
double periodOffset)
Parameters:
name - The name of the curve. The curve can be fetched under this name when being part of an AnalyticModelFromCurvesAndVols.
referenceDate - The reference date to the curve, i.e., the date associated with t=0.
paymentOffsetCode - The payment offset code, like 3M, 6M, 12M, etc., used in calculating forwards from discount factors.
paymentBusinessdayCalendar - The payment businessday calendar.
paymentDateRollConvention - The payment date roll convention.
daycountConvention - The daycount convention.
parameter - The Nelson-Siegel-Svensson parameters in the order $$( \beta_0, \beta_1, \beta_2, \beta_3, \tau_0, \tau_1 )$$.
timeScaling - A scaling factor applied to t when converting from global double time to the parametric function argument t.
periodOffset - An offset in ACT/365 applied to the fixing to construct the period start (the negative of the fixingOffset of the period).
• #### ForwardCurveNelsonSiegelSvensson

public ForwardCurveNelsonSiegelSvensson​(String name,
LocalDate referenceDate,
String paymentOffsetCode,
DayCountConvention daycountConvention,
double[] parameter,
double timeScaling)
Parameters:
name - The name of the curve. The curve can be fetched under this name when being part of an AnalyticModelFromCurvesAndVols.
referenceDate - The reference date to the curve, i.e., the date associated with t=0.
paymentOffsetCode - The payment offset code, like 3M, 6M, 12M, etc., used in calculating forwards from discount factors.
paymentBusinessdayCalendar - The payment businessday calendar.
paymentDateRollConvention - The payment date roll convention.
daycountConvention - The daycount convention.
parameter - The Nelson-Siegel-Svensson parameters in the order $$( \beta_0, \beta_1, \beta_2, \beta_3, \tau_0, \tau_1 )$$.
timeScaling - A scaling factor applied to t when converting from global double time to the parametric function argument t.
• ### Method Detail

• #### getForward

public double getForward​(AnalyticModel model,
double fixingTime)
Description copied from interface: ForwardCurve
Returns the forward for the corresponding fixing time.
Specified by:
getForward in interface ForwardCurve
Parameters:
model - An analytic model providing a context. Some curves do not need this (can be null).
fixingTime - The fixing time of the index associated with this forward curve.
Returns:
The forward.
• #### getForward

public double getForward​(AnalyticModel model,
double fixingTime,
double paymentOffset)
Description copied from interface: ForwardCurve
Returns the forward for the corresponding fixing time and paymentOffset.
Specified by:
getForward in interface ForwardCurve
Parameters:
model - An analytic model providing a context. Some curves do not need this (can be null).
fixingTime - The fixing time of the index associated with this forward curve.
paymentOffset - The payment offset (as internal day count fraction) specifying the payment of this index. Used only as a fallback and/or consistency check.
Returns:
The forward.
• #### getDiscountCurveName

public String getDiscountCurveName()
Specified by:
getDiscountCurveName in interface ForwardCurve
Returns:
The name of the discount curve associated with this forward curve (e.g. OIS for collateralized forwards)
• #### getCloneBuilder

public CurveBuilder 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 interface Curve
Returns:
An object implementing the CurveBuilderInterface where the underlying curve is a clone of this curve.
• #### clone

public ForwardCurveNelsonSiegelSvensson clone()
throws CloneNotSupportedException
Description copied from interface: Curve
Create a deep copied clone.
Specified by:
clone in interface Curve
Overrides:
clone in class AbstractCurve
Returns:
A clone (deep copied).
Throws:
CloneNotSupportedException - Thrown, when the curve could not be cloned.
• #### getCloneForParameter

public ForwardCurveNelsonSiegelSvensson getCloneForParameter​(double[] value)
throws CloneNotSupportedException
Description copied from interface: ParameterObject
Create a clone with a modified parameter.
Specified by:
getCloneForParameter in interface Curve
Specified by:
getCloneForParameter in interface ParameterObject
Overrides:
getCloneForParameter in class AbstractCurve
Parameters:
value - The new parameter.
Returns:
A clone with an otherwise modified parameter.
Throws:
CloneNotSupportedException - Thrown, when the curve could not be cloned.
• #### getValue

public double 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.
• #### getParameter

public double[] getParameter()
Description copied from interface: ParameterObject
Get the current parameter associated with the state of the objects.
Specified by:
getParameter in interface ParameterObject
Returns:
The parameter.
• #### getForwards

public double[] getForwards​(AnalyticModel model,
double[] fixingTimes)
Returns the forwards for a given vector fixing times.
Parameters:
model - An analytic model providing a context. The discount curve (if needed) is obtained from this model.
fixingTimes - The given fixing times.
Returns:
The forward rates.
• #### 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 interface ParameterObject
Parameters:
parameter - The parameter associated with the new state of the objects.
• #### getPaymentOffset

public double getPaymentOffset​(double fixingTime)
Description copied from interface: ForwardCurve
Returns the payment offset associated with this forward curve and a corresponding fixingTime.
Specified by:
getPaymentOffset in interface ForwardCurve
Parameters:
fixingTime - The fixing time of the index associated with this forward curve.
Returns:
The payment offset associated with this forward curve.