//------------------------------------------------------------------------- protected internal virtual void testCalibrationAgainstISDA(IsdaCompliantCreditCurveCalibrator builder, DayCount dayCount, Currency currency, double tol) { IsdaCdsProductPricer pricer = new IsdaCdsProductPricer(builder.AccrualOnDefaultFormula); for (int i = 0; i < NUM_TESTS; i++) { LegalEntitySurvivalProbabilities creditCurve = builder.calibrate(ImmutableList.copyOf(NODE_CDS[i]), CurveName.of("credit"), CDS_MARKET_DATA[i], YIELD_CURVES[i], dayCount, currency, false, false, REF_DATA); ResolvedCdsTrade[] expectedCds = EXP_NODE_CDS[i]; ImmutableCreditRatesProvider provider = YIELD_CURVES[i].toBuilder().creditCurves(ImmutableMap.of(Pair.of(LEGAL_ENTITY, EUR), creditCurve)).build(); double[] expected = builder.AccrualOnDefaultFormula == AccrualOnDefaultFormula.MARKIT_FIX ? EXP_PROB_MARKIT_FIX[i] : EXP_PROB_ISDA[i]; for (int k = 0; k < N_OBS; k++) { assertEquals(creditCurve.SurvivalProbabilities.discountFactor(OBS_TIMES[k]), expected[k], tol); } int m = expectedCds.Length; for (int j = 0; j < m; j++) { ResolvedCdsTrade cdsFromNode = NODE_CDS[i][j].trade(1d, CDS_MARKET_DATA[i], REF_DATA).UnderlyingTrade.resolve(REF_DATA); assertEquals(cdsFromNode.Product, expectedCds[j].Product); double price1 = pricer.price(cdsFromNode.Product, provider, SPREADS[i][j], cdsFromNode.Info.SettlementDate.get(), PriceType.CLEAN, REF_DATA); assertEquals(price1, 0.0, 5e-16); } } }
/// <summary> /// Constructor specifying the formula to use for the accrued on default calculation. /// </summary> /// <param name="formula"> the formula </param> public IsdaHomogenousCdsIndexProductPricer(AccrualOnDefaultFormula formula) { this.underlyingPricer = new IsdaCdsProductPricer(formula); }
/// <summary> /// The constructor with the accrual-on-default formula specified. /// </summary> /// <param name="formula"> the accrual-on-default formula </param> public IsdaCdsTradePricer(AccrualOnDefaultFormula formula) { this.productPricer = new IsdaCdsProductPricer(formula); this.upfrontPricer = DiscountingPaymentPricer.DEFAULT; }
//------------------------------------------------------------------------- /// <summary> /// The default constructor. /// <para> /// The default pricers are used. /// </para> /// </summary> public IsdaCdsTradePricer() { this.productPricer = IsdaCdsProductPricer.DEFAULT; this.upfrontPricer = DiscountingPaymentPricer.DEFAULT; }