Module net.finmath.lib
Class HybridAssetMonteCarloProduct
java.lang.Object
net.finmath.montecarlo.AbstractMonteCarloProduct
net.finmath.montecarlo.hybridassetinterestrate.products.HybridAssetMonteCarloProduct
- All Implemented Interfaces:
Product
,MonteCarloProduct
- Direct Known Subclasses:
Bond
,BondWithForeignNumeraire
,ForwardRateAgreementGeneralized
Base class for product that need an HybridAssetLIBORModelMonteCarloSimulationInterface in their valuation.
- 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, HybridAssetMonteCarloSimulation 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 monteCarloSimulationInterface, Map<String,Object> dataModified)
getValues(double evaluationTime, HybridAssetMonteCarloSimulation 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
-
Constructor Details
-
HybridAssetMonteCarloProduct
public HybridAssetMonteCarloProduct()
-
-
Method Details
-
getValue
public abstract RandomVariable getValue(double evaluationTime, HybridAssetMonteCarloSimulation model) throws CalculationExceptionThis 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.- 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 monteCarloSimulationInterface, Map<String,Object> dataModified) throws CalculationException- Throws:
CalculationException
-
getValues
public Map<String,Object> getValues(double evaluationTime, HybridAssetMonteCarloSimulation model) throws CalculationExceptionThis 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.- 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)Overwrite this method if the product supplies a custom FactorDriftInterface to be used in proxy simulation.- Parameters:
referenceScheme
- The reference schemetargetScheme
- The target scheme- Returns:
- The FactorDriftInterface
-