/** * Gets the applicable roll convention defining how to roll dates. * <p> * The schedule periods are determined at the high level by repeatedly adding * the frequency to the start date, or subtracting it from the end date. * The roll convention provides the detailed rule to adjust the day-of-month or day-of-week. * <p> * The applicable roll convention is a non-null value. * If the roll convention property is not present, this is determined from the * stub convention, dates and frequency, defaulting to 'None' if necessary. * * @return the non-null roll convention */ public RollConvention calculatedRollConvention() { return calculatedRollConvention(calculatedFirstRegularStartDate(), calculatedLastRegularEndDate()); }
LocalDate regularStart = calculatedFirstRegularStartDate(); LocalDate regularEnd = calculatedLastRegularEndDate(); RollConvention rollConv = calculatedRollConvention(regularStart, regularEnd); List<LocalDate> unadj = generateUnadjustedDates(startDate, regularStart, regularEnd, endDate, rollConv);
LocalDate regularStart = calculatedFirstRegularStartDate(unadjStart, refData); LocalDate regularEnd = calculatedLastRegularEndDate(unadjEnd, refData); RollConvention rollConv = calculatedRollConvention(regularStart, regularEnd); List<LocalDate> unadj = generateUnadjustedDates(unadjStart, regularStart, regularEnd, unadjEnd, rollConv);
public void test_of_LocalDateRoll() { PeriodicSchedule test = PeriodicSchedule.of(JUN_04, SEP_17, P1M, BDA, SHORT_INITIAL, DAY_17); assertEquals(test.getStartDate(), JUN_04); assertEquals(test.getEndDate(), SEP_17); assertEquals(test.getFrequency(), P1M); assertEquals(test.getBusinessDayAdjustment(), BDA); assertEquals(test.getStartDateBusinessDayAdjustment(), Optional.empty()); assertEquals(test.getEndDateBusinessDayAdjustment(), Optional.empty()); assertEquals(test.getStubConvention(), Optional.of(SHORT_INITIAL)); assertEquals(test.getRollConvention(), Optional.of(DAY_17)); assertEquals(test.getFirstRegularStartDate(), Optional.empty()); assertEquals(test.getLastRegularEndDate(), Optional.empty()); assertEquals(test.getOverrideStartDate(), Optional.empty()); assertEquals(test.calculatedRollConvention(), DAY_17); assertEquals(test.calculatedFirstRegularStartDate(), JUN_04); assertEquals(test.calculatedLastRegularEndDate(), SEP_17); assertEquals(test.calculatedStartDate(), AdjustableDate.of(JUN_04, BDA)); assertEquals(test.calculatedEndDate(), AdjustableDate.of(SEP_17, BDA)); }
public void test_of_LocalDateEomFalse() { PeriodicSchedule test = PeriodicSchedule.of(JUN_04, SEP_17, P1M, BDA, SHORT_INITIAL, false); assertEquals(test.getStartDate(), JUN_04); assertEquals(test.getEndDate(), SEP_17); assertEquals(test.getFrequency(), P1M); assertEquals(test.getBusinessDayAdjustment(), BDA); assertEquals(test.getStartDateBusinessDayAdjustment(), Optional.empty()); assertEquals(test.getEndDateBusinessDayAdjustment(), Optional.empty()); assertEquals(test.getStubConvention(), Optional.of(SHORT_INITIAL)); assertEquals(test.getRollConvention(), Optional.empty()); assertEquals(test.getFirstRegularStartDate(), Optional.empty()); assertEquals(test.getLastRegularEndDate(), Optional.empty()); assertEquals(test.getOverrideStartDate(), Optional.empty()); assertEquals(test.calculatedRollConvention(), DAY_17); assertEquals(test.calculatedFirstRegularStartDate(), JUN_04); assertEquals(test.calculatedLastRegularEndDate(), SEP_17); assertEquals(test.calculatedStartDate(), AdjustableDate.of(JUN_04, BDA)); assertEquals(test.calculatedEndDate(), AdjustableDate.of(SEP_17, BDA)); }
LocalDate regularStart = calculatedFirstRegularStartDate(unadjStart, refData); LocalDate regularEnd = calculatedLastRegularEndDate(unadjEnd, refData); RollConvention rollConv = calculatedRollConvention(regularStart, regularEnd); List<LocalDate> unadj = generateUnadjustedDates(unadjStart, regularStart, regularEnd, unadjEnd, rollConv); List<LocalDate> adj = applyBusinessDayAdjustment(unadj, refData);
public void test_of_LocalDateEomTrue() { PeriodicSchedule test = PeriodicSchedule.of(JUN_04, SEP_17, P1M, BDA, SHORT_FINAL, true); assertEquals(test.getStartDate(), JUN_04); assertEquals(test.getEndDate(), SEP_17); assertEquals(test.getFrequency(), P1M); assertEquals(test.getBusinessDayAdjustment(), BDA); assertEquals(test.getStartDateBusinessDayAdjustment(), Optional.empty()); assertEquals(test.getEndDateBusinessDayAdjustment(), Optional.empty()); assertEquals(test.getStubConvention(), Optional.of(SHORT_FINAL)); assertEquals(test.getRollConvention(), Optional.of(EOM)); assertEquals(test.getFirstRegularStartDate(), Optional.empty()); assertEquals(test.getLastRegularEndDate(), Optional.empty()); assertEquals(test.getOverrideStartDate(), Optional.empty()); assertEquals(test.calculatedRollConvention(), DAY_4); assertEquals(test.calculatedFirstRegularStartDate(), JUN_04); assertEquals(test.calculatedLastRegularEndDate(), SEP_17); assertEquals(test.calculatedStartDate(), AdjustableDate.of(JUN_04, BDA)); assertEquals(test.calculatedEndDate(), AdjustableDate.of(SEP_17, BDA)); }
LocalDate regularStart = calculatedFirstRegularStartDate(unadjStart, refData); LocalDate regularEnd = calculatedLastRegularEndDate(unadjEnd, refData); RollConvention rollConv = calculatedRollConvention(regularStart, regularEnd); List<LocalDate> unadj = generateUnadjustedDates(unadjStart, regularStart, regularEnd, unadjEnd, rollConv); List<LocalDate> adj = applyBusinessDayAdjustment(unadj, refData);
.periodicPayments(ImmutableList.copyOf(bondPeriods)) .frequency(accrualSchedule.getFrequency()) .rollConvention(accrualSchedule.calculatedRollConvention()) .dayCount(dayCount) .yieldConvention(yieldConvention)
.periodicPayments(ImmutableList.copyOf(periodicPayments)) .frequency(accrualSchedule.getFrequency()) .rollConvention(accrualSchedule.calculatedRollConvention()) .fixedRate(fixedRate) .dayCount(dayCount)
.periodicPayments(periodic) .frequency(SCHEDULE.getFrequency()) .rollConvention(SCHEDULE.calculatedRollConvention()) .settlementDateOffset(SETTLE_OFFSET) .yieldConvention(US_IL_REAL)
static ResolvedCapitalIndexedBond sut() { return ResolvedCapitalIndexedBond.builder() .securityId(CapitalIndexedBondTest.sut().getSecurityId()) .dayCount(ACT_ACT_ISDA) .legalEntityId(LEGAL_ENTITY) .nominalPayment(NOMINAL) .periodicPayments(PERIODIC) .frequency(CapitalIndexedBondTest.sut().getAccrualSchedule().getFrequency()) .rollConvention(CapitalIndexedBondTest.sut().getAccrualSchedule().calculatedRollConvention()) .settlementDateOffset(SETTLE_OFFSET) .yieldConvention(US_IL_REAL) .rateCalculation(RATE_CALC) .build(); }
static ResolvedCapitalIndexedBond sut2() { return ResolvedCapitalIndexedBond.builder() .securityId(CapitalIndexedBondTest.sut2().getSecurityId()) .dayCount(NL_365) .legalEntityId(LegalEntityId.of("OG-Ticker", "US-Govt1")) .nominalPayment(PERIODIC[1].withUnitCoupon(PERIODIC[0].getStartDate(), PERIODIC[0].getUnadjustedStartDate())) .periodicPayments(PERIODIC[0], PERIODIC[1]) .frequency(CapitalIndexedBondTest.sut2().getAccrualSchedule().getFrequency()) .rollConvention(CapitalIndexedBondTest.sut2().getAccrualSchedule().calculatedRollConvention()) .settlementDateOffset(DaysAdjustment.ofBusinessDays(3, GBLO)) .yieldConvention(GB_IL_FLOAT) .rateCalculation(CapitalIndexedBondTest.sut2().getRateCalculation()) .build(); }