Module net.finmath.lib
Class AbstractLIBORMonteCarloProduct
- java.lang.Object
-
- net.finmath.montecarlo.AbstractMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.AbstractLIBORMonteCarloProduct
-
- All Implemented Interfaces:
Product
,TermStructureMonteCarloProduct
,MonteCarloProduct
- Direct Known Subclasses:
AbstractProductComponent
,BermudanSwaption
,BermudanSwaptionFromSwapSchedules
,Bond
,CancelableSwap
,Caplet
,CMSOption
,DigitalCaplet
,DigitalFloorlet
,FlexiCap
,ForwardRateVolatilitySurfaceCurvature
,InterestRateMonteCarloProductFactory.SwapMonteCarlo
,InterestRateMonteCarloProductFactory.SwaptionPhysicalMonteCarlo
,LIBORBond
,MoneyMarketAccount
,SimpleCappedFlooredFloatingRateBond
,SimpleSwap
,SimpleZeroSwap
,Swap
,SwapLeg
,SwapLegWithFundingProvider
,Swaption
,SwaptionAnalyticApproximation
,SwaptionAnalyticApproximationRebonato
,SwaptionATM
,SwaptionFromSwapSchedules
,SwaptionGeneralizedAnalyticApproximation
,SwaptionSimple
,SwaptionSingleCurve
,SwaptionSingleCurveAnalyticApproximation
,SwaptionWithComponents
,SwapWithComponents
public abstract class AbstractLIBORMonteCarloProduct extends AbstractMonteCarloProduct implements TermStructureMonteCarloProduct
Base class for products requiring an LIBORModelMonteCarloSimulationModel as base class- Version:
- 1.0
- Author:
- Christian Fries
-
-
Constructor Summary
Constructors Constructor Description AbstractLIBORMonteCarloProduct()
AbstractLIBORMonteCarloProduct(String currency)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description FactorDrift
getFactorDrift(LIBORModelMonteCarloSimulationModel referenceScheme, LIBORModelMonteCarloSimulationModel targetScheme)
Overwrite this method if the product supplies a custom FactorDriftInterface to be used in proxy simulation.abstract RandomVariable
getValue(double evaluationTime, LIBORModelMonteCarloSimulationModel model)
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.RandomVariable
getValue(double evaluationTime, MonteCarloSimulationModel model)
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.RandomVariable
getValueForModifiedData(double evaluationTime, MonteCarloSimulationModel monteCarloSimulationModel, Map<String,Object> dataModified)
Map<String,Object>
getValues(double evaluationTime, LIBORModelMonteCarloSimulationModel model)
This method returns the valuation of the product within the specified model, evaluated at a given evalutationTime.-
Methods inherited from class net.finmath.montecarlo.AbstractMonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.finmath.montecarlo.MonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData
-
-
-
-
Constructor Detail
-
AbstractLIBORMonteCarloProduct
public AbstractLIBORMonteCarloProduct(String currency)
- Parameters:
currency
- The currency of this product (may be null for "any currency").
-
AbstractLIBORMonteCarloProduct
public AbstractLIBORMonteCarloProduct()
-
-
Method Detail
-
getValue
public abstract RandomVariable getValue(double evaluationTime, LIBORModelMonteCarloSimulationModel model) throws CalculationException
Description copied from interface:TermStructureMonteCarloProduct
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime. Note: For a lattice this is often the value conditional to evalutationTime, for a Monte-Carlo simulation this is the (sum of) value discounted to evaluation time. Cashflows prior evaluationTime are not considered.- Specified by:
getValue
in interfaceTermStructureMonteCarloProduct
- Parameters:
evaluationTime
- The time on which this products value should be observed.model
- The model used to price the product.- Returns:
- The random variable representing the value of the product discounted to evaluation time
- Throws:
CalculationException
- Thrown if the valuation fails, specific cause may be available via thecause()
method.
-
getValueForModifiedData
public RandomVariable getValueForModifiedData(double evaluationTime, MonteCarloSimulationModel monteCarloSimulationModel, Map<String,Object> dataModified) throws CalculationException
- Throws:
CalculationException
-
getValues
public Map<String,Object> getValues(double evaluationTime, LIBORModelMonteCarloSimulationModel model) throws CalculationException
Description copied from interface:TermStructureMonteCarloProduct
This method returns the valuation of the product within the specified model, evaluated at a given evalutationTime. The valuation is returned in terms of a map. The map may contain additional information. Note: For a lattice this is often the value conditional to evalutationTime, for a Monte-Carlo simulation this is the (sum of) value discounted to evaluation time. Cashflows prior evaluationTime are not considered.- Specified by:
getValues
in interfaceTermStructureMonteCarloProduct
- Parameters:
evaluationTime
- The time on which this products value should be observed.model
- The model used to price the product.- Returns:
- The random variable representing the value of the product discounted to evaluation time
- Throws:
CalculationException
- Thrown if the valuation fails, specific cause may be available via thecause()
method.
-
getValue
public RandomVariable getValue(double evaluationTime, MonteCarloSimulationModel model) throws CalculationException
Description copied from interface:MonteCarloProduct
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime. For a lattice this is often the value conditional to evalutationTime, for a Monte-Carlo simulation this is the (sum of) value discounted to evaluation time. More generally: The value random variable is a random variable V*(t) such that the time-t conditional expectation of V*(t) is equal to the value of the financial product in time t. An example for V*(t) is the sum of t-discounted payoffs. Cashflows prior evaluationTime are not considered.- Specified by:
getValue
in interfaceMonteCarloProduct
- Specified by:
getValue
in classAbstractMonteCarloProduct
- Parameters:
evaluationTime
- The time on which this products value should be observed.model
- The model used to price the product.- Returns:
- The random variable representing the value of the product discounted to evaluation time
- Throws:
CalculationException
- Thrown if the valuation fails, specific cause may be available via thecause()
method.
-
getFactorDrift
public FactorDrift getFactorDrift(LIBORModelMonteCarloSimulationModel referenceScheme, LIBORModelMonteCarloSimulationModel targetScheme)
Description copied from interface:TermStructureMonteCarloProduct
Overwrite this method if the product supplies a custom FactorDriftInterface to be used in proxy simulation.- Specified by:
getFactorDrift
in interfaceTermStructureMonteCarloProduct
- Parameters:
referenceScheme
- The reference schemetargetScheme
- The target scheme- Returns:
- The FactorDriftInterface
-
-