Class DiscreteTenorRollOver
java.lang.Object
net.finmath.montecarlo.AbstractMonteCarloProduct
net.finmath.montecarlo.interestrate.products.AbstractTermStructureMonteCarloProduct
net.finmath.montecarlo.interestrate.products.DiscreteTenorRollOver
- All Implemented Interfaces:
Product, TermStructureMonteCarloProduct, MonteCarloProduct
A diagnostic hedge instrument representing a discretely rolled unit bond.
The product pays
\[
1 + (T_{i+1}-T_{i}) L(T_{i},T_{i+1};T_{i})
\]
at payment time \( T_{i+1} \). Hence, in a single-curve model, the value at
fixing time \( T_{i} \) is one. This is the instrument obtained if the cash
from a matured \(T_{i}\)-bond is rolled from \( T_{i} \) to
{\( T_{i+1} \) at the fixing Libor, rather than through the model's
short-rate money-market numeraire.
The class is mainly meant as a diagnostic product for comparing LMM and
short-rate/Hull-White roll-over conventions. For t < T_i its value is
the adapted model-implied value of a T_i-bond, because the payoff is
constructed to have value one at T_i. For T_i <= t < T_{i+1}
the payoff amount is known and is valued as that amount times the adapted
payment bond. At T_{i+1} the payoff amount is returned.
- Author:
- Christian Fries
-
Constructor Summary
ConstructorsConstructorDescriptionDiscreteTenorRollOver(double fixingTime, double paymentTime, double periodLength) Creates a discretely rolled unit bond. -
Method Summary
Modifier and TypeMethodDescriptiondoubledoubledoublegetValue(double evaluationTime, TermStructureMonteCarloSimulationModel model) This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.toString()Methods inherited from class AbstractTermStructureMonteCarloProduct
getFactorDrift, getValue, getValueForModifiedData, getValuesMethods inherited from class AbstractMonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedDataMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface MonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData
-
Constructor Details
-
DiscreteTenorRollOver
public DiscreteTenorRollOver(double fixingTime, double paymentTime, double periodLength) Creates a discretely rolled unit bond.- Parameters:
fixingTime- The fixing time \( T_{i} \).paymentTime- The payment time \( T_{i+1} \).periodLength- The period length \( T_{i+1}-T_{i} \).
-
-
Method Details
-
getValue
public RandomVariable getValue(double evaluationTime, TermStructureMonteCarloSimulationModel model) throws CalculationException Description copied from interface:TermStructureMonteCarloProductThis 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:
getValuein interfaceTermStructureMonteCarloProduct- Specified by:
getValuein 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.
-
getFixingTime
public double getFixingTime() -
getPaymentTime
public double getPaymentTime() -
getPeriodLength
public double getPeriodLength() -
toString
- Overrides:
toStringin classAbstractMonteCarloProduct
-