- java.lang.Object
-
- net.finmath.montecarlo.AbstractMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.AbstractLIBORMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.SimpleSwap
-
- All Implemented Interfaces:
Product
,TermStructureMonteCarloProduct
,MonteCarloProduct
public class SimpleSwap extends AbstractLIBORMonteCarloProduct
Implements the valuation of a swap under a LIBORModelMonteCarloSimulationModel- Version:
- 1.2
- Author:
- Christian Fries
-
-
Constructor Summary
Constructors Constructor Description SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates)
Deprecated.SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates, boolean isPayFix, double notional)
Create a swap.SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates, boolean isPayFix, double[] notional)
Create a swap.SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates, double notional)
Create a swap.SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates, double[] notional)
Create a swap.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double[]
getFixingDates()
double[]
getNotional()
double[]
getPaymentDates()
double[]
getPeriodLengths()
double
getStartTime()
double[]
getSwapRates()
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.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
-
SimpleSwap
public SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates, boolean isPayFix, double[] notional)
Create a swap.- Parameters:
fixingDates
- Vector of fixing datespaymentDates
- Vector of payment dates (must have same length as fixing dates)swaprates
- Vector of strikes (must have same length as fixing dates)isPayFix
- If true, the swap is receive float - pay fix, otherwise its receive fix - pay float.notional
- The notional as a vector for all periods
-
SimpleSwap
public SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates, boolean isPayFix, double notional)
Create a swap.- Parameters:
fixingDates
- Vector of fixing datespaymentDates
- Vector of payment dates (must have same length as fixing dates)swaprates
- Vector of strikes (must have same length as fixing dates)isPayFix
- If true, the swap is receive float - pay fix, otherwise its receive fix - pay float.notional
- The constant notional
-
SimpleSwap
public SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates, double notional)
Create a swap.- Parameters:
fixingDates
- Vector of fixing datespaymentDates
- Vector of payment dates (must have same length as fixing dates)swaprates
- Vector of strikes (must have same length as fixing dates)notional
- The constant notional
-
SimpleSwap
public SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates, double[] notional)
Create a swap.- Parameters:
fixingDates
- Vector of fixing datespaymentDates
- Vector of payment dates (must have same length as fixing dates)swaprates
- Vector of strikes (must have same length as fixing dates)notional
- The notional as a vector for all periods
-
SimpleSwap
@Deprecated public SimpleSwap(double[] fixingDates, double[] paymentDates, double[] swaprates)
Deprecated.Create a swap.- Parameters:
fixingDates
- Vector of fixing datespaymentDates
- Vector of payment dates (must have same length as fixing dates)swaprates
- Vector of strikes (must have same length as fixing dates)
-
-
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 interfaceTermStructureMonteCarloProduct
- Specified by:
getValue
in 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.
-
toString
public String toString()
- Overrides:
toString
in classAbstractMonteCarloProduct
-
getStartTime
public double getStartTime()
-
getFixingDates
public double[] getFixingDates()
-
getNotional
public double[] getNotional()
-
getSwapRates
public double[] getSwapRates()
-
getPaymentDates
public double[] getPaymentDates()
-
getPeriodLengths
public double[] getPeriodLengths()
-
-