## Class 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. The getValue-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
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
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
• ### 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 interface AssetMonteCarloProduct
Specified by:
getValue in class AbstractAssetMonteCarloProduct
Throws:
CalculationException