net.finmath.montecarlo.assetderivativevaluation.products
Class BermudanOption
- java.lang.Object
-
- net.finmath.montecarlo.AbstractMonteCarloProduct
-
- net.finmath.montecarlo.assetderivativevaluation.products.AbstractAssetMonteCarloProduct
-
- net.finmath.montecarlo.assetderivativevaluation.products.BermudanOption
-
- All Implemented Interfaces:
- ProductInterface
public class BermudanOption extends AbstractAssetMonteCarloProduct
This class implements the valuation of a Bermudan option paying
N(i) * (S(T(i)) - K(i)) at T(i),
when exercised in T(i), where N(i) is the notional, S is the underlying, K(i) is the strike and T(i) the exercise date. The code "demos" the two prominent methods for the valuation of Bermudan (American) products:- The valuation may be performed using an estimation of the conditional expectation to determine the exercise criteria. Apart from a possible foresight bias induced by the Monte-Carlo errors, this give a lower bound for the Bermudan value.
- The valuation may be performed using the dual method based on a minimization problem, which gives an upper bound.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classBermudanOption.ExerciseMethod
-
Constructor Summary
Constructors Constructor and Description BermudanOption(double[] exerciseDates, double[] notionals, double[] strikes)Create a Bermudan option paying N(i) * (S(T(i)) - K(i)) at T(i), when exercised in T(i), where N(i) is the notional, S is the underlying, K(i) is the strike and T(i) the exercise date.BermudanOption(double[] exerciseDates, double[] notionals, double[] strikes, BermudanOption.ExerciseMethod exerciseMethod)Create a Bermudan option paying N(i) * (S(T(i)) - K(i)) at T(i), when exercised in T(i), where N(i) is the notional, S is the underlying, K(i) is the strike and T(i) the exercise date.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description RandomVariableInterfacegetValue(double evaluationTime, AssetModelMonteCarloSimulationInterface 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, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, toString
-
-
-
-
Constructor Detail
-
BermudanOption
public BermudanOption(double[] exerciseDates, double[] notionals, double[] strikes)Create a Bermudan option paying N(i) * (S(T(i)) - K(i)) at T(i), when exercised in T(i), where N(i) is the notional, S is the underlying, K(i) is the strike and T(i) the exercise date.- Parameters:
exerciseDates- The exercise dates (T(i)), given as doubles.notionals- The notionals (N(i)) for each exercise date.strikes- The strikes (K(i)) for each exercise date.
-
BermudanOption
public BermudanOption(double[] exerciseDates, double[] notionals, double[] strikes, BermudanOption.ExerciseMethod exerciseMethod)Create a Bermudan option paying N(i) * (S(T(i)) - K(i)) at T(i), when exercised in T(i), where N(i) is the notional, S is the underlying, K(i) is the strike and T(i) the exercise date.- Parameters:
exerciseDates- The exercise dates (T(i)), given as doubles.notionals- The notionals (N(i)) for each exercise date.strikes- The strikes (K(i)) for each exercise date.exerciseMethod- The exercise method to be used for the estimation of the exercise boundary.
-
-
Method Detail
-
getValue
public RandomVariableInterface getValue(double evaluationTime, AssetModelMonteCarloSimulationInterface model) throws CalculationException
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime. Cash-flows prior evaluationTime are not considered.- 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.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG