- java.lang.Object
-
- net.finmath.montecarlo.AbstractMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.AbstractLIBORMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.SwaptionATM
-
- All Implemented Interfaces:
Product,Swaption,TermStructureMonteCarloProduct,MonteCarloProduct
public class SwaptionATM extends AbstractLIBORMonteCarloProduct implements Swaption
A lightweight ATM swaption product used for calibration.- Version:
- 1.0
- Author:
- Stefan Sedlmair, Christian Fries
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.finmath.modelling.products.Swaption
Swaption.ValueUnit
-
-
Constructor Summary
Constructors Constructor Description SwaptionATM(double[] swapTenor, Swaption.ValueUnit valueUnit)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RandomVariablegetImpliedBachelierATMOptionVolatility(RandomVariable optionValue, double optionMaturity, double swapAnnuity)Calculates ATM Bachelier implied volatilities.RandomVariablegetValue(double evaluationTime, LIBORModelMonteCarloSimulationModel 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.interestrate.products.AbstractLIBORMonteCarloProduct
getFactorDrift, getValue, getValueForModifiedData, getValues
-
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
-
Methods inherited from interface net.finmath.montecarlo.MonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData
-
-
-
-
Constructor Detail
-
SwaptionATM
public SwaptionATM(double[] swapTenor, Swaption.ValueUnit valueUnit)
-
-
Method Detail
-
getValue
public RandomVariable getValue(double evaluationTime, LIBORModelMonteCarloSimulationModel model) throws CalculationException
Description copied from interface:TermStructureMonteCarloProductThis 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 interfaceTermStructureMonteCarloProduct- Specified by:
getValuein classAbstractLIBORMonteCarloProduct- 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.
-
getImpliedBachelierATMOptionVolatility
public RandomVariable getImpliedBachelierATMOptionVolatility(RandomVariable optionValue, double optionMaturity, double swapAnnuity)
Calculates ATM Bachelier implied volatilities.- Parameters:
optionValue- RandomVarable representing the value of the optionoptionMaturity- Time to maturity.swapAnnuity- The swap annuity as seen on valuation time.- Returns:
- The Bachelier implied volatility.
- See Also:
AnalyticFormulas.bachelierOptionImpliedVolatility(double, double, double, double, double)
-
-