double afNonCutoff = 0.0; for (int i = 1; i < 5; i++) { LocalDate endDate = USD_FED_FUND.calculateMaturityFromEffective(FIXING_DATES[i], REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(FIXING_DATES[i], endDate); afNonCutoff += af; when(mockRates.periodRate(USD_OBS[1], FIXING_FINAL_DATE)).thenReturn(rateCmp); LocalDate fixingCutOff = FIXING_DATES[5]; LocalDate endDate = USD_FED_FUND.calculateMaturityFromEffective(fixingCutOff, REF_DATA); double afCutOff = USD_FED_FUND.getDayCount().yearFraction(fixingCutOff, endDate); double rateExpected = ((1.0 + rateCmp * afNonCutoff) * (1.0d + FORWARD_RATES[4] * afCutOff) - 1.0d)
double afApprox = 0.0; for (int i = 1; i < 5; i++) { LocalDate endDate = USD_FED_FUND.calculateMaturityFromEffective(FIXING_DATES[i], REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(FIXING_DATES[i], endDate); afApprox += af; when(mockRates.periodRate(obs, FIXING_FINAL_DATE)).thenReturn(rateCmp); LocalDate fixingCutOff = FIXING_DATES[5]; LocalDate endDate = USD_FED_FUND.calculateMaturityFromEffective(fixingCutOff, REF_DATA); double afCutOff = USD_FED_FUND.getDayCount().yearFraction(fixingCutOff, endDate); double rateExpected = (Math.log(1.0 + rateCmp * afApprox) + FORWARD_RATES[4] * afCutOff) / (afApprox + afCutOff);
LocalDate endDateKnown = BRL_CDI.calculateMaturityFromEffective(fixingknown, REF_DATA); double afKnown = BRL_CDI.getDayCount().yearFraction(fixingknown, endDateKnown); double investmentFactor = 1.0; double af = 0.0; for (int i = 2; i < 6; i++) { LocalDate endDate = BRL_CDI.calculateMaturityFromEffective(FIXING_DATES[i], REF_DATA); double localAf = BRL_CDI.getDayCount().yearFraction(FIXING_DATES[i], endDate); af += localAf;
for (int i = 0; i < 5; i++) { LocalDate fixingknown = FIXING_DATES[i + 1]; LocalDate endDateKnown = BRL_CDI.calculateMaturityFromEffective(fixingknown, REF_DATA); double af = BRL_CDI.getDayCount().yearFraction(fixingknown, endDateKnown); afKnown += af;
LocalDate endDateKnown = USD_FED_FUND.calculateMaturityFromEffective(fixingknown, REF_DATA); double afKnown = USD_FED_FUND.getDayCount().yearFraction(fixingknown, endDateKnown); double investmentFactor = 1.0; double afApprox = 0.0; for (int i = 2; i < 5; i++) { LocalDate endDate = USD_FED_FUND.calculateMaturityFromEffective(FIXING_DATES[i], REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(FIXING_DATES[i], endDate); afApprox += af; .thenReturn(rateCmp); LocalDate fixingCutOff = FIXING_DATES[5]; LocalDate endDateCutOff = USD_FED_FUND.calculateMaturityFromEffective(fixingCutOff, REF_DATA); double afCutOff = USD_FED_FUND.getDayCount().yearFraction(fixingCutOff, endDateCutOff); double rateExpected = (FIXING_RATES[1] * afKnown + Math.log(1.0 + rateCmp * afApprox) + FORWARD_RATES[4] * afCutOff)
for (int i = 0; i < lastFixing - 1; i++) { LocalDate fixingknown = FIXING_DATES[i + 1]; LocalDate endDateKnown = GBP_SONIA.calculateMaturityFromEffective(fixingknown, REF_DATA); double af = GBP_SONIA.getDayCount().yearFraction(fixingknown, endDateKnown); afKnown += af; double afApprox = 0.0; for (int i = lastFixing; i < 6; i++) { LocalDate endDate = GBP_SONIA.calculateMaturityFromEffective(FIXING_DATES[i], REF_DATA); double af = GBP_SONIA.getDayCount().yearFraction(FIXING_DATES[i], endDate); afApprox += af;
for (int i = 0; i < lastFixing - 1; i++) { LocalDate fixingknown = FIXING_DATES[i + 1]; LocalDate endDateKnown = GBP_SONIA.calculateMaturityFromEffective(fixingknown, REF_DATA); double af = GBP_SONIA.getDayCount().yearFraction(fixingknown, endDateKnown); afKnown += af; double investmentFactorNoCutoff = 1.0d; for (int i = lastFixing; i < 6; i++) { LocalDate endDate = GBP_SONIA.calculateMaturityFromEffective(FIXING_DATES[i], REF_DATA); double af = GBP_SONIA.getDayCount().yearFraction(FIXING_DATES[i], endDate); afNoCutoff += af;
LocalDate endDateKnown = USD_FED_FUND.calculateMaturityFromEffective(fixingknown, REF_DATA); double afKnown = USD_FED_FUND.getDayCount().yearFraction(fixingknown, endDateKnown); double investmentFactor = 1.0; double afNoCutoff = 0.0; for (int i = 2; i < 6; i++) { LocalDate endDate = USD_FED_FUND.calculateMaturityFromEffective(FIXING_DATES[i], REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(FIXING_DATES[i], endDate); afNoCutoff += af;
for (int i = 0; i < 4; i++) { LocalDate fixingknown = FIXING_DATES[i + 1]; LocalDate endDateKnown = USD_FED_FUND.calculateMaturityFromEffective(fixingknown, REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(fixingknown, endDateKnown); afKnown += af; LocalDate endDateKnown = USD_FED_FUND.calculateMaturityFromEffective(fixingknown, REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(fixingknown, endDateKnown); afKnown += af;
for (int i = 0; i < 5; i++) { LocalDate fixingknown = FIXING_DATES[i + 1]; LocalDate endDateKnown = USD_FED_FUND.calculateMaturityFromEffective(fixingknown, REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(fixingknown, endDateKnown); afKnown += af;
for (int i = 0; i < 4; i++) { LocalDate fixingknown = FIXING_DATES[i + 1]; LocalDate endDateKnown = USD_FED_FUND.calculateMaturityFromEffective(fixingknown, REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(fixingknown, endDateKnown); afKnown += af; LocalDate endDateCutOff = USD_FED_FUND.calculateMaturityFromEffective(fixingCutOff, REF_DATA); double afCutOff = USD_FED_FUND.getDayCount().yearFraction(fixingCutOff, endDateCutOff); double rateExpected = (accruedKnown + FIXING_RATES[4] * afCutOff)
for (int i = 0; i < 5; i++) { LocalDate fixingknown = FIXING_DATES[i + 1]; LocalDate endDateKnown = USD_FED_FUND.calculateMaturityFromEffective(fixingknown, REF_DATA); double af = USD_FED_FUND.getDayCount().yearFraction(fixingknown, endDateKnown); afKnown += af;
double af = 0.0; for (int i = 2; i < 6; i++) { LocalDate endDate = BRL_CDI.calculateMaturityFromEffective(FIXING_DATES[i], REF_DATA); double localAf = BRL_CDI.getDayCount().yearFraction(FIXING_DATES[i], endDate); af += localAf;
public void test_gbpSonia_dates() { OvernightIndex test = OvernightIndex.of("GBP-SONIA"); assertEquals(test.calculatePublicationFromFixing(date(2014, 10, 13), REF_DATA), date(2014, 10, 13)); assertEquals(test.calculateEffectiveFromFixing(date(2014, 10, 13), REF_DATA), date(2014, 10, 13)); assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 13), REF_DATA), date(2014, 10, 14)); assertEquals(test.calculateFixingFromEffective(date(2014, 10, 13), REF_DATA), date(2014, 10, 13)); assertEquals(test.calculateMaturityFromEffective(date(2014, 10, 13), REF_DATA), date(2014, 10, 14)); // weekend assertEquals(test.calculatePublicationFromFixing(date(2014, 10, 10), REF_DATA), date(2014, 10, 10)); assertEquals(test.calculateEffectiveFromFixing(date(2014, 10, 10), REF_DATA), date(2014, 10, 10)); assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 10), REF_DATA), date(2014, 10, 13)); assertEquals(test.calculateFixingFromEffective(date(2014, 10, 10), REF_DATA), date(2014, 10, 10)); assertEquals(test.calculateMaturityFromEffective(date(2014, 10, 10), REF_DATA), date(2014, 10, 13)); // input date is Sunday assertEquals(test.calculatePublicationFromFixing(date(2014, 10, 12), REF_DATA), date(2014, 10, 13)); assertEquals(test.calculateEffectiveFromFixing(date(2014, 10, 12), REF_DATA), date(2014, 10, 13)); assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 12), REF_DATA), date(2014, 10, 14)); assertEquals(test.calculateFixingFromEffective(date(2014, 10, 12), REF_DATA), date(2014, 10, 13)); assertEquals(test.calculateMaturityFromEffective(date(2014, 10, 12), REF_DATA), date(2014, 10, 14)); }
public void test_usdFedFund_dates() { OvernightIndex test = OvernightIndex.of("USD-FED-FUND"); assertEquals(test.calculatePublicationFromFixing(date(2014, 10, 27), REF_DATA), date(2014, 10, 28)); assertEquals(test.calculateEffectiveFromFixing(date(2014, 10, 27), REF_DATA), date(2014, 10, 27)); assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 27), REF_DATA), date(2014, 10, 28)); assertEquals(test.calculateFixingFromEffective(date(2014, 10, 27), REF_DATA), date(2014, 10, 27)); assertEquals(test.calculateMaturityFromEffective(date(2014, 10, 27), REF_DATA), date(2014, 10, 28)); // weekend and US holiday assertEquals(test.calculatePublicationFromFixing(date(2014, 10, 10), REF_DATA), date(2014, 10, 14)); assertEquals(test.calculateEffectiveFromFixing(date(2014, 10, 10), REF_DATA), date(2014, 10, 10)); assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 10), REF_DATA), date(2014, 10, 14)); assertEquals(test.calculateFixingFromEffective(date(2014, 10, 10), REF_DATA), date(2014, 10, 10)); assertEquals(test.calculateMaturityFromEffective(date(2014, 10, 10), REF_DATA), date(2014, 10, 14)); // input date is Sunday, 13th is US holiday assertEquals(test.calculatePublicationFromFixing(date(2014, 10, 12), REF_DATA), date(2014, 10, 15)); assertEquals(test.calculateEffectiveFromFixing(date(2014, 10, 12), REF_DATA), date(2014, 10, 14)); assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 12), REF_DATA), date(2014, 10, 15)); assertEquals(test.calculateFixingFromEffective(date(2014, 10, 12), REF_DATA), date(2014, 10, 14)); assertEquals(test.calculateMaturityFromEffective(date(2014, 10, 12), REF_DATA), date(2014, 10, 15)); }
/** * Creates an {@code IborRateObservation} from an index and fixing date. * <p> * The reference data is used to find the maturity date from the fixing date. * * @param index the index * @param fixingDate the fixing date * @param refData the reference data to use when resolving holiday calendars * @return the rate observation */ public static OvernightIndexObservation of(OvernightIndex index, LocalDate fixingDate, ReferenceData refData) { LocalDate publicationDate = index.calculatePublicationFromFixing(fixingDate, refData); LocalDate effectiveDate = index.calculateEffectiveFromFixing(fixingDate, refData); LocalDate maturityDate = index.calculateMaturityFromEffective(effectiveDate, refData); return OvernightIndexObservation.builder() .index(index) .fixingDate(fixingDate) .publicationDate(publicationDate) .effectiveDate(effectiveDate) .maturityDate(maturityDate) .yearFraction(index.getDayCount().yearFraction(effectiveDate, maturityDate)) .build(); }
public void test_calculate() { OvernightCompoundedAnnualRateComputation test = sut(); assertEquals( test.calculateEffectiveFromFixing(date(2016, 2, 24)), BRL_CDI.calculateEffectiveFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateFixingFromEffective(date(2016, 2, 24)), BRL_CDI.calculateFixingFromEffective(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculatePublicationFromFixing(date(2016, 2, 24)), BRL_CDI.calculatePublicationFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateMaturityFromFixing(date(2016, 2, 24)), BRL_CDI.calculateMaturityFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateMaturityFromEffective(date(2016, 2, 24)), BRL_CDI.calculateMaturityFromEffective(date(2016, 2, 24), REF_DATA)); }
public void test_calculate() { OvernightAveragedDailyRateComputation test = OvernightAveragedDailyRateComputation.of(USD_FED_FUND, date(2016, 2, 24), date(2016, 3, 24), REF_DATA); assertEquals( test.calculateEffectiveFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculateEffectiveFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateFixingFromEffective(date(2016, 2, 24)), USD_FED_FUND.calculateFixingFromEffective(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculatePublicationFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculatePublicationFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateMaturityFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculateMaturityFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateMaturityFromEffective(date(2016, 2, 24)), USD_FED_FUND.calculateMaturityFromEffective(date(2016, 2, 24), REF_DATA)); }
public void test_calculate() { OvernightAveragedRateComputation test = OvernightAveragedRateComputation.of(USD_FED_FUND, date(2016, 2, 24), date(2016, 3, 24), REF_DATA); assertEquals( test.calculateEffectiveFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculateEffectiveFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateFixingFromEffective(date(2016, 2, 24)), USD_FED_FUND.calculateFixingFromEffective(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculatePublicationFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculatePublicationFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateMaturityFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculateMaturityFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateMaturityFromEffective(date(2016, 2, 24)), USD_FED_FUND.calculateMaturityFromEffective(date(2016, 2, 24), REF_DATA)); }
public void test_calculate() { OvernightCompoundedRateComputation test = OvernightCompoundedRateComputation.of(USD_FED_FUND, date(2016, 2, 24), date(2016, 3, 24), REF_DATA); assertEquals( test.calculateEffectiveFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculateEffectiveFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateFixingFromEffective(date(2016, 2, 24)), USD_FED_FUND.calculateFixingFromEffective(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculatePublicationFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculatePublicationFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateMaturityFromFixing(date(2016, 2, 24)), USD_FED_FUND.calculateMaturityFromFixing(date(2016, 2, 24), REF_DATA)); assertEquals( test.calculateMaturityFromEffective(date(2016, 2, 24)), USD_FED_FUND.calculateMaturityFromEffective(date(2016, 2, 24), REF_DATA)); }