java.lang.Object
net.finmath.marketdata.model.curves.AbstractCurve
net.finmath.marketdata.model.curves.SeasonalCurve
- All Implemented Interfaces:
Serializable
,Cloneable
,ParameterObject
,Curve
The curve returns a value depending on the month of the time argument, that is,
a call
getValue(model, time)
will map time to a 30/360 value using
the day and month only and delegate the call to a given base curve.
The value returned then is baseCurve.getValue(model, season)
where
season = (month-1) / 12.0 + (day-1) / (double)numberOfDays / 12.0;
The base curve has to be constructed according to this time convention (e.g.,
as a piecewise constant curve with values at i / 12 for i=1,...,12 using
CurveInterpolation.InterpolationMethod
with PIECEWISE_CONSTANT_RIGHTPOINT
.- Version:
- 1.0
- Author:
- Christian Fries
- See Also:
- Serialized Form
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
A builder (following the builder pattern) for SeasonalCurve objects. -
Constructor Summary
ConstructorsConstructorDescriptionSeasonalCurve(String name, LocalDate referenceDate, Map<LocalDate,Double> indexFixings, int numberOfYearsToAverage)
Create a monthly seasonality adjustment curve by estimating historic log-returns from monthly index fixings.SeasonalCurve(String name, LocalDate referenceDate, Curve baseCurve)
-
Method Summary
Modifier and TypeMethodDescriptionclone()
Create a deep copied clone.static double[]
computeSeasonalAdjustments(double[] realizedCPIValues, int lastMonth, int numberOfYearsToAverage)
Computes annualized seasonal adjustments from given monthly realized CPI values.static double[]
computeSeasonalAdjustments(LocalDate referenceDate, Map<LocalDate,Double> indexFixings, int numberOfYearsToAverage)
Returns a curve builder bases on a clone of this curve.getCloneForParameter(double[] value)
Create a clone with a modified parameter.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.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 Details
-
SeasonalCurve
public SeasonalCurve(String name, LocalDate referenceDate, Map<LocalDate,Double> indexFixings, int numberOfYearsToAverage)Create a monthly seasonality adjustment curve by estimating historic log-returns from monthly index fixings.- Parameters:
name
- The name of this curve.referenceDate
- The reference date for this curve (i.e. t=0).indexFixings
- AMap<Date, Double>
of consecutive monthly index fixings.numberOfYearsToAverage
- The number of years over which monthly log returns should be averaged.
-
SeasonalCurve
- Parameters:
name
- The name of this curve.referenceDate
- The reference date for this curve (i.e. t=0).baseCurve
- The base curve, i.e., the discount curve used to calculate the seasonal adjustment factors.
-
-
Method Details
-
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.
-
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. -
getCloneForParameter
Description copied from interface:ParameterObject
Create a clone with a modified parameter.- Specified by:
getCloneForParameter
in interfaceCurve
- Specified by:
getCloneForParameter
in interfaceParameterObject
- Overrides:
getCloneForParameter
in classAbstractCurve
- Parameters:
value
- The new parameter.- Returns:
- A clone with an otherwise modified parameter.
- Throws:
CloneNotSupportedException
- Thrown, when the curve could not be cloned.
-
clone
Description copied from interface:Curve
Create a deep copied clone.- Specified by:
clone
in interfaceCurve
- Overrides:
clone
in classAbstractCurve
- Returns:
- A clone (deep copied).
- Throws:
CloneNotSupportedException
- Thrown, when the curve could not be cloned.
-
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.
-
computeSeasonalAdjustments
-
computeSeasonalAdjustments
public static double[] computeSeasonalAdjustments(double[] realizedCPIValues, int lastMonth, int numberOfYearsToAverage)Computes annualized seasonal adjustments from given monthly realized CPI values.- Parameters:
realizedCPIValues
- An array of consecutive monthly CPI values (minimum size is 12*numberOfYearsToAverage))lastMonth
- The index of the last month in the sequence of realizedCPIValues (corresponding to the enums in
).Month
numberOfYearsToAverage
- The number of years to go back in the array of realizedCPIValues.- Returns:
- Array of annualized seasonal adjustments, where [0] corresponds to the adjustment for from December to January.
-