public void test_cashFlow_provider_ended() { assertEquals(PRICER.cashFlows(PAYMENT_PAST, PROVIDER), CashFlows.NONE); }
public void test_currencyExposure() { assertEquals( PRICER.currencyExposure(PAYMENT, PROVIDER), MultiCurrencyAmount.of(PRICER.presentValue(PAYMENT, PROVIDER))); }
/** * Calculates the current cash of the bullet payment trade. * * @param trade the trade * @param provider the provider * @return the current cash */ public CurrencyAmount currentCash(ResolvedBulletPaymentTrade trade, BaseProvider provider) { return paymentPricer.currentCash(trade.getProduct().getPayment(), provider); }
public void test_forecastValue_provider() { assertEquals(PRICER.forecastValue(PAYMENT, PROVIDER).getAmount(), NOTIONAL_USD, 0d); assertEquals(PRICER.forecastValueAmount(PAYMENT, PROVIDER), NOTIONAL_USD, 0d); }
@Override public PointSensitivityBuilder presentValueSensitivity(KnownAmountSwapPaymentPeriod period, RatesProvider provider) { return paymentPricer.presentValueSensitivity(period.getPayment(), provider); }
/** * Calculates the currency exposure. * * @param payment the payment * @param provider the provider * @return the currency exposure */ public MultiCurrencyAmount currencyExposure(Payment payment, BaseProvider provider) { return MultiCurrencyAmount.of(presentValue(payment, provider)); }
public void test_explainPresentValue_provider() { CurrencyAmount fvExpected = PRICER.forecastValue(PAYMENT, PROVIDER); CurrencyAmount pvExpected = PRICER.presentValue(PAYMENT, PROVIDER); ExplainMap explain = PRICER.explainPresentValue(PAYMENT, PROVIDER); Currency currency = PAYMENT.getCurrency(); assertEquals(explain.get(ExplainKey.ENTRY_TYPE).get(), "Payment"); assertEquals(explain.get(ExplainKey.PAYMENT_DATE).get(), PAYMENT.getDate()); assertEquals(explain.get(ExplainKey.PAYMENT_CURRENCY).get(), currency); assertEquals(explain.get(ExplainKey.DISCOUNT_FACTOR).get(), DF, TOL); assertEquals(explain.get(ExplainKey.FORECAST_VALUE).get().getCurrency(), currency); assertEquals(explain.get(ExplainKey.FORECAST_VALUE).get().getAmount(), fvExpected.getAmount(), TOL); assertEquals(explain.get(ExplainKey.PRESENT_VALUE).get().getCurrency(), currency); assertEquals(explain.get(ExplainKey.PRESENT_VALUE).get().getAmount(), pvExpected.getAmount(), TOL); }
@Override public double presentValue(KnownAmountSwapPaymentPeriod period, RatesProvider provider) { return paymentPricer.presentValueAmount(period.getPayment(), provider); }
Payment payment = list.get(loopcf); alpha[loopcf] = hwProvider.alpha(ratesProvider.getValuationDate(), expiryDate, expiryDate, payment.getDate()); discountedCashFlow[loopcf] = paymentPricer.presentValueAmount(payment, ratesProvider); Payment payment = list.get(loopcf); double cdf = NORMAL.getCDF(omega * (kappa + alpha[loopcf])); point = point.combinedWith(paymentPricer.presentValueSensitivity(payment, ratesProvider).multipliedBy(cdf)); if (!listSensi.get(loopcf).equals(PointSensitivityBuilder.none())) { point = point.combinedWith(listSensi.get(loopcf)
/** * Explains the present value of the payment. * <p> * This returns explanatory information about the calculation. * * @param payment the payment * @param provider the provider * @return the explanatory information */ public ExplainMap explainPresentValue(Payment payment, BaseProvider provider) { Currency currency = payment.getCurrency(); LocalDate paymentDate = payment.getDate(); ExplainMapBuilder builder = ExplainMap.builder(); builder.put(ExplainKey.ENTRY_TYPE, "Payment"); builder.put(ExplainKey.PAYMENT_DATE, paymentDate); builder.put(ExplainKey.PAYMENT_CURRENCY, currency); if (paymentDate.isBefore(provider.getValuationDate())) { builder.put(ExplainKey.COMPLETED, Boolean.TRUE); builder.put(ExplainKey.FORECAST_VALUE, CurrencyAmount.zero(currency)); builder.put(ExplainKey.PRESENT_VALUE, CurrencyAmount.zero(currency)); } else { builder.put(ExplainKey.DISCOUNT_FACTOR, provider.discountFactor(currency, paymentDate)); builder.put(ExplainKey.FORECAST_VALUE, forecastValue(payment, provider)); builder.put(ExplainKey.PRESENT_VALUE, presentValue(payment, provider)); } return builder.build(); }
public void test_presentValueSensitivityWithSpread_df_spread_ended() { PointSensitivities computed = PRICER.presentValueSensitivityWithSpread(PAYMENT_PAST, DISCOUNT_FACTORS, Z_SPREAD, PERIODIC, 3).build(); assertEquals(computed, PointSensitivities.empty()); }
@Override public double forecastValue(KnownAmountSwapPaymentPeriod period, RatesProvider provider) { return paymentPricer.forecastValueAmount(period.getPayment(), provider); }
/** * Explains the present value of the bullet payment product. * <p> * This returns explanatory information about the calculation. * * @param trade the trade * @param provider the provider * @return the explanatory information */ public ExplainMap explainPresentValue(ResolvedBulletPaymentTrade trade, BaseProvider provider) { return paymentPricer.explainPresentValue(trade.getProduct().getPayment(), provider); }
@Override public MultiCurrencyAmount currencyExposure(NotionalExchange event, RatesProvider provider) { return paymentPricer.currencyExposure(event.getPayment(), provider); }
@Override public PointSensitivityBuilder presentValueSensitivity(NotionalExchange event, RatesProvider provider) { return paymentPricer.presentValueSensitivity(event.getPayment(), provider); }
/** * Calculates the present value of the bullet payment trade. * <p> * The present value of the trade is the value on the valuation date. * This is the discounted forecast value. * * @param trade the trade * @param provider the provider * @return the present value of the trade */ public CurrencyAmount presentValue(ResolvedBulletPaymentTrade trade, BaseProvider provider) { return paymentPricer.presentValue(trade.getProduct().getPayment(), provider); }
public void test_forecastValue_provider_ended() { assertEquals(PRICER.forecastValue(PAYMENT_PAST, PROVIDER).getAmount(), 0d, 0d); assertEquals(PRICER.forecastValueAmount(PAYMENT_PAST, PROVIDER), 0d, 0d); }
@Override public double presentValue(NotionalExchange event, RatesProvider provider) { return paymentPricer.presentValueAmount(event.getPayment(), provider); }
private PointSensitivityBuilder presentValueSensitivityNominalFromZSpread( ResolvedFixedCouponBond bond, IssuerCurveDiscountFactors discountFactors, double zSpread, CompoundedRateType compoundedRateType, int periodsPerYear) { Payment nominal = bond.getNominalPayment(); PointSensitivityBuilder pt = nominalPricer.presentValueSensitivityWithSpread( nominal, discountFactors.getDiscountFactors(), zSpread, compoundedRateType, periodsPerYear); if (pt instanceof ZeroRateSensitivity) { return IssuerCurveZeroRateSensitivity.of((ZeroRateSensitivity) pt, discountFactors.getLegalEntityGroup()); } return pt; // NoPointSensitivity }
@Override public double forecastValue(NotionalExchange event, RatesProvider provider) { return paymentPricer.forecastValueAmount(event.getPayment(), provider); }