- java.lang.Object
-
- net.finmath.marketdata.model.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 termedAnalyticModelFromCurvesAndVols
.- Version:
- 1.0
- Author:
- Christian Fries
- See Also:
- 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 Instance Methods Concrete 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()
-
-
-
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 interfaceAnalyticModel
- 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 interfaceAnalyticModel
- Returns:
- Map of all curves.
-
addCurve
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 withcurve.getName()
. This method comes in handy, if you like to create curve mappings.- Specified by:
addCurve
in interfaceAnalyticModel
- 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.
-
addCurve
public AnalyticModel addCurve(Curve curve)
-
addCurves
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 interfaceAnalyticModel
- Parameters:
curves
- The set of curves to add.- Returns:
- A new analytic model.
-
addCurves
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 interfaceAnalyticModel
- 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 interfaceAnalyticModel
- 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 interfaceAnalyticModel
- 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 interfaceAnalyticModel
- 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 interfaceAnalyticModel
- Returns:
- Map of all volatility surfaces.
-
addVolatilitySurface
public AnalyticModel addVolatilitySurface(VolatilitySurface volatilitySurface)
-
addVolatilitySurfaces
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 interfaceAnalyticModel
- Parameters:
volatilitySurfaces
- The list of volatility surfaces to add.- Returns:
- A new analytic model.
-
addVolatilitySurfaces
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 interfaceAnalyticModel
- Parameters:
volatilitySurfaces
- The list of volatility surfaces to add.- Returns:
- A new analytic model.
-
clone
public AnalyticModelFromCurvesAndVols clone()
- Specified by:
clone
in interfaceAnalyticModel
- Overrides:
clone
in classObject
-
getCloneForParameter
public AnalyticModel getCloneForParameter(Map<ParameterObject,double[]> curveParameterPairs) throws CloneNotSupportedException
- Specified by:
getCloneForParameter
in interfaceAnalyticModel
- Throws:
CloneNotSupportedException
-
getReferenceDate
public LocalDate getReferenceDate()
Returns the reference date of the curves of this model.- Returns:
- The reference date of the model.
-
-