@Override public PortfolioItemSummary summarize() { // 3x6 USD 1mm Rec GBP-LIBOR / Pay 2.5% : 21Jan18-21Apr18 StringBuilder buf = new StringBuilder(64); Optional<LocalDate> tradeDate = info.getTradeDate(); if (tradeDate.isPresent()) { // use a three day fudge to avoid most holiday and end of month issues when calculating months buf.append(MONTHS.between(tradeDate.get(), product.getStartDate().plusDays(3))); buf.append("x"); buf.append(MONTHS.between(tradeDate.get(), product.getEndDate().plusDays(3))); } else { buf.append(product.getIndex().getTenor()); } buf.append(' '); String floatingRate = product.getIndex().getFloatingRateName().normalized().toString(); String fixedRate = SummarizerUtils.percent(product.getFixedRate()); buf.append(SummarizerUtils.amount(product.getCurrency(), product.getNotional())); buf.append(" Rec "); buf.append(product.getBuySell().isBuy() ? floatingRate : fixedRate); buf.append(" / Pay "); buf.append(product.getBuySell().isBuy() ? fixedRate : floatingRate); buf.append(" : "); buf.append(SummarizerUtils.dateRange(product.getStartDate(), product.getEndDate())); return SummarizerUtils.summary(this, ProductType.FRA, buf.toString(), product.getCurrency()); }
public void test_getFloatingRateName() { for (IborIndex index : IborIndex.extendedEnum().lookupAll().values()) { String name = index.getName().substring(0, index.getName().lastIndexOf('-')); assertEquals(index.getFloatingRateName(), FloatingRateName.of(name)); } }
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_euribor3m() { IborIndex test = IborIndex.of("EUR-EURIBOR-3M"); assertEquals(test.getCurrency(), EUR); assertEquals(test.getName(), "EUR-EURIBOR-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), EUTA); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, EUTA)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, EUTA)); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.ofLastBusinessDay(TENOR_3M, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, EUTA))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), THIRTY_U_360); assertEquals(test.getFloatingRateName(), FloatingRateName.of("EUR-EURIBOR")); assertEquals(test.toString(), "EUR-EURIBOR-3M"); }
public void test_usdLibor3m() { IborIndex test = IborIndex.of("USD-LIBOR-3M"); assertEquals(test.getCurrency(), USD); assertEquals(test.getName(), "USD-LIBOR-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), GBLO); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, GBLO)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, GBLO, BusinessDayAdjustment.of(FOLLOWING, GBLO.combinedWith(USNY)))); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.ofLastBusinessDay(TENOR_3M, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO.combinedWith(USNY)))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), ACT_360); assertEquals(test.getFloatingRateName(), FloatingRateName.of("USD-LIBOR")); assertEquals(test.toString(), "USD-LIBOR-3M"); }
public void test_gbpLibor3m() { IborIndex test = IborIndex.of("GBP-LIBOR-3M"); assertEquals(test.getName(), "GBP-LIBOR-3M"); assertEquals(test.getCurrency(), GBP); assertEquals(test.isActive(), true); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), GBLO); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofCalendarDays(0, BusinessDayAdjustment.of(PRECEDING, GBLO))); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofCalendarDays(0, BusinessDayAdjustment.of(FOLLOWING, GBLO))); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.ofLastBusinessDay(TENOR_3M, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO))); assertEquals(test.getDayCount(), ACT_365F); assertEquals(test.getDefaultFixedLegDayCount(), ACT_365F); assertEquals(test.getFloatingRateName(), FloatingRateName.of("GBP-LIBOR")); assertEquals(test.toString(), "GBP-LIBOR-3M"); }