public virtual void test_parSpread() { double computed = PRICER.parSpread(TRADE, RATES_PROVIDER, REF_DATA); double expected = PRICER_PRODUCT.parSpread(PRODUCT, RATES_PROVIDER, SETTLEMENT_DATE, REF_DATA); double computedMf = PRICER_MF.parSpread(TRADE_NO_SETTLE_DATE, RATES_PROVIDER, REF_DATA); double expectedMf = PRICER_PRODUCT_MF.parSpread(PRODUCT, RATES_PROVIDER, SETTLEMENT_DATE, REF_DATA); assertEquals(computed, expected, TOL); assertEquals(computedMf, expectedMf, TOL); }
//------------------------------------------------------------------------- /// <summary> /// Calculates the par spread of the CDS index product. /// <para> /// The par spread is a coupon rate such that the clean PV is 0. /// The result is represented in decimal form. /// /// </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 double parSpread(ResolvedCdsIndex cdsIndex, CreditRatesProvider ratesProvider, LocalDate referenceDate, ReferenceData refData) { ResolvedCds cds = cdsIndex.toSingleNameCds(); return(underlyingPricer.parSpread(cds, ratesProvider, referenceDate, refData)); }
//------------------------------------------------------------------------- /// <summary> /// Calculates the par spread of the underlying product. /// <para> /// The par spread is a coupon rate such that the clean price is 0. /// The result is represented in decimal form. /// </para> /// <para> /// This is coherent to <seealso cref="#price(ResolvedCdsTrade, CreditRatesProvider, PriceType, ReferenceData)"/>. /// /// </para> /// </summary> /// <param name="trade"> the trade </param> /// <param name="ratesProvider"> the rates provider </param> /// <param name="refData"> the reference data </param> /// <returns> the par spread </returns> public virtual double parSpread(ResolvedCdsTrade trade, CreditRatesProvider ratesProvider, ReferenceData refData) { LocalDate settlementDate = calculateSettlementDate(trade, ratesProvider, refData); return(productPricer.parSpread(trade.Product, ratesProvider, settlementDate, refData)); }