/** * Calculates the yield for settlement at a given settlement date using curves. * * @param bill the bill * @param provider the discounting provider * @param settlementDate the settlement date * @return the yield */ public double yieldFromCurves(ResolvedBill bill, LegalEntityDiscountingProvider provider, LocalDate settlementDate) { double price = priceFromCurves(bill, provider, settlementDate); return bill.yieldFromPrice(price, settlementDate); }
public void price_settle_date_after_maturity_error() { assertThrows(() -> PRICER.priceFromCurves(BILL, PROVIDER, MATURITY_DATE), IllegalArgumentException.class); }
public void price_settle_date_before_valuation_error() { assertThrows(() -> PRICER.priceFromCurves(BILL, PROVIDER, VAL_DATE.minusDays(1)), IllegalArgumentException.class); }
public void priceFromCurves() { LocalDate settlementDate = VAL_DATE.plusDays(1); double priceComputed = PRICER.priceFromCurves(BILL, PROVIDER, settlementDate); double dfMaturity = DSC_FACTORS_ISSUER.discountFactor(MATURITY_DATE); double dfSettle = DSC_FACTORS_REPO.discountFactor(settlementDate); double priceExpected = dfMaturity/dfSettle; assertEquals(priceComputed, priceExpected, TOLERANCE_PRICE); }