public virtual void test_parSpreadSensitivity() { PointSensitivities computed = PRICER.parSpreadSensitivity(TRADE, RATES_PROVIDER, REF_DATA); PointSensitivities expected = PRICER_PRODUCT.parSpreadSensitivity(PRODUCT, RATES_PROVIDER, SETTLEMENT_DATE, REF_DATA).build(); PointSensitivities computedMf = PRICER_MF.parSpreadSensitivity(TRADE_NO_SETTLE_DATE, RATES_PROVIDER, REF_DATA); PointSensitivities expectedMf = PRICER_PRODUCT_MF.parSpreadSensitivity(PRODUCT, RATES_PROVIDER, SETTLEMENT_DATE, REF_DATA).build(); assertTrue(computed.equalWithTolerance(expected, TOL)); assertTrue(computedMf.equalWithTolerance(expectedMf, TOL)); }
/// <summary> /// Calculates the par spread sensitivity of the product. /// <para> /// The par spread sensitivity of the product is the sensitivity of par spread to the underlying curves. /// The resulting sensitivity is based on the currency of the CDS index product. /// /// </para> /// </summary> /// <param name="cdsIndex"> the product </param> /// <param name="ratesProvider"> the rates provider </param> /// <param name="referenceDate"> the reference date </param> /// <param name="refData"> the reference data </param> /// <returns> the par spread </returns> public virtual PointSensitivityBuilder parSpreadSensitivity(ResolvedCdsIndex cdsIndex, CreditRatesProvider ratesProvider, LocalDate referenceDate, ReferenceData refData) { ResolvedCds cds = cdsIndex.toSingleNameCds(); return(underlyingPricer.parSpreadSensitivity(cds, ratesProvider, referenceDate, refData)); }
/// <summary> /// Calculates the par spread sensitivity of the underling product. /// <para> /// The par spread sensitivity of the product is the sensitivity of par spread to the underlying curves. /// /// </para> /// </summary> /// <param name="trade"> the trade </param> /// <param name="ratesProvider"> the rates provider </param> /// <param name="refData"> the reference data </param> /// <returns> the present value sensitivity </returns> public virtual PointSensitivities parSpreadSensitivity(ResolvedCdsTrade trade, CreditRatesProvider ratesProvider, ReferenceData refData) { LocalDate settlementDate = calculateSettlementDate(trade, ratesProvider, refData); return(productPricer.parSpreadSensitivity(trade.Product, ratesProvider, settlementDate, refData).build()); }