# Class SwaptionSingleCurve

All Implemented Interfaces:
Product, TermStructureMonteCarloProduct, MonteCarloProduct

public class SwaptionSingleCurve
Implements the valuation of a swaption under a LIBORModelMonteCarloSimulationModel 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 not result in the valuation of a collaterlized option on a collateralized swap. It will be a collaterlized option on a single curve (uncolateralized) swap. For a multi-curve valuation see Swaption.
Version:
1.1
Author:
Christian Fries
• ## Constructor Summary

Constructors
Constructor
Description
SwaptionSingleCurve​(double exerciseDate, double[] fixingDates, double[] paymentDates, double[] swaprates)
Create a swaption.
SwaptionSingleCurve​(double exerciseDate, double[] fixingDates, double[] paymentDates, double[] periodLengths, double[] swaprates)
Create a swaption.
SwaptionSingleCurve​(double exerciseDate, TimeDiscretization swapTenor, double swaprate)
Creates a swaption using a TimeDiscretizationFromArray
• ## Method Summary

Modifier and Type
Method
Description
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

• ### SwaptionSingleCurve

public SwaptionSingleCurve(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).
• ### SwaptionSingleCurve

public SwaptionSingleCurve(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).
• ### SwaptionSingleCurve

public SwaptionSingleCurve(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