finMath lib documentation
net.finmath.montecarlo.interestrate.products

## Class SwaptionSingleCurve

• All Implemented Interfaces:
Product, TermStructureMonteCarloProduct, MonteCarloProduct

public class SwaptionSingleCurve
extends AbstractLIBORMonteCarloProduct
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 and 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

All Methods
Modifier and Type Method and Description
RandomVariable getValue(double evaluationTime, LIBORModelMonteCarloSimulationModel 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.AbstractLIBORMonteCarloProduct

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 Detail

• #### 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 Detail

• #### getValue

public RandomVariable getValue(double evaluationTime,
LIBORModelMonteCarloSimulationModel 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 AbstractLIBORMonteCarloProduct
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