Class ImmutableThreeLegBasisSwapConvention

  • All Implemented Interfaces:
    Named, SingleCurrencySwapConvention, ThreeLegBasisSwapConvention, TradeConvention, Serializable, org.joda.beans.Bean, org.joda.beans.ImmutableBean

    public final class ImmutableThreeLegBasisSwapConvention
    extends Object
    implements ThreeLegBasisSwapConvention, org.joda.beans.ImmutableBean, Serializable
    A market convention for three leg basis swap trades.

    This defines the market convention for a single currency basis swap. The convention is formed by combining three swap leg conventions in the same currency.

    The market price is for the difference (spread) between the values of the two floating legs. This convention has three legs, the "spread leg", the "spread floating leg" and the "flat floating leg". The "spread leg" represented by the fixed leg will be added to the "spread floating leg" which is typically the leg with the shorter underlying tenor. Thus the "spread leg" and "spread floating leg" will have the same pay/receive direction.

    The convention is defined by four key dates.

    • Trade date, the date that the trade is agreed
    • Spot date, the base for date calculations, typically 2 business days after the trade date
    • Start date, the date on which the interest calculation starts, often the same as the spot date
    • End date, the date on which the interest calculation ends, typically a number of years after the start date
    See Also:
    Serialized Form
    • Method Detail

      • of

        public static ImmutableThreeLegBasisSwapConvention of​(String name,
                                                              FixedRateSwapLegConvention spreadLeg,
                                                              IborRateSwapLegConvention spreadFloatingLeg,
                                                              IborRateSwapLegConvention flatFloatingLeg)
        Obtains a convention based on the specified name and leg conventions.

        The two leg conventions must be in the same currency. The spot date offset is set to be the effective date offset of the index of the spread floating leg.

        The spread is represented by FixedRateSwapLegConvention and to be applied to floatingSpreadLeg.

        Parameters:
        name - the unique name of the convention
        spreadLeg - the market convention for the spread leg added to one of the floating leg
        spreadFloatingLeg - the market convention for the spread floating leg
        flatFloatingLeg - the market convention for the flat floating leg
        Returns:
        the convention
      • of

        public static ImmutableThreeLegBasisSwapConvention of​(String name,
                                                              FixedRateSwapLegConvention spreadLeg,
                                                              IborRateSwapLegConvention spreadFloatingLeg,
                                                              IborRateSwapLegConvention flatFloatingLeg,
                                                              DaysAdjustment spotDateOffset)
        Obtains a convention based on the specified name and leg conventions.

        The two leg conventions must be in the same currency.

        The spread is represented by FixedRateSwapLegConvention and to be applied to floatingSpreadLeg.

        Parameters:
        name - the unique name of the convention
        spreadLeg - the market convention for the spread leg added to one of the floating leg
        spreadFloatingLeg - the market convention for the spread floating leg
        flatFloatingLeg - the market convention for the flat floating leg
        spotDateOffset - the offset of the spot value date from the trade date
        Returns:
        the convention
      • toTrade

        public SwapTrade toTrade​(TradeInfo tradeInfo,
                                 LocalDate startDate,
                                 LocalDate endDate,
                                 BuySell buySell,
                                 double notional,
                                 double spread)
        Description copied from interface: ThreeLegBasisSwapConvention
        Creates a trade based on this convention.

        This returns a trade based on the specified dates.

        The notional is unsigned, with buy/sell determining the direction of the trade. If buying the swap, the rate of the floating flat leg is received from the counterparty, with the rate of the floating spread leg and the spread of the fixed leg being paid. If selling the swap, the opposite occurs.

        Specified by:
        toTrade in interface SingleCurrencySwapConvention
        Specified by:
        toTrade in interface ThreeLegBasisSwapConvention
        Parameters:
        tradeInfo - additional information about the trade
        startDate - the start date
        endDate - the end date
        buySell - the buy/sell flag
        notional - the notional amount
        spread - the spread, typically derived from the market
        Returns:
        the trade
      • getSpotDateOffset

        public DaysAdjustment getSpotDateOffset()
        Gets the offset of the spot value date from the trade date.

        The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".

        Specified by:
        getSpotDateOffset in interface SingleCurrencySwapConvention
        Returns:
        the value of the property, not null
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object