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,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 FactorDriftgetFactorDrift(LIBORModelMonteCarloSimulationModel referenceScheme, LIBORModelMonteCarloSimulationModel targetScheme)Overwrite this method if the product supplies a custom FactorDriftInterface to be used in proxy simulation.abstract RandomVariablegetValue(double evaluationTime, LIBORModelMonteCarloSimulationModel model)This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.RandomVariablegetValue(double evaluationTime, MonteCarloSimulationModel model)This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.RandomVariablegetValueForModifiedData(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:TermStructureMonteCarloProductThis 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:
getValuein 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:TermStructureMonteCarloProductThis 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:
getValuesin 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:MonteCarloProductThis 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:
getValuein interfaceMonteCarloProduct- Specified by:
getValuein 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:TermStructureMonteCarloProductOverwrite this method if the product supplies a custom FactorDriftInterface to be used in proxy simulation.- Specified by:
getFactorDriftin interfaceTermStructureMonteCarloProduct- Parameters:
referenceScheme- The reference schemetargetScheme- The target scheme- Returns:
- The FactorDriftInterface
-
-