public class ForwardCurveInterpolation extends AbstractForwardCurve implements Serializable
CurveInterpolation class.
It thus features all interpolation and extrapolation methods and interpolation entities as CurveInterpolation.
The forward F(t) of an index is such that * F(t) * D(t+p) equals the market price of the corresponding
index fixed in t and paid in t+d, where t is the fixing time of the index and t+p is the payment time of the index.
F(t) is the corresponding forward and D is the associated discount curve.| Modifier and Type | Class and Description |
|---|---|
static class |
ForwardCurveInterpolation.InterpolationEntityForward
Additional choice of interpolation entities for forward curves.
|
CurveInterpolation.Builder, CurveInterpolation.ExtrapolationMethod, CurveInterpolation.InterpolationEntity, CurveInterpolation.InterpolationMethod| Constructor and Description |
|---|
ForwardCurveInterpolation(String name,
double paymentOffset,
ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward,
String discountCurveName)
Generate a forward curve using a given discount curve and payment offset.
|
ForwardCurveInterpolation(String name,
LocalDate referenceDate,
String paymentOffsetCode,
BusinessdayCalendar paymentBusinessdayCalendar,
BusinessdayCalendar.DateRollConvention paymentDateRollConvention,
CurveInterpolation.InterpolationMethod interpolationMethod,
CurveInterpolation.ExtrapolationMethod extrapolationMethod,
CurveInterpolation.InterpolationEntity interpolationEntity,
ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward,
String discountCurveName)
Generate a forward curve using a given discount curve and payment offset.
|
ForwardCurveInterpolation(String name,
LocalDate referenceDate,
String paymentOffsetCode,
ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward,
String discountCurveName)
Generate a forward curve using a given discount curve and payment offset.
|
ForwardCurveInterpolation(String name,
LocalDate referenceDate,
String paymentOffsetCode,
String discountCurveName)
Generate a forward curve using a given discount curve and payment offset.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addPoint(double time,
RandomVariable value,
boolean isParameter)
Add a point to this curveFromInterpolationPoints.
|
static ForwardCurveInterpolation |
createForwardCurveFromDiscountFactors(String name,
double[] times,
RandomVariable[] givenDiscountFactors,
double paymentOffset)
Create a forward curve from given times and discount factors.
|
static ForwardCurveInterpolation |
createForwardCurveFromForwards(String name,
Date referenceDate,
String paymentOffsetCode,
BusinessdayCalendar paymentBusinessdayCalendar,
BusinessdayCalendar.DateRollConvention paymentDateRollConvention,
CurveInterpolation.InterpolationMethod interpolationMethod,
CurveInterpolation.ExtrapolationMethod extrapolationMethod,
CurveInterpolation.InterpolationEntity interpolationEntity,
ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward,
String discountCurveName,
AnalyticModel model,
double[] times,
RandomVariable[] givenForwards)
Create a forward curve from given times and given forwards.
|
static ForwardCurveInterpolation |
createForwardCurveFromForwards(String name,
double[] times,
double[] givenForwards,
AnalyticModel model,
String discountCurveName,
double paymentOffset)
Create a forward curve from given times and given forwards with respect to an associated discount curve and payment offset.
|
static ForwardCurveInterpolation |
createForwardCurveFromForwards(String name,
double[] times,
RandomVariable[] givenForwards,
AnalyticModel model,
String discountCurveName,
double paymentOffset)
Create a forward curve from given times and given forwards with respect to an associated discount curve and payment offset.
|
static ForwardCurveInterpolation |
createForwardCurveFromForwards(String name,
double[] times,
RandomVariable[] givenForwards,
double paymentOffset)
Create a forward curve from given times and given forwards.
|
static ForwardCurveInterpolation |
createForwardCurveFromForwards(String name,
LocalDate referenceDate,
String paymentOffsetCode,
BusinessdayCalendar paymentBusinessdayCalendar,
BusinessdayCalendar.DateRollConvention paymentDateRollConvention,
CurveInterpolation.InterpolationMethod interpolationMethod,
CurveInterpolation.ExtrapolationMethod extrapolationMethod,
CurveInterpolation.InterpolationEntity interpolationEntity,
ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward,
String discountCurveName,
AnalyticModel model,
double[] times,
RandomVariable[] givenForwards)
Create a forward curve from given times and given forwards.
|
static ForwardCurveInterpolation |
createForwardCurveFromForwards(String name,
LocalDate referenceDate,
String paymentOffsetCode,
ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward,
String discountCurveName,
AnalyticModel model,
double[] times,
RandomVariable[] givenForwards)
Create a forward curve from given times and given forwards.
|
static ForwardCurveInterpolation |
createForwardCurveFromForwards(String name,
LocalDate referenceDate,
String paymentOffsetCode,
String interpolationEntityForward,
String discountCurveName,
AnalyticModel model,
double[] times,
RandomVariable[] givenForwards)
Create a forward curve from given times and given forwards.
|
static ForwardCurveInterpolation |
createForwardCurveFromMonteCarloLiborModel(String name,
LIBORModelMonteCarloSimulationModel model,
double startTime)
Create a forward curve from forwards given by a LIBORMonteCarloModel.
|
RandomVariable |
getForward(AnalyticModel model,
double fixingTime)
Returns the forward for the corresponding fixing time.
|
RandomVariable |
getForward(AnalyticModel model,
double fixingTime,
double paymentOffset)
Returns the forward for the corresponding fixing time.
|
ForwardCurveInterpolation.InterpolationEntityForward |
getInterpolationEntityForward()
Returns the special interpolation method used for this forward curve.
|
String |
toString() |
getDiscountCurveName, getForwards, getPaymentBusinessdayCalendar, getPaymentDateRollConvention, getPaymentOffset, getPaymentOffsetCodeclone, getCloneBuilder, getCloneForParameter, getExtrapolationMethod, getInterpolationEntity, getInterpolationMethod, getParameter, getParameterIndex, getTimeIndex, getValue, getValue, setParametergetName, getReferenceDate, getValuesequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitclone, getCloneBuilder, getCloneForParameter, getName, getReferenceDate, getValue, getValuegetParameter, setParameterpublic ForwardCurveInterpolation(String name, LocalDate referenceDate, String paymentOffsetCode, BusinessdayCalendar paymentBusinessdayCalendar, BusinessdayCalendar.DateRollConvention paymentDateRollConvention, CurveInterpolation.InterpolationMethod interpolationMethod, CurveInterpolation.ExtrapolationMethod extrapolationMethod, CurveInterpolation.InterpolationEntity interpolationEntity, ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward, String discountCurveName)
name - The name of this curve.referenceDate - The reference date for this code, i.e., the date which defines t=0.paymentOffsetCode - The maturity of the index modeled by this curve.paymentBusinessdayCalendar - The business day calendar used for adjusting the payment date.paymentDateRollConvention - The date roll convention used for adjusting the payment date.interpolationMethod - The interpolation method used for the curve.extrapolationMethod - The extrapolation method used for the curve.interpolationEntity - The entity interpolated/extrapolated.interpolationEntityForward - Interpolation entity used for forward rate interpolation.discountCurveName - The name of a discount curve associated with this index (associated with it's funding or collateralization), if any.public ForwardCurveInterpolation(String name, LocalDate referenceDate, String paymentOffsetCode, ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward, String discountCurveName)
name - The name of this curve.referenceDate - The reference date for this code, i.e., the date which defines t=0.paymentOffsetCode - The maturity of the index modeled by this curve.interpolationEntityForward - Interpolation entity used for forward rate interpolation.discountCurveName - The name of a discount curve associated with this index (associated with it's funding or collateralization), if any.public ForwardCurveInterpolation(String name, LocalDate referenceDate, String paymentOffsetCode, String discountCurveName)
name - The name of this curve.referenceDate - The reference date for this code, i.e., the date which defines t=0.paymentOffsetCode - The maturity of the index modeled by this curve.discountCurveName - The name of a discount curve associated with this index (associated with it's funding or collateralization), if any.public ForwardCurveInterpolation(String name, double paymentOffset, ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward, String discountCurveName)
name - The name of this curve.paymentOffset - The maturity of the underlying index modeled by this curve.interpolationEntityForward - Interpolation entity used for forward rate interpolation.discountCurveName - The name of a discount curve associated with this index (associated with it's funding or collateralization), if any.public static ForwardCurveInterpolation createForwardCurveFromForwards(String name, LocalDate referenceDate, String paymentOffsetCode, BusinessdayCalendar paymentBusinessdayCalendar, BusinessdayCalendar.DateRollConvention paymentDateRollConvention, CurveInterpolation.InterpolationMethod interpolationMethod, CurveInterpolation.ExtrapolationMethod extrapolationMethod, CurveInterpolation.InterpolationEntity interpolationEntity, ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward, String discountCurveName, AnalyticModel model, double[] times, RandomVariable[] givenForwards)
name - The name of this curve.referenceDate - The reference date for this code, i.e., the date which defines t=0.paymentOffsetCode - The maturity of the index modeled by this curve.paymentBusinessdayCalendar - The business day calendar used for adjusting the payment date.paymentDateRollConvention - The date roll convention used for adjusting the payment date.interpolationMethod - The interpolation method used for the curve.extrapolationMethod - The extrapolation method used for the curve.interpolationEntity - The entity interpolated/extrapolated.interpolationEntityForward - Interpolation entity used for forward rate interpolation.discountCurveName - The name of a discount curve associated with this index (associated with it's funding or collateralization), if any.model - The model to be used to fetch the discount curve, if needed.times - A vector of given time points.givenForwards - A vector of given forwards (corresponding to the given time points).public static ForwardCurveInterpolation createForwardCurveFromForwards(String name, Date referenceDate, String paymentOffsetCode, BusinessdayCalendar paymentBusinessdayCalendar, BusinessdayCalendar.DateRollConvention paymentDateRollConvention, CurveInterpolation.InterpolationMethod interpolationMethod, CurveInterpolation.ExtrapolationMethod extrapolationMethod, CurveInterpolation.InterpolationEntity interpolationEntity, ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward, String discountCurveName, AnalyticModel model, double[] times, RandomVariable[] givenForwards)
name - The name of this curve.referenceDate - The reference date for this code, i.e., the date which defines t=0.paymentOffsetCode - The maturity of the index modeled by this curve.paymentBusinessdayCalendar - The business day calendar used for adjusting the payment date.paymentDateRollConvention - The date roll convention used for adjusting the payment date.interpolationMethod - The interpolation method used for the curve.extrapolationMethod - The extrapolation method used for the curve.interpolationEntity - The entity interpolated/extrapolated.interpolationEntityForward - Interpolation entity used for forward rate interpolation.discountCurveName - The name of a discount curve associated with this index (associated with it's funding or collateralization), if any.model - The model to be used to fetch the discount curve, if needed.times - A vector of given time points.givenForwards - A vector of given forwards (corresponding to the given time points).public static ForwardCurveInterpolation createForwardCurveFromForwards(String name, LocalDate referenceDate, String paymentOffsetCode, String interpolationEntityForward, String discountCurveName, AnalyticModel model, double[] times, RandomVariable[] givenForwards)
name - The name of this curve.referenceDate - The reference date for this code, i.e., the date which defines t=0.paymentOffsetCode - The maturity of the index modeled by this curve.interpolationEntityForward - Interpolation entity used for forward rate interpolation.discountCurveName - The name of a discount curve associated with this index (associated with it's funding or collateralization), if any.model - The model to be used to fetch the discount curve, if needed.times - A vector of given time points.givenForwards - A vector of given forwards (corresponding to the given time points).public static ForwardCurveInterpolation createForwardCurveFromForwards(String name, LocalDate referenceDate, String paymentOffsetCode, ForwardCurveInterpolation.InterpolationEntityForward interpolationEntityForward, String discountCurveName, AnalyticModel model, double[] times, RandomVariable[] givenForwards)
name - The name of this curve.referenceDate - The reference date for this code, i.e., the date which defines t=0.paymentOffsetCode - The maturity of the index modeled by this curve.interpolationEntityForward - Interpolation entity used for forward rate interpolation.discountCurveName - The name of a discount curve associated with this index (associated with it's funding or collateralization), if any.model - The model to be used to fetch the discount curve, if needed.times - A vector of given time points.givenForwards - A vector of given forwards (corresponding to the given time points).public static ForwardCurveInterpolation createForwardCurveFromForwards(String name, double[] times, RandomVariable[] givenForwards, double paymentOffset)
name - The name of this curve.times - A vector of given time points.givenForwards - A vector of given forwards (corresponding to the given time points).paymentOffset - The maturity of the underlying index modeled by this curve.public static ForwardCurveInterpolation createForwardCurveFromDiscountFactors(String name, double[] times, RandomVariable[] givenDiscountFactors, double paymentOffset)
forward[timeIndex] = (givenDiscountFactors[timeIndex]/givenDiscountFactors[timeIndex+1]-1.0) / (times[timeIndex+1] - times[timeIndex]);
Note: If time[0] > 0, then the discount factor 1.0 will inserted at time 0.0name - The name of this curve.times - A vector of given time points.givenDiscountFactors - A vector of given discount factors (corresponding to the given time points).paymentOffset - The maturity of the underlying index modeled by this curve.public static ForwardCurveInterpolation createForwardCurveFromForwards(String name, double[] times, RandomVariable[] givenForwards, AnalyticModel model, String discountCurveName, double paymentOffset)
name - The name of this curve.times - A vector of given time points.givenForwards - A vector of given forwards (corresponding to the given time points).model - An analytic model providing a context. The discount curve (if needed) is obtained from this model.discountCurveName - Name of the discount curve associated with this index (associated with it's funding or collateralization).paymentOffset - Time between fixing and payment.public static ForwardCurveInterpolation createForwardCurveFromForwards(String name, double[] times, double[] givenForwards, AnalyticModel model, String discountCurveName, double paymentOffset)
name - The name of this curve.times - A vector of given time points.givenForwards - A vector of given forwards (corresponding to the given time points).model - An analytic model providing a context. The discount curve (if needed) is obtained from this model.discountCurveName - Name of the discount curve associated with this index (associated with it's funding or collateralization).paymentOffset - Time between fixing and payment.public static ForwardCurveInterpolation createForwardCurveFromMonteCarloLiborModel(String name, LIBORModelMonteCarloSimulationModel model, double startTime) throws CalculationException
name - name of the forward curve.model - Monte Carlo model providing the forwards.startTime - time at which the curve starts, i.e. zero time for the curveCalculationException - Thrown if the model failed to provide the forward rates.public RandomVariable getForward(AnalyticModel model, double fixingTime)
ForwardCurveInterfacegetForward in interface ForwardCurveInterfacemodel - 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.public RandomVariable getForward(AnalyticModel model, double fixingTime, double paymentOffset)
paymentOffset.
Instead it uses the payment offset calculate from the curve specification.getForward in interface ForwardCurveInterfacemodel - 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.protected void addPoint(double time,
RandomVariable value,
boolean isParameter)
CurveInterpolationaddPoint in class CurveInterpolationtime - The xi in i = f(xi).value - The yi in i = f(xi).isParameter - If true, then this point is served via CurveInterpolation.getParameter() and changed via CurveInterpolation.getCloneForParameter(RandomVariable[]), i.e., it can be calibrated.public ForwardCurveInterpolation.InterpolationEntityForward getInterpolationEntityForward()
public String toString()
toString in class AbstractForwardCurveCopyright © 2019. All rights reserved.