Module net.finmath.lib
Class DigitalOption
- java.lang.Object
-
- net.finmath.montecarlo.AbstractMonteCarloProduct
-
- net.finmath.montecarlo.assetderivativevaluation.products.AbstractAssetMonteCarloProduct
-
- net.finmath.montecarlo.assetderivativevaluation.products.DigitalOption
-
- All Implemented Interfaces:
Product,AssetMonteCarloProduct,MonteCarloProduct
- Direct Known Subclasses:
SingleAssetMonteCarloProductFactory.DigitalOptionMonteCarlo
public class DigitalOption extends AbstractAssetMonteCarloProduct
Implements the valuation of a digital option on a single asset. Given a model for an asset S, the digital option with strike K, maturity T pays
V(T) = indicator(S(T) - K) in T.
That is 1 if S(T) > 0 otherwise 0. ThegetValuemethod of this class will return the random variable N(t) * V(T) / N(T), where N is the numeraire provided by the model. If N(t) is deterministic, callinggetAverageon this random variable will result in the value. Otherwise a conditional expectation has to be applied.- Version:
- 1.3
- Author:
- Christian Fries
-
-
Constructor Summary
Constructors Constructor Description DigitalOption(double maturity, double strike)Construct a product representing an digital option on an asset S (where S the asset with index 0 from the model - single asset case).DigitalOption(double maturity, double strike, int underlyingIndex)Construct a product representing an digital option on an asset S (where S the asset with index 0 from the model - single asset case).DigitalOption(String nameOfUnderlying, double maturity, double strike)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RandomVariablegetValue(double evaluationTime, AssetModelMonteCarloSimulationModel model)This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.-
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
-
DigitalOption
public DigitalOption(double maturity, double strike, int underlyingIndex)Construct a product representing an digital option on an asset S (where S the asset with index 0 from the model - single asset case).- Parameters:
maturity- The maturity T in the option payoff indicator(S(T)-K)strike- The strike K in the option payoff indicator(S(T)-K).underlyingIndex- The index of the underlying to be fetched from the model.
-
DigitalOption
public DigitalOption(double maturity, double strike)Construct a product representing an digital option on an asset S (where S the asset with index 0 from the model - single asset case).- Parameters:
maturity- The maturity T in the option payoff indicator(S(T)-K)strike- The strike K in the option payoff indicator(S(T)-K).
-
DigitalOption
public DigitalOption(String nameOfUnderlying, double maturity, double strike)
-
-
Method Detail
-
getValue
public RandomVariable getValue(double evaluationTime, AssetModelMonteCarloSimulationModel model) throws CalculationException
This 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 interfaceAssetMonteCarloProduct- Specified by:
getValuein classAbstractAssetMonteCarloProduct- 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.
-
-