Module net.finmath.lib
Class BlackScholesHedgedPortfolio
- java.lang.Object
-
- net.finmath.montecarlo.AbstractMonteCarloProduct
-
- net.finmath.montecarlo.assetderivativevaluation.products.AbstractAssetMonteCarloProduct
-
- net.finmath.montecarlo.assetderivativevaluation.products.BlackScholesHedgedPortfolio
-
- All Implemented Interfaces:
Product
,AssetMonteCarloProduct
,MonteCarloProduct
public class BlackScholesHedgedPortfolio extends AbstractAssetMonteCarloProduct
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. ThegetValue
-method returns the random variable \( \Pi(t) \) representing the value of the replication portfolio \( \Pi(t) = \phi_0(t) N(t) + \phi_1(t) S(t) + \psi_0(t) C(t) \).- Version:
- 1.4
- Author:
- Christian Fries
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BlackScholesHedgedPortfolio.HedgeStrategy
-
Constructor Summary
Constructors Constructor Description BlackScholesHedgedPortfolio(double maturity, double strike, double riskFreeRate, double volatility)
Construction of a hedge portfolio assuming a Black-Scholes model for the hedge ratios.BlackScholesHedgedPortfolio(double maturity, double strike, double riskFreeRate, double volatility, double hedgeOptionMaturity, double hedgeOptionStrike, BlackScholesHedgedPortfolio.HedgeStrategy hedgeStrategy)
Construction of a delta-gamma hedge portfolio assuming a Black-Scholes model.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RandomVariable
getValue(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 Detail
-
BlackScholesHedgedPortfolio
public BlackScholesHedgedPortfolio(double maturity, double strike, double riskFreeRate, double volatility, double hedgeOptionMaturity, double hedgeOptionStrike, BlackScholesHedgedPortfolio.HedgeStrategy hedgeStrategy)
Construction of a delta-gamma hedge portfolio assuming a Black-Scholes model.- Parameters:
maturity
- Maturity of the option we wish to replicate.strike
- Strike of the option we wish to replicate.riskFreeRate
- Model riskFreeRate assumption for our delta hedge.volatility
- Model volatility assumption for our delta hedge.hedgeOptionMaturity
- Maturity of the option used in the hedge portfolio (to hedge gamma).hedgeOptionStrike
- Strike of the option used in the hedge portfolio (to hedge gamma).hedgeStrategy
- Specification of the hedge strategy to be used (delta, delta-gamma, etc.).
-
BlackScholesHedgedPortfolio
public BlackScholesHedgedPortfolio(double maturity, double strike, double riskFreeRate, double volatility)
Construction of a hedge portfolio assuming a Black-Scholes model for the hedge ratios.- Parameters:
maturity
- Maturity of the option we wish to replicate.strike
- Strike of the option we wish to replicate.riskFreeRate
- Model riskFreeRate assumption for our delta hedge.volatility
- Model volatility assumption for our delta hedge.
-
-
Method Detail
-
getValue
public RandomVariable getValue(double evaluationTime, AssetModelMonteCarloSimulationModel model) throws CalculationException
- Specified by:
getValue
in interfaceAssetMonteCarloProduct
- Specified by:
getValue
in classAbstractAssetMonteCarloProduct
- Throws:
CalculationException
-
-