Class OvernightInArrearsCapletFloorletBinaryPeriod

  • All Implemented Interfaces:
    Serializable, org.joda.beans.Bean, org.joda.beans.ImmutableBean

    public final class OvernightInArrearsCapletFloorletBinaryPeriod
    extends Object
    implements org.joda.beans.ImmutableBean, Serializable
    A period over which an binary caplet/floorlet on overnight composition in-arrears is paid.

    The pay-offs are, for an index composition 'I', a year fraction 'a' and an amount 'N'
    Overnight binary caplet: N * a * ( (I > K)?1:0 ) ; K=caplet
    Overnight binary floorlet: N * a * ( (I < K)?1:0 ) ; K=floorlet

    The payoff depend on the level of the compounded rate over the period. The option is of Asian type with the averaging mechanism given by the composition.

    See Also:
    Serialized Form
    • Method Detail

      • getIndex

        public OvernightIndex getIndex()
        Gets the Ibor index.
        Returns:
        the ibor index
      • getStrike

        public double getStrike()
        Gets the strike value.
        Returns:
        the strike
      • getPutCall

        public PutCall getPutCall()
        Gets put or call.

        CALL is returned for a caplet, whereas PUT is returned for a floorlet.

        Returns:
        put or call
      • payoff

        public CurrencyAmount payoff​(double fixing)
        Returns the binary caplet/floorlet payoff for a given compounded rate.
        Parameters:
        fixing - the compounded rate
        Returns:
        the payoff
      • getCurrency

        public Currency getCurrency()
        Gets the primary currency of the payment period.

        The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.

        Returns:
        the value of the property, not null
      • getAmount

        public double getAmount()
        Gets the fixed amount when the option is in-the-money, positive if receiving (long), negative if paying (short).

        The currency of the notional is specified by currency.

        Returns:
        the value of the property
      • getStartDate

        public LocalDate getStartDate()
        Gets the start date of the payment period.

        This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

        Returns:
        the value of the property, not null
      • getEndDate

        public LocalDate getEndDate()
        Gets the end date of the payment period.

        This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

        Returns:
        the value of the property, not null
      • getUnadjustedStartDate

        public LocalDate getUnadjustedStartDate()
        Gets the unadjusted start date.

        The start date before any business day adjustment is applied.

        When building, this will default to the start date if not specified.

        Returns:
        the value of the property, not null
      • getUnadjustedEndDate

        public LocalDate getUnadjustedEndDate()
        Gets the unadjusted end date.

        The end date before any business day adjustment is applied.

        When building, this will default to the end date if not specified.

        Returns:
        the value of the property, not null
      • getYearFraction

        public double getYearFraction()
        Gets the year fraction that the accrual period represents.

        The value is usually calculated using a DayCount which may be different to that of the index. Typically the value will be close to 1 for one year and close to 0.5 for six months. The fraction may be greater than 1, but not less than 0.

        Returns:
        the value of the property
      • getPaymentDate

        public LocalDate getPaymentDate()
        Gets the date that payment occurs.

        If the schedule adjusts for business days, then this is the adjusted date.

        Returns:
        the value of the property, not null
      • getCaplet

        public OptionalDouble getCaplet()
        Gets the optional caplet strike.

        This defines the strike value of a caplet.

        If the period is not a caplet, this field will be absent.

        Returns:
        the optional value of the property, not null
      • getFloorlet

        public OptionalDouble getFloorlet()
        Gets the optional floorlet strike.

        This defines the strike value of a floorlet.

        If the period is not a floorlet, this field will be absent.

        Returns:
        the optional value of the property, not null
      • getOvernightRate

        public OvernightCompoundedRateComputation getOvernightRate()
        Gets the rate to be observed.

        The value of the period is based on this overnight compounded rate.

        Returns:
        the value of the property, not null
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object