/** * Obtains a convention based on the specified name and leg conventions. * <p> * The two leg conventions must be in different currencies. * The spot date offset is set to be the effective date offset of the index of the spread leg. * * @param name the unique name of the convention * @param spreadLeg the market convention for the leg that the spread is added to * @param flatLeg the market convention for the other leg, known as the flat leg * @return the convention */ public static ImmutableXCcyIborIborSwapConvention of( String name, IborRateSwapLegConvention spreadLeg, IborRateSwapLegConvention flatLeg) { return of(name, spreadLeg, flatLeg, spreadLeg.getIndex().getEffectiveDateOffset()); }
@ImmutablePreBuild private static void preBuild(Builder builder) { if (builder.index != null) { if (builder.name == null && builder.dateSequence != null) { builder.name = builder.index.getName() + "-" + builder.dateSequence.getName(); } if (builder.businessDayAdjustment == null) { builder.businessDayAdjustment = BusinessDayAdjustment.of( FOLLOWING, builder.index.getEffectiveDateOffset().getCalendar()); } } }
public void test_of() { ImmutableFixedIborSwapConvention test = ImmutableFixedIborSwapConvention.of(NAME, FIXED, IBOR); assertEquals(test.getName(), NAME); assertEquals(test.getFixedLeg(), FIXED); assertEquals(test.getFloatingLeg(), IBOR); assertEquals(test.getSpotDateOffset(), USD_LIBOR_3M.getEffectiveDateOffset()); }
public void test_of() { ImmutableIborIborSwapConvention test = ImmutableIborIborSwapConvention.of(NAME, IBOR3M, IBOR6M); assertEquals(test.getName(), NAME); assertEquals(test.getSpreadLeg(), IBOR3M); assertEquals(test.getFlatLeg(), IBOR6M); assertEquals(test.getSpotDateOffset(), USD_LIBOR_3M.getEffectiveDateOffset()); }
public void test_of() { ImmutableThreeLegBasisSwapConvention test = ImmutableThreeLegBasisSwapConvention.of(NAME, FIXED, IBOR6M, IBOR12M); assertEquals(test.getName(), NAME); assertEquals(test.getSpreadLeg(), FIXED); assertEquals(test.getSpreadFloatingLeg(), IBOR6M); assertEquals(test.getFlatFloatingLeg(), IBOR12M); assertEquals(test.getSpotDateOffset(), EUR_EURIBOR_6M.getEffectiveDateOffset()); }
public void test_of() { ImmutableXCcyIborIborSwapConvention test = ImmutableXCcyIborIborSwapConvention.of(NAME, EUR3M, USD3M); assertEquals(test.getName(), NAME); assertEquals(test.getSpreadLeg(), EUR3M); assertEquals(test.getFlatLeg(), USD3M); assertEquals(test.getSpotDateOffset(), EUR3M.getIndex().getEffectiveDateOffset()); assertEquals(test.getCurrencyPair(), EUR_USD); }
@Test(dataProvider = "spotLag") public void test_spot_lag(ImmutableOvernightIborSwapConvention convention, int lag) { assertEquals(convention.getSpotDateOffset().getDays(), lag); assertEquals(convention.getSpotDateOffset(), convention.getIborLeg().getIndex().getEffectiveDateOffset()); }
public void test_pln_wibor() { IborIndex test = IborIndex.of("PLN-WIBOR-3M"); assertEquals(test.getCurrency(), PLN); assertEquals(test.getName(), "PLN-WIBOR-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), PLWA); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, PLWA)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, PLWA)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.of(TENOR_3M, PeriodAdditionConventions.NONE, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, PLWA))); assertEquals(test.getDayCount(), ACT_365F); assertEquals(test.getDefaultFixedLegDayCount(), ACT_ACT_ISDA); assertEquals(test.toString(), "PLN-WIBOR-3M"); }
public void test_dkk_cibor() { IborIndex test = IborIndex.of("DKK-CIBOR-3M"); assertEquals(test.getCurrency(), DKK); assertEquals(test.getName(), "DKK-CIBOR-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), DKCO); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, DKCO)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, DKCO)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.of(TENOR_3M, PeriodAdditionConventions.NONE, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, DKCO))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), THIRTY_U_360); assertEquals(test.toString(), "DKK-CIBOR-3M"); }
public void test_bbsw4m() { IborIndex test = IborIndex.of("AUD-BBSW-4M"); assertEquals(test.getCurrency(), AUD); assertEquals(test.getName(), "AUD-BBSW-4M"); assertEquals(test.getTenor(), TENOR_4M); assertEquals(test.getFixingCalendar(), AUSY); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-1, AUSY)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(1, AUSY)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.of( TENOR_4M, PeriodAdditionConventions.NONE, BusinessDayAdjustment.of(MODIFIED_FOLLOWING_BI_MONTHLY, AUSY))); assertEquals(test.getDayCount(), ACT_365F); assertEquals(test.toString(), "AUD-BBSW-4M"); }
public void test_huf_bubor() { IborIndex test = IborIndex.of("HUF-BUBOR-3M"); assertEquals(test.getCurrency(), HUF); assertEquals(test.getName(), "HUF-BUBOR-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), HUBU); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, HUBU)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, HUBU)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.of(TENOR_3M, PeriodAdditionConventions.NONE, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, HUBU))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), ACT_365F); assertEquals(test.toString(), "HUF-BUBOR-3M"); }
public void test_czk_pribor() { IborIndex test = IborIndex.of("CZK-PRIBOR-3M"); assertEquals(test.getCurrency(), CZK); assertEquals(test.getName(), "CZK-PRIBOR-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), CZPR); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, CZPR)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, CZPR)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.of(TENOR_3M, PeriodAdditionConventions.NONE, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, CZPR))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), ACT_360); assertEquals(test.toString(), "CZK-PRIBOR-3M"); }
public void test_sek_stibor() { IborIndex test = IborIndex.of("SEK-STIBOR-3M"); assertEquals(test.getCurrency(), SEK); assertEquals(test.getName(), "SEK-STIBOR-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), SEST); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, SEST)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, SEST)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.of(TENOR_3M, PeriodAdditionConventions.NONE, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, SEST))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), THIRTY_U_360); assertEquals(test.toString(), "SEK-STIBOR-3M"); }
public void test_mxn_tiie() { IborIndex test = IborIndex.of("MXN-TIIE-4W"); assertEquals(test.getCurrency(), MXN); assertEquals(test.getName(), "MXN-TIIE-4W"); assertEquals(test.getTenor(), TENOR_4W); assertEquals(test.getFixingCalendar(), MXMC); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-1, MXMC)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(1, MXMC)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.of(TENOR_4W, PeriodAdditionConventions.NONE, BusinessDayAdjustment.of(FOLLOWING, MXMC))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), ACT_360); assertEquals(test.toString(), "MXN-TIIE-4W"); }
public void test_bbsw6m() { IborIndex test = IborIndex.of("AUD-BBSW-6M"); assertEquals(test.getCurrency(), AUD); assertEquals(test.getName(), "AUD-BBSW-6M"); assertEquals(test.getTenor(), TENOR_6M); assertEquals(test.getFixingCalendar(), AUSY); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-1, AUSY)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(1, AUSY)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.of( TENOR_6M, PeriodAdditionConventions.NONE, BusinessDayAdjustment.of(MODIFIED_FOLLOWING_BI_MONTHLY, AUSY))); assertEquals(test.getDayCount(), ACT_365F); assertEquals(test.toString(), "AUD-BBSW-6M"); }
public void test_tibor_japan3m() { IborIndex test = IborIndex.of("JPY-TIBOR-JAPAN-3M"); assertEquals(test.getCurrency(), JPY); assertEquals(test.getName(), "JPY-TIBOR-JAPAN-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), JPTO); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, JPTO)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, JPTO)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.ofLastBusinessDay(TENOR_3M, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, JPTO))); assertEquals(test.getDayCount(), ACT_365F); assertEquals(test.getDefaultFixedLegDayCount(), ACT_365F); assertEquals(test.getFloatingRateName(), FloatingRateName.of("JPY-TIBOR-JAPAN")); assertEquals(test.toString(), "JPY-TIBOR-JAPAN-3M"); }
public void test_tibor_euroyen3m() { IborIndex test = IborIndex.of("JPY-TIBOR-EUROYEN-3M"); assertEquals(test.getCurrency(), JPY); assertEquals(test.getName(), "JPY-TIBOR-EUROYEN-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), JPTO); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, JPTO)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, JPTO)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.ofLastBusinessDay(TENOR_3M, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, JPTO))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), ACT_365F); assertEquals(test.getFloatingRateName(), FloatingRateName.of("JPY-TIBOR-EUROYEN")); assertEquals(test.toString(), "JPY-TIBOR-EUROYEN-3M"); }
public void test_builder_minSpecified() { ImmutableFraConvention test = ImmutableFraConvention.builder() .index(GBP_LIBOR_3M) .build(); assertEquals(test.getName(), GBP_LIBOR_3M.getName()); assertEquals(test.getIndex(), GBP_LIBOR_3M); assertEquals(test.getCurrency(), GBP); assertEquals(test.getSpotDateOffset(), GBP_LIBOR_3M.getEffectiveDateOffset()); assertEquals(test.getBusinessDayAdjustment(), BDA_MOD_FOLLOW); assertEquals(test.getPaymentDateOffset(), DaysAdjustment.NONE); assertEquals(test.getFixingDateOffset(), GBP_LIBOR_3M.getFixingDateOffset()); assertEquals(test.getDayCount(), GBP_LIBOR_3M.getDayCount()); assertEquals(test.getDiscounting(), ISDA); }
public void test_of_indexOnly() { ImmutableIborFixingDepositConvention test = ImmutableIborFixingDepositConvention.of(GBP_LIBOR_6M); assertEquals(test.getBusinessDayAdjustment(), BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBP_LIBOR_6M.getFixingCalendar())); assertEquals(test.getCurrency(), GBP_LIBOR_6M.getCurrency()); assertEquals(test.getDayCount(), GBP_LIBOR_6M.getDayCount()); assertEquals(test.getFixingDateOffset(), GBP_LIBOR_6M.getFixingDateOffset()); assertEquals(test.getIndex(), GBP_LIBOR_6M); assertEquals(test.getSpotDateOffset(), GBP_LIBOR_6M.getEffectiveDateOffset()); }
public void test_builder_indexOnly() { ImmutableIborFixingDepositConvention test = ImmutableIborFixingDepositConvention.builder() .index(GBP_LIBOR_6M) .build(); assertEquals(test.getBusinessDayAdjustment(), BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBP_LIBOR_6M.getFixingCalendar())); assertEquals(test.getCurrency(), GBP_LIBOR_6M.getCurrency()); assertEquals(test.getDayCount(), GBP_LIBOR_6M.getDayCount()); assertEquals(test.getFixingDateOffset(), GBP_LIBOR_6M.getFixingDateOffset()); assertEquals(test.getIndex(), GBP_LIBOR_6M); assertEquals(test.getSpotDateOffset(), GBP_LIBOR_6M.getEffectiveDateOffset()); }