Module net.finmath.lib
Class AbstractTermStructureMonteCarloProduct
java.lang.Object
net.finmath.montecarlo.AbstractMonteCarloProduct
net.finmath.montecarlo.interestrate.products.AbstractTermStructureMonteCarloProduct
- All Implemented Interfaces:
Product
,TermStructureMonteCarloProduct
,MonteCarloProduct
- Direct Known Subclasses:
AbstractLIBORMonteCarloProduct
,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 AbstractTermStructureMonteCarloProduct
extends AbstractMonteCarloProduct
implements TermStructureMonteCarloProduct
Base class for products requiring an TermStructureMonteCarloSimulationModel (or LIBORModelMonteCarloSimulationModel) as base class for the valuation model argument
- Version:
- 1.0
- Author:
- Christian Fries
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetFactorDrift(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, TermStructureMonteCarloSimulationModel model)
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.getValue(double evaluationTime, MonteCarloSimulationModel model)
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.getValueForModifiedData(double evaluationTime, MonteCarloSimulationModel monteCarloSimulationModel, Map<String,Object> dataModified)
getValues(double evaluationTime, TermStructureMonteCarloSimulationModel 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 Details
-
AbstractTermStructureMonteCarloProduct
- Parameters:
currency
- The currency of this product (may be null for "any currency").
-
AbstractTermStructureMonteCarloProduct
public AbstractTermStructureMonteCarloProduct()
-
-
Method Details
-
getValue
public abstract RandomVariable getValue(double evaluationTime, TermStructureMonteCarloSimulationModel model) throws CalculationExceptionDescription 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, TermStructureMonteCarloSimulationModel model) throws CalculationExceptionDescription 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 CalculationExceptionDescription 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 FactorTransform 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
-