java.lang.Object
net.finmath.montecarlo.AbstractMonteCarloProduct
net.finmath.montecarlo.interestrate.products.AbstractTermStructureMonteCarloProduct
net.finmath.montecarlo.interestrate.products.Swaption
- All Implemented Interfaces:
Product
,Swaption
,TermStructureMonteCarloProduct
,MonteCarloProduct
Implements the Monte-Carlo valuation of a swaption under a LIBORModelMonteCarloSimulationModel.
Note: This implementation is based on model relative times (using ACT/365 floating point offsets).
An implementation using dates and exact swap schedules is provided by
SwaptionFromSwapSchedules
.
Important: If the LIBOR Market Model is a multi-curve model in the sense that the
numeraire is not calculated from the forward curve, then this valuation does
assume that the basis deterministic. For the valuation of a fully generalize swaption,
you have to use the Option
component on a Swap
.- Version:
- 1.3
- Author:
- Christian Fries
- See Also:
SwaptionFromSwapSchedules
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.finmath.modelling.products.Swaption
Swaption.ValueUnit
-
Constructor Summary
ConstructorsConstructorDescriptionSwaption(double exerciseDate, double[] fixingDates, double[] paymentDates, double[] swaprates)
Create a swaption.Swaption(double exerciseDate, double[] fixingDates, double[] paymentDates, double[] periodLengths, double[] swaprates)
Create a swaption.Swaption(double exerciseDate, double[] fixingDates, double[] paymentDates, double[] periodLengths, double[] swaprates, double notional)
Create a swaption.Swaption(double exerciseDate, TimeDiscretization swapTenor, double swaprate)
Creates a swaption using a TimeDiscretizationFromArray -
Method Summary
Modifier and TypeMethodDescriptiondouble
Deprecated.double[]
double
double[]
double[]
double[]
getValue(double evaluationTime, TermStructureMonteCarloSimulationModel model)
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.double
getValue(ForwardCurve forwardCurve, double swaprateVolatility)
This method returns the value of the product using a Black-Scholes model for the swap rate The model is determined by a discount factor curve and a swap rate volatility.toString()
Methods inherited from class net.finmath.montecarlo.interestrate.products.AbstractTermStructureMonteCarloProduct
getFactorDrift, getValue, getValueForModifiedData, getValues
Methods inherited from class net.finmath.montecarlo.AbstractMonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData
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 Details
-
Swaption
public Swaption(double exerciseDate, double[] fixingDates, double[] paymentDates, double[] periodLengths, double[] swaprates, double notional)Create a swaption.- Parameters:
exerciseDate
- The exercise date of the swaption.fixingDates
- Vector of fixing dates.paymentDates
- Vector of payment dates (must have same length as fixing dates).periodLengths
- Vector of period lengths.swaprates
- Vector of strikes (must have same length as fixing dates).notional
- The notional date of the swaption.
-
Swaption
public Swaption(double exerciseDate, double[] fixingDates, double[] paymentDates, double[] periodLengths, double[] swaprates)Create a swaption.- Parameters:
exerciseDate
- Vector of exercise dates.fixingDates
- Vector of fixing dates.paymentDates
- Vector of payment dates (must have same length as fixing dates).periodLengths
- Vector of period lengths.swaprates
- Vector of strikes (must have same length as fixing dates).
-
Swaption
public Swaption(double exerciseDate, double[] fixingDates, double[] paymentDates, double[] swaprates)Create a swaption.- Parameters:
exerciseDate
- Vector of exercise dates.fixingDates
- Vector of fixing dates.paymentDates
- Vector of payment dates (must have same length as fixing dates).swaprates
- Vector of strikes (must have same length as fixing dates).
-
Swaption
Creates a swaption using a TimeDiscretizationFromArray- Parameters:
exerciseDate
- Exercise date.swapTenor
- Object specifying period start and end dates.swaprate
- Strike.
-
-
Method Details
-
getValue
public RandomVariable getValue(double evaluationTime, TermStructureMonteCarloSimulationModel 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 interfaceTermStructureMonteCarloProduct
- Specified by:
getValue
in classAbstractTermStructureMonteCarloProduct
- 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.
-
getValue
This method returns the value of the product using a Black-Scholes model for the swap rate The model is determined by a discount factor curve and a swap rate volatility.- Parameters:
forwardCurve
- The forward curve on which to value the swap.swaprateVolatility
- The Black volatility.- Returns:
- Value of this product
-
toString
- Overrides:
toString
in classAbstractMonteCarloProduct
-
getExerciseIndicator
@Deprecated public RandomVariable getExerciseIndicator(LIBORModelMonteCarloSimulationModel model) throws CalculationExceptionDeprecated.- Throws:
CalculationException
-
getExerciseDate
public double getExerciseDate() -
getFixingDates
public double[] getFixingDates() -
getPaymentDates
public double[] getPaymentDates() -
getPeriodLengths
public double[] getPeriodLengths() -
getSwaprates
public double[] getSwaprates() -
getNotional
public double getNotional()
-