Module net.finmath.lib
Class FiniteDifferenceHedgedPortfolio
java.lang.Object
net.finmath.montecarlo.AbstractMonteCarloProduct
net.finmath.montecarlo.assetderivativevaluation.products.AbstractAssetMonteCarloProduct
net.finmath.montecarlo.assetderivativevaluation.products.FiniteDifferenceHedgedPortfolio
- All Implemented Interfaces:
Product
,AssetMonteCarloProduct
,MonteCarloProduct
This class implements a delta and delta-gamma hedged portfolio of an European option (a hedge simulator).
The hedge is done under the assumption of a Black Scholes Model (even if the pricing model is a different one).
In case of the gamma hedge and the vega hedge, note that we make the assumption that the
market trades these option according to Black-Scholes parameters assumed in hedging.
While this is a simple model, it is to some extend reasonable, when we assume that the
hedge is done by calculating delta from a calibrated model (where the risk free rate and
the volatility are "market implied").
That said, this class evaluates the hedge portfolio given that the market implies a given
risk free rate and volatility, while the underlying follows a given (possibly different) stochastic
process.
- Since:
- finmath-lib 4.1.0
- Version:
- 1.3
- Author:
- Christian Fries
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionFiniteDifferenceHedgedPortfolio(AbstractAssetMonteCarloProduct productToHedge, AssetModelMonteCarloSimulationModel modelUsedForHedging, ArrayList<AbstractAssetMonteCarloProduct> hedgeProducts, FiniteDifferenceHedgedPortfolio.HedgeStrategy hedgeStrategy)
Construction of a hedge portfolio. -
Method Summary
Modifier and TypeMethodDescriptiongetValue(double evaluationTime, AssetModelMonteCarloSimulationModel model)
Methods inherited from class net.finmath.montecarlo.assetderivativevaluation.products.AbstractAssetMonteCarloProduct
getValue
Methods inherited from class net.finmath.montecarlo.AbstractMonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, toString
-
Constructor Details
-
FiniteDifferenceHedgedPortfolio
public FiniteDifferenceHedgedPortfolio(AbstractAssetMonteCarloProduct productToHedge, AssetModelMonteCarloSimulationModel modelUsedForHedging, ArrayList<AbstractAssetMonteCarloProduct> hedgeProducts, FiniteDifferenceHedgedPortfolio.HedgeStrategy hedgeStrategy)Construction of a hedge portfolio.- Parameters:
productToHedge
- The product for which the hedge portfolio should be constructed.modelUsedForHedging
- The model used for calculation of the hedge ratios.hedgeProducts
- The products constituting the hedge portfolio.hedgeStrategy
- Specification of the hedge strategy to be used (delta, delta-gamma, etc.).
-
-
Method Details
-
getValue
public RandomVariable getValue(double evaluationTime, AssetModelMonteCarloSimulationModel model) throws CalculationException- Specified by:
getValue
in interfaceAssetMonteCarloProduct
- Specified by:
getValue
in classAbstractAssetMonteCarloProduct
- Throws:
CalculationException
-