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
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) > K otherwise 0. The
V(T) = indicator(S(T) - K) in T.
That is 1 if S(T) > K otherwise 0. The
getValue
method 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,
calling getAverage
on this random variable will result in the value. Otherwise a
conditional expectation has to be applied.- Version:
- 1.3
- Author:
- Christian Fries
-
Constructor Summary
ConstructorsConstructorDescriptionDigitalOption(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 indexunderlyingIndex
from the model - single asset case).DigitalOption(String nameOfUnderlying, double maturity, double strike)
-
Method Summary
Modifier and TypeMethodDescriptiondouble
Returns the maturity of the option.Returns a string name of the underlying (if supported), otherwise null.double
Returns the strike of the option.Returns the index of the asset requested from model.getUnderlying(time, assetIndex) to get the underlying.getValue(double evaluationTime, AssetModelMonteCarloSimulationModel model)
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.toString()
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
-
Constructor Details
-
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 indexunderlyingIndex
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
-
-
Method Details
-
getValue
public RandomVariable getValue(double evaluationTime, AssetModelMonteCarloSimulationModel 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.- Specified by:
getValue
in interfaceAssetMonteCarloProduct
- Specified by:
getValue
in 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.
-
getMaturity
public double getMaturity()Returns the maturity of the option.- Returns:
- the maturity of the option.
-
getStrike
public double getStrike()Returns the strike of the option.- Returns:
- the strike of the option.
-
getUnderlyingIndex
Returns the index of the asset requested from model.getUnderlying(time, assetIndex) to get the underlying.- Returns:
- the index of the asset requested from model.getUnderlying(time, assetIndex) to get the underlying.
-
getNameOfUnderlying
Returns a string name of the underlying (if supported), otherwise null.- Returns:
- a string name of the underlying (if supported), otherwise null.
-
toString
- Overrides:
toString
in classAbstractMonteCarloProduct
-