# Class Swaption

All Implemented Interfaces:
Product, Swaption, TermStructureMonteCarloProduct, MonteCarloProduct

public class Swaption extends AbstractTermStructureMonteCarloProduct implements Swaption
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
SwaptionFromSwapSchedules

## Nested classes/interfaces inherited from interface net.finmath.modelling.products.Swaption

Swaption.ValueUnit
• ## Constructor Summary

Constructors
Constructor
Description
Swaption​(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 Type
Method
Description
double
getExerciseDate()

RandomVariable
getExerciseIndicator​(LIBORModelMonteCarloSimulationModel model)
Deprecated.
double[]
getFixingDates()

double
getNotional()

double[]
getPaymentDates()

double[]
getPeriodLengths()

double[]
getSwaprates()

RandomVariable
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.
String
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

public Swaption(double exerciseDate, TimeDiscretization swapTenor, double swaprate)
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 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:
getValue in interface TermStructureMonteCarloProduct
Specified by:
getValue in class AbstractTermStructureMonteCarloProduct
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 the cause() method.
• ### getValue

public 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.
Parameters:
forwardCurve - The forward curve on which to value the swap.
swaprateVolatility - The Black volatility.
Returns:
Value of this product
• ### toString

public String toString()
Overrides:
toString in class AbstractMonteCarloProduct
• ### getExerciseIndicator

public RandomVariable getExerciseIndicator​ throws CalculationException
Deprecated.
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()