Class DiscreteTenorRollOver

All Implemented Interfaces:
Product, TermStructureMonteCarloProduct, MonteCarloProduct

public class DiscreteTenorRollOver extends AbstractTermStructureMonteCarloProduct
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 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: TermStructureMonteCarloProduct
      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.
    • getFixingTime

      public double getFixingTime()
    • getPaymentTime

      public double getPaymentTime()
    • getPeriodLength

      public double getPeriodLength()
    • toString

      public String toString()
      Overrides:
      toString in class AbstractMonteCarloProduct