## Class AnalyticModelFromCurvesAndVols

• All Implemented Interfaces:
Serializable, Cloneable, AnalyticModel, Model
Direct Known Subclasses:
AnalyticModelFactory.DescribedAnalyticModel, AnalyticModelWithVolatilityCubes

public class AnalyticModelFromCurvesAndVols
extends Object
implements AnalyticModel, Serializable, Cloneable
Implements a collection of market data objects (e.g., discount curves, forward curve) which provide interpolation of market data or other derived quantities ("calibrated curves"). This can be seen as a model to be used in analytic pricing formulas - hence this class is termed AnalyticModelFromCurvesAndVols.
Version:
1.0
Author:
Christian Fries
Serialized Form
• ### Constructor Summary

Constructors
Constructor Description
AnalyticModelFromCurvesAndVols()
Create an empty analytic model.
AnalyticModelFromCurvesAndVols​(LocalDate referenceDate)
Create an empty analytic model for a specified date.
AnalyticModelFromCurvesAndVols​(LocalDate referenceDate, Collection<Curve> curves)
Create an analytic model with the given curves for the specified reference date.
AnalyticModelFromCurvesAndVols​(LocalDate referenceDate, Map<String,​Curve> curvesMap, Map<String,​VolatilitySurface> volatilitySurfaceMap)
Create an analytic model for the specified reference date, together with curves and volatility surfaces, each with their specific name.
AnalyticModelFromCurvesAndVols​(LocalDate referenceDate, Curve[] curves)
Create an analytic model with the given curves for the specified reference date.
AnalyticModelFromCurvesAndVols​(Collection<Curve> curves)
Create an analytic model with the given curves.
AnalyticModelFromCurvesAndVols​(Curve[] curves)
Create an analytic model with the given curves.
• ### Method Summary

All Methods
Modifier and Type Method Description
AnalyticModel addCurve​(String name, Curve curve)
Add a reference to a given curve under a given name to this model.
AnalyticModel addCurve​(Curve curve)
AnalyticModel addCurves​(Set<Curve> curves)
Create a new analytic model consisting of a clone of this one together with the given curves added.
AnalyticModel addCurves​(Curve... curves)
Create a new analytic model consisting of a clone of this one together with the given curves added.
AnalyticModel addVolatilitySurface​(VolatilitySurface volatilitySurface)
AnalyticModel addVolatilitySurfaces​(Set<VolatilitySurface> volatilitySurfaces)
Create a new analytic model consisting of a clone of this one together with the given volatility surfaces added.
AnalyticModel addVolatilitySurfaces​(VolatilitySurface... volatilitySurfaces)
Create a new analytic model consisting of a clone of this one together with the given volatility surfaces added.
AnalyticModelFromCurvesAndVols clone()
AnalyticModel getCloneForParameter​(Map<ParameterObject,​double[]> curveParameterPairs)
Curve getCurve​(String name)
Get a curve by a given curve name.
Map<String,​Curve> getCurves()
Returns an unmodifiable map of all curves.
DiscountCurve getDiscountCurve​(String discountCurveName)
Returns a discount curve for a given name.
ForwardCurve getForwardCurve​(String forwardCurveName)
Returns a forward curve for a given name.
LocalDate getReferenceDate()
Returns the reference date of the curves of this model.
VolatilitySurface getVolatilitySurface​(String name)
Returns a volatility surface for a given name.
Map<String,​VolatilitySurface> getVolatilitySurfaces()
Returns an unmodifiable map of all volatility surfaces.
String toString()
• ### Methods inherited from class java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
• ### Constructor Detail

• #### AnalyticModelFromCurvesAndVols

public AnalyticModelFromCurvesAndVols()
Create an empty analytic model.
• #### AnalyticModelFromCurvesAndVols

public AnalyticModelFromCurvesAndVols​(LocalDate referenceDate)
Create an empty analytic model for a specified date.
Parameters:
referenceDate - The reference date that should be used for all curves and surfaces of this model.
• #### AnalyticModelFromCurvesAndVols

public AnalyticModelFromCurvesAndVols​(Curve[] curves)
Create an analytic model with the given curves.
Parameters:
curves - The vector of curves.
• #### AnalyticModelFromCurvesAndVols

public AnalyticModelFromCurvesAndVols​(Collection<Curve> curves)
Create an analytic model with the given curves.
Parameters:
curves - A collection of curves.
• #### AnalyticModelFromCurvesAndVols

public AnalyticModelFromCurvesAndVols​(LocalDate referenceDate,
Curve[] curves)
Create an analytic model with the given curves for the specified reference date.
Parameters:
referenceDate - The reference date that should be used for all curves and surfaces of this model.
curves - The vector of curves.
• #### AnalyticModelFromCurvesAndVols

public AnalyticModelFromCurvesAndVols​(LocalDate referenceDate,
Collection<Curve> curves)
Create an analytic model with the given curves for the specified reference date.
Parameters:
referenceDate - The reference date that should be used for all curves and surfaces of this model.
curves - A collection of curves.
• #### AnalyticModelFromCurvesAndVols

public AnalyticModelFromCurvesAndVols​(LocalDate referenceDate,
Map<String,​Curve> curvesMap,
Map<String,​VolatilitySurface> volatilitySurfaceMap)
Create an analytic model for the specified reference date, together with curves and volatility surfaces, each with their specific name.
Parameters:
referenceDate - The reference date that should be used for all curves and surfaces of this model.
curvesMap - A map containing all curves, together with their names they should have in the model.
volatilitySurfaceMap - A map containing all volatility surfaces, together with their names they should have in the model.
• ### Method Detail

• #### getCurve

public Curve getCurve​(String name)
Description copied from interface: AnalyticModel
Get a curve by a given curve name.
Specified by:
getCurve in interface AnalyticModel
Parameters:
name - The name of the curve.
Returns:
The curve with the corresponding name, given that it is part of this model, otherwise null is return.
• #### getCurves

public Map<String,​Curve> getCurves()
Description copied from interface: AnalyticModel
Returns an unmodifiable map of all curves.
Specified by:
getCurves in interface AnalyticModel
Returns:
Map of all curves.

public AnalyticModel addCurve​(String name,
Curve curve)
Description copied from interface: AnalyticModel
Add a reference to a given curve under a given name to this model. It is not necessary that the name given agrees with curve.getName(). This method comes in handy, if you like to create curve mappings.
Specified by:
addCurve in interface AnalyticModel
Parameters:
name - Name under which the curve is known in the model.
curve - The curve.
Returns:
A clone of this model, containing the curves of this model which are not known under the given name and the new curve under the given name.

public AnalyticModel addCurve​(Curve curve)

public AnalyticModel addCurves​(Curve... curves)
Description copied from interface: AnalyticModel
Create a new analytic model consisting of a clone of this one together with the given curves added.
Specified by:
addCurves in interface AnalyticModel
Parameters:
curves - The set of curves to add.
Returns:
A new analytic model.

public AnalyticModel addCurves​(Set<Curve> curves)
Description copied from interface: AnalyticModel
Create a new analytic model consisting of a clone of this one together with the given curves added.
Specified by:
addCurves in interface AnalyticModel
Parameters:
curves - The list of curves to add.
Returns:
A new analytic model.
• #### getDiscountCurve

public DiscountCurve getDiscountCurve​(String discountCurveName)
Description copied from interface: AnalyticModel
Returns a discount curve for a given name.
Specified by:
getDiscountCurve in interface AnalyticModel
Parameters:
discountCurveName - The name of the requested curve.
Returns:
discount curve corresponding to discountCurveName or null if no discountCurve with this name exists in the model
• #### getForwardCurve

public ForwardCurve getForwardCurve​(String forwardCurveName)
Description copied from interface: AnalyticModel
Returns a forward curve for a given name.
Specified by:
getForwardCurve in interface AnalyticModel
Parameters:
forwardCurveName - The name of the requested curve.
Returns:
forward curve corresponding to forwardCurveName or null if no forwardCurve with this name exists in the model
• #### getVolatilitySurface

public VolatilitySurface getVolatilitySurface​(String name)
Description copied from interface: AnalyticModel
Returns a volatility surface for a given name.
Specified by:
getVolatilitySurface in interface AnalyticModel
Parameters:
name - THe name of the requested surface.
Returns:
The volatility surface corresponding to the name.
• #### getVolatilitySurfaces

public Map<String,​VolatilitySurface> getVolatilitySurfaces()
Description copied from interface: AnalyticModel
Returns an unmodifiable map of all volatility surfaces.
Specified by:
getVolatilitySurfaces in interface AnalyticModel
Returns:
Map of all volatility surfaces.

public AnalyticModel addVolatilitySurface​(VolatilitySurface volatilitySurface)

public AnalyticModel addVolatilitySurfaces​(VolatilitySurface... volatilitySurfaces)
Description copied from interface: AnalyticModel
Create a new analytic model consisting of a clone of this one together with the given volatility surfaces added.
Specified by:
addVolatilitySurfaces in interface AnalyticModel
Parameters:
volatilitySurfaces - The list of volatility surfaces to add.
Returns:
A new analytic model.

public AnalyticModel addVolatilitySurfaces​(Set<VolatilitySurface> volatilitySurfaces)
Description copied from interface: AnalyticModel
Create a new analytic model consisting of a clone of this one together with the given volatility surfaces added.
Specified by:
addVolatilitySurfaces in interface AnalyticModel
Parameters:
volatilitySurfaces - The list of volatility surfaces to add.
Returns:
A new analytic model.
• #### clone

public AnalyticModelFromCurvesAndVols clone()
Specified by:
clone in interface AnalyticModel
Overrides:
clone in class Object
• #### getCloneForParameter

public AnalyticModel getCloneForParameter​(Map<ParameterObject,​double[]> curveParameterPairs)
throws CloneNotSupportedException
Specified by:
getCloneForParameter in interface AnalyticModel
Throws:
CloneNotSupportedException
• #### toString

public String toString()
Overrides:
toString in class Object
• #### getReferenceDate

public LocalDate getReferenceDate()
Returns the reference date of the curves of this model.
Returns:
The reference date of the model.