All Implemented Interfaces:
Serializable, Product, TermStructureMonteCarloProduct, MonteCarloProduct
Direct Known Subclasses:
Period

public abstract class AbstractPeriod extends AbstractProductComponent
Base class for a period. A period has references to the index (coupon) and the notional. It provides the fixing date for the index, the period length, and the payment date.
Version:
1.1
Author:
Christian Fries
See Also:
Serialized Form
  • Constructor Details

    • AbstractPeriod

      public AbstractPeriod(LocalDateTime referenceDate, double periodStart, double periodEnd, double fixingDate, double paymentDate, Notional notional, AbstractProductComponent index, double daycountFraction)
      Initialize basic properties of the period.
      Parameters:
      referenceDate - The date corresponding to time \( t = 0 \).
      periodStart - The period start.
      periodEnd - The period end.
      fixingDate - The fixing date (as double).
      paymentDate - The payment date (as double).
      notional - The notional object relevant for this period.
      index - The index (used for coupon calculation) associated with this period.
      daycountFraction - The daycount fraction (coupon = index(fixingDate) * daycountFraction).
    • AbstractPeriod

      public AbstractPeriod(double periodStart, double periodEnd, double fixingDate, double paymentDate, Notional notional, AbstractProductComponent index, double daycountFraction)
      Initialize basic properties of the period.
      Parameters:
      periodStart - The period start.
      periodEnd - The period end.
      fixingDate - The fixing date (as double).
      paymentDate - The payment date (as double).
      notional - The notional object relevant for this period.
      index - The index (used for coupon calculation) associated with this period.
      daycountFraction - The daycount fraction (coupon = index(fixingDate) * daycountFraction).
    • AbstractPeriod

      public AbstractPeriod(double periodStart, double periodEnd, double fixingDate, double paymentDate, Notional notional, AbstractProductComponent index)
      Initialize basic properties of the period using the idealized daycount faction periodEnd-periodStart.
      Parameters:
      periodStart - The period start.
      periodEnd - The period end.
      fixingDate - The fixing date (as double).
      paymentDate - The payment date (as double).
      notional - The notional object relevant for this period.
      index - The index (coupon) associated with this period.
  • Method Details

    • getValue

      public abstract 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.
    • getCoupon

      public abstract RandomVariable getCoupon(double evaluationTime, TermStructureMonteCarloSimulationModel model) throws CalculationException
      Throws:
      CalculationException
    • getCurrency

      public String getCurrency()
      Description copied from interface: MonteCarloProduct
      Returns the currency string of this product.
      Specified by:
      getCurrency in interface MonteCarloProduct
      Overrides:
      getCurrency in class AbstractMonteCarloProduct
      Returns:
      the currency
    • getReferenceDate

      public LocalDateTime getReferenceDate()
      Returns:
      the reference date
    • getPeriodStart

      public double getPeriodStart()
      Returns:
      the period start
    • getPeriodEnd

      public double getPeriodEnd()
      Returns:
      the period end
    • getFixingDate

      public double getFixingDate()
      Returns:
      the fixing date
    • getPaymentDate

      public double getPaymentDate()
      Returns:
      the payment date
    • getNotional

      public Notional getNotional()
      Returns:
      the notional associated with this period.
    • getIndex

      public AbstractProductComponent getIndex()
      Returns:
      the index associated with this period.
    • getDaycountFraction

      public double getDaycountFraction()
      Returns:
      the daycount fraction used in this period.
    • queryUnderlyings

      public Set<String> queryUnderlyings()
      Description copied from class: AbstractProductComponent
      Returns a set of underlying names referenced by this product component (i.e., required for valuation) or null if none.
      Specified by:
      queryUnderlyings in class AbstractProductComponent
      Returns:
      A set of underlying names referenced by this product component (i.e., required for valuation) or null if none.
    • toString

      public String toString()
      Overrides:
      toString in class AbstractMonteCarloProduct