builder.businessDayAdjustment(dateAdj); if (startDateAdj.isPresent() && !startDateAdj.get().equals(dateAdj)) { builder.startDateBusinessDayAdjustment(startDateAdj.get());
.endDate(end) .frequency(freq) .startDateBusinessDayAdjustment(startBusDayAdjustment) .businessDayAdjustment(businessDayAdjustment) .stubConvention(stubConv)
public void test_of() { BusinessDayAdjustment bussAdj = BusinessDayAdjustment.of(FOLLOWING, SAT_SUN); PeriodicSchedule expected = PeriodicSchedule.builder() .startDate(START_DATE) .endDate(END_DATE) .businessDayAdjustment(bussAdj) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .endDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .frequency(P3M) .rollConvention(RollConventions.NONE) .stubConvention(SMART_INITIAL) .build(); assertEquals(PRODUCT_STD.getPaymentSchedule(), expected); assertEquals(PRODUCT_STD.getBuySell(), BUY); assertEquals(PRODUCT_STD.getCurrency(), USD); assertEquals(PRODUCT_STD.getDayCount(), ACT_360); assertEquals(PRODUCT_STD.getFixedRate(), COUPON); assertEquals(PRODUCT_STD.getLegalEntityId(), LEGAL_ENTITY); assertEquals(PRODUCT_STD.getNotional(), NOTIONAL); assertEquals(PRODUCT_STD.getPaymentOnDefault(), ACCRUED_PREMIUM); assertEquals(PRODUCT_STD.getProtectionStart(), BEGINNING); assertEquals(PRODUCT_STD.getSettlementDateOffset(), SETTLE_DAY_ADJ); assertEquals(PRODUCT_STD.getStepinDateOffset(), STEPIN_DAY_ADJ); Cds test = Cds.of(BUY, LEGAL_ENTITY, USD, NOTIONAL, START_DATE, END_DATE, P3M, SAT_SUN, COUPON); assertEquals(test, PRODUCT_STD); }
.endDate(end) .frequency(freq) .startDateBusinessDayAdjustment(startBusDayAdjustment) .businessDayAdjustment(businessDayAdjustment) .stubConvention(stubConv)
.startDate(date(2018, 9, 28)) .endDate(date(2019, 9, 29)) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .businessDayAdjustment(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, AUSY)) .frequency(Frequency.P3M)
expected1 = expected1.toBuilder() .paymentSchedule(sch1.toBuilder() .startDateBusinessDayAdjustment(sch1.getBusinessDayAdjustment()) .rollConvention(RollConventions.DAY_20) .build()) expected2 = expected2.toBuilder() .paymentSchedule(sch2.toBuilder() .startDateBusinessDayAdjustment(sch2.getBusinessDayAdjustment()) .rollConvention(RollConventions.DAY_20) .build())
.startDate(date(2001, 1, 29)) .endDate(date(2001, 4, 29)) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .businessDayAdjustment(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, EUTA)) .frequency(Frequency.TERM)
.endDate(end) .frequency(freq) .startDateBusinessDayAdjustment(startBusDayAdjustment) .businessDayAdjustment(businessDayAdjustment) .stubConvention(stubConv)
@Test(dataProvider = "generation") public void test_monthly_adjusted_withOverride( LocalDate start, LocalDate end, Frequency freq, StubConvention stubConv, RollConvention rollConv, BusinessDayAdjustment businessDayAdjustment, LocalDate firstReg, LocalDate lastReg, BusinessDayAdjustment startBusDayAdjustment, List<LocalDate> unadjusted, List<LocalDate> adjusted, RollConvention expRoll) { PeriodicSchedule defn = PeriodicSchedule.builder() .startDate(start) .endDate(end) .frequency(freq) .startDateBusinessDayAdjustment(startBusDayAdjustment) .businessDayAdjustment(businessDayAdjustment) .stubConvention(stubConv) .rollConvention(rollConv) .firstRegularStartDate(firstReg) .lastRegularEndDate(lastReg) .overrideStartDate(AdjustableDate.of(date(2011, 1, 9), BusinessDayAdjustment.of(FOLLOWING, SAT_SUN))) .build(); ImmutableList<LocalDate> test = defn.createAdjustedDates(REF_DATA); assertEquals(test.get(0), date(2011, 1, 10)); assertEquals(test.subList(1, test.size()), adjusted.subList(1, test.size())); }
public void cds01() { String location = "classpath:com/opengamma/strata/loader/fpml/cd-ex01-long-asia-corp-fixreg.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party2")).parseTrades(resource); assertEquals(trades.size(), 1); CdsTrade cdsTrade = (CdsTrade) trades.get(0); assertEquals(cdsTrade.getInfo().getTradeDate(), Optional.of(date(2002, 12, 4))); Cds expected = Cds.builder() .buySell(BUY) .legalEntityId(StandardId.of("http://www.fpml.org/spec/2003/entity-id-RED-1-0", "004CC9")) .currency(JPY) .notional(500000000d) .paymentSchedule(PeriodicSchedule.builder() .startDate(date(2002, 12, 5)) .endDate(date(2007, 12, 5)) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .endDateBusinessDayAdjustment(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO_USNY_JPTO)) .businessDayAdjustment(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO_USNY_JPTO)) .firstRegularStartDate(date(2003, 3, 5)) .frequency(Frequency.P3M) .rollConvention(RollConventions.DAY_5) .build()) .fixedRate(0.007) .dayCount(ACT_360) .build(); assertEqualsBean(cdsTrade.getProduct(), expected); assertEquals(cdsTrade.getUpfrontFee().isPresent(), false); }
public void test_of() { BusinessDayAdjustment bussAdj = BusinessDayAdjustment.of(FOLLOWING, SAT_SUN); PeriodicSchedule expected = PeriodicSchedule.builder() .startDate(START_DATE) .endDate(END_DATE) .businessDayAdjustment(bussAdj) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .endDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .frequency(P3M) .rollConvention(RollConventions.NONE) .stubConvention(SMART_INITIAL) .build(); assertEquals(PRODUCT.getPaymentSchedule(), expected); assertEquals(PRODUCT.getBuySell(), BUY); assertEquals(PRODUCT.getCurrency(), USD); assertEquals(PRODUCT.getDayCount(), ACT_360); assertEquals(PRODUCT.getFixedRate(), COUPON); assertEquals(PRODUCT.getCdsIndexId(), INDEX_ID); assertEquals(PRODUCT.getLegalEntityIds(), LEGAL_ENTITIES); assertEquals(PRODUCT.getNotional(), NOTIONAL); assertEquals(PRODUCT.getPaymentOnDefault(), ACCRUED_PREMIUM); assertEquals(PRODUCT.getProtectionStart(), BEGINNING); assertEquals(PRODUCT.getSettlementDateOffset(), SETTLE_DAY_ADJ); assertEquals(PRODUCT.getStepinDateOffset(), STEPIN_DAY_ADJ); CdsIndex test = CdsIndex.of(BUY, INDEX_ID, LEGAL_ENTITIES, USD, NOTIONAL, START_DATE, END_DATE, P3M, SAT_SUN, COUPON); assertEquals(test, PRODUCT); }
public void cds02() { String location = "classpath:com/opengamma/strata/loader/fpml/cd-ex02-2003-short-asia-corp-fixreg.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party2")).parseTrades(resource); assertEquals(trades.size(), 1); CdsTrade cdsTrade = (CdsTrade) trades.get(0); assertEquals(cdsTrade.getInfo().getTradeDate(), Optional.of(date(2002, 12, 4))); Cds expected = Cds.builder() .buySell(SELL) .legalEntityId(StandardId.of("http://www.fpml.org/coding-scheme/external/entity-id-RED-1-0", "008FAQ")) .currency(JPY) .notional(500000000d) .paymentSchedule(PeriodicSchedule.builder() .startDate(date(2002, 12, 5)) .endDate(date(2007, 12, 5)) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .endDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .businessDayAdjustment(BusinessDayAdjustment.NONE) .firstRegularStartDate(date(2003, 3, 5)) .frequency(Frequency.P3M) .rollConvention(RollConventions.DAY_5) .build()) .fixedRate(0.007) .dayCount(ACT_360) .build(); assertEqualsBean(cdsTrade.getProduct(), expected); assertEquals(cdsTrade.getUpfrontFee().isPresent(), false); }
public void coverage() { coverImmutableBean(PRODUCT_STD); Cds other = Cds.builder() .buySell(SELL) .legalEntityId(StandardId.of("OG", "EFG")) .currency(JPY) .notional(1d) .fixedRate(0.01) .dayCount(ACT_365F) .paymentSchedule( PeriodicSchedule.builder() .businessDayAdjustment(BusinessDayAdjustment.of(BusinessDayConventions.FOLLOWING, JPTO)) .startDate(LocalDate.of(2014, 1, 4)) .endDate(LocalDate.of(2020, 11, 20)) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .endDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .frequency(P6M) .rollConvention(RollConventions.NONE) .stubConvention(StubConvention.SHORT_FINAL) .build()) .paymentOnDefault(PaymentOnDefault.NONE) .protectionStart(ProtectionStartOfDay.NONE) .stepinDateOffset(DaysAdjustment.NONE) .settlementDateOffset(DaysAdjustment.NONE) .build(); coverBeanEquals(PRODUCT_STD, other); }
@Test(dataProvider = "generation") public void test_monthly_adjusted( LocalDate start, LocalDate end, Frequency freq, StubConvention stubConv, RollConvention rollConv, BusinessDayAdjustment businessDayAdjustment, LocalDate firstReg, LocalDate lastReg, BusinessDayAdjustment startBusDayAdjustment, List<LocalDate> unadjusted, List<LocalDate> adjusted, RollConvention expRoll) { PeriodicSchedule defn = PeriodicSchedule.builder() .startDate(start) .endDate(end) .frequency(freq) .startDateBusinessDayAdjustment(startBusDayAdjustment) .businessDayAdjustment(businessDayAdjustment) .stubConvention(stubConv) .rollConvention(rollConv) .firstRegularStartDate(firstReg) .lastRegularEndDate(lastReg) .build(); ImmutableList<LocalDate> test = defn.createAdjustedDates(REF_DATA); assertEquals(test, adjusted); }
public void cdsIndex01() { String location = "classpath:com/opengamma/strata/loader/fpml/cdindex-ex01-cdx.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party2")).parseTrades(resource); assertEquals(trades.size(), 1); CdsIndexTrade cdsTrade = (CdsIndexTrade) trades.get(0); assertEquals(cdsTrade.getInfo().getTradeDate(), Optional.of(date(2005, 1, 24))); CdsIndex expected = CdsIndex.builder() .buySell(BUY) .cdsIndexId(StandardId.of("CDX-Name", "Dow Jones CDX NA IG.2")) .currency(USD) .notional(25000000d) .paymentSchedule(PeriodicSchedule.builder() .startDate(date(2004, 3, 23)) .endDate(date(2009, 3, 20)) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .endDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .businessDayAdjustment(BusinessDayAdjustment.NONE) .frequency(Frequency.P3M) .build()) .fixedRate(0.0060) .dayCount(ACT_360) .build(); assertEqualsBean(cdsTrade.getProduct(), expected); assertEquals(cdsTrade.getUpfrontFee().get(), AdjustablePayment.of(USD, 16000, AdjustableDate.of(date(2004, 3, 23)))); }
public void coverage_builder() { PeriodicSchedule test = PeriodicSchedule.builder() .startDate(JUL_17) .endDate(SEP_17) .frequency(P2M) .businessDayAdjustment(BDA_NONE) .startDateBusinessDayAdjustment(BDA_NONE) .endDateBusinessDayAdjustment(BDA_NONE) .stubConvention(STUB_NONE) .rollConvention(EOM) .firstRegularStartDate(JUL_17) .lastRegularEndDate(SEP_17) .overrideStartDate(AdjustableDate.of(JUL_11)) .build(); assertEquals(test.getStartDate(), JUL_17); assertEquals(test.getEndDate(), SEP_17); assertEquals(test.calculatedStartDate(), AdjustableDate.of(JUL_11, BDA_NONE)); assertEquals(test.calculatedEndDate(), AdjustableDate.of(SEP_17, BDA_NONE)); }
public void test_createTrade_withFee() { DatesCdsTemplate base = DatesCdsTemplate.of(START, END, CONV1); LocalDate tradeDate = LocalDate.of(2015, 5, 5); AdjustablePayment payment = AdjustablePayment.of(EUR, NOTIONAL_2M, CONV1.getSettlementDateOffset().adjust(tradeDate, REF_DATA)); CdsTrade test = base.createTrade(LEGAL_ENTITY, tradeDate, BUY, NOTIONAL_2M, 0.05d, payment, REF_DATA); Cds expected = Cds.of(BUY, LEGAL_ENTITY, CONV1.getCurrency(), NOTIONAL_2M, START, END, Frequency.P3M, CONV1.getSettlementDateOffset().getCalendar(), 0.05d); PeriodicSchedule sch1 = expected.getPaymentSchedule(); expected = expected.toBuilder() .paymentSchedule(sch1.toBuilder() .startDateBusinessDayAdjustment(sch1.getBusinessDayAdjustment()) .rollConvention(RollConventions.DAY_20) .build()) .build(); assertEquals(test.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test.getUpfrontFee(), Optional.of(payment)); assertEquals(test.getProduct(), expected); }
public void test_startEndAdjust() { BusinessDayAdjustment bda1 = BusinessDayAdjustment.of(PRECEDING, SAT_SUN); BusinessDayAdjustment bda2 = BusinessDayAdjustment.of(MODIFIED_PRECEDING, SAT_SUN); PeriodicSchedule test = PeriodicSchedule.builder() .startDate(date(2014, 10, 4)) .endDate(date(2015, 4, 4)) .frequency(P3M) .businessDayAdjustment(BDA) .startDateBusinessDayAdjustment(bda1) .endDateBusinessDayAdjustment(bda2) .stubConvention(STUB_NONE) .build(); assertEquals(test.calculatedStartDate(), AdjustableDate.of(date(2014, 10, 4), bda1)); assertEquals(test.calculatedEndDate(), AdjustableDate.of(date(2015, 4, 4), bda2)); assertEquals(test.createUnadjustedDates(), list(date(2014, 10, 4), date(2015, 1, 4), date(2015, 4, 4))); assertEquals(test.createAdjustedDates(REF_DATA), list(date(2014, 10, 3), date(2015, 1, 5), date(2015, 4, 3))); }
private PeriodicSchedule of( LocalDate start, LocalDate end, Frequency freq, BusinessDayAdjustment bda, StubConvention stubConv, RollConvention rollConv, LocalDate firstReg, LocalDate lastReg, BusinessDayAdjustment startBda, BusinessDayAdjustment endBda, AdjustableDate overrideStartDate) { return PeriodicSchedule.builder() .startDate(start) .endDate(end) .frequency(freq) .businessDayAdjustment(bda) .startDateBusinessDayAdjustment(startBda) .endDateBusinessDayAdjustment(endBda) .stubConvention(stubConv) .rollConvention(rollConv) .firstRegularStartDate(firstReg) .lastRegularEndDate(lastReg) .overrideStartDate(overrideStartDate) .build(); }
public void test_createTrade() { DatesCdsTemplate base = DatesCdsTemplate.of(START, END, CONV1); LocalDate tradeDate = LocalDate.of(2015, 5, 5); CdsTrade test = base.createTrade(LEGAL_ENTITY, tradeDate, BUY, NOTIONAL_2M, 0.05d, REF_DATA); Cds expected = Cds.of(BUY, LEGAL_ENTITY, CONV1.getCurrency(), NOTIONAL_2M, START, END, Frequency.P3M, CONV1.getSettlementDateOffset().getCalendar(), 0.05d); PeriodicSchedule sch1 = expected.getPaymentSchedule(); expected = expected.toBuilder() .paymentSchedule(sch1.toBuilder() .startDateBusinessDayAdjustment(sch1.getBusinessDayAdjustment()) .rollConvention(RollConventions.DAY_20) .build()) .build(); assertEquals(test.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test.getProduct(), expected); assertEquals(test.getUpfrontFee(), Optional.empty()); }