private static void CreateCreditCurveFromCDSInstruments() throws Exception { JulianDate dtStart = JulianDate.Today(); /* * Populate the instruments, the calibration measures, and the calibration quotes */ double[] adblQuotes = new double[5]; String[] astrCalibMeasure = new String[5]; CreditDefaultSwap[] aCDS = new CreditDefaultSwap[5]; for (int i = 0; i < 5; ++i) { /* * The Calibration CDS */ aCDS[i] = CDSBuilder.CreateSNAC(dtStart, (i + 1) + "Y", 0.01, "CORP"); /* * Calibration Quote */ adblQuotes[i] = 100.; /* * Calibration Measure */ astrCalibMeasure[i] = "FairPremium"; } /* * Flat Discount Curve */ DiscountCurve dc = DiscountCurveBuilder.CreateFromFlatRate(dtStart, "USD", 0.05); /* * Create the Credit Curve from the give CDS instruments */ CreditCurve cc = CreditScenarioCurveBuilder.CreateCreditCurve( "CORP", dtStart, aCDS, dc, adblQuotes, astrCalibMeasure, 0.4, false); /* * Valuation Parameters */ ValuationParams valParams = ValuationParams.CreateValParams(dtStart, 0, "", Convention.DR_ACTUAL); /* * Standard Credit Pricer Parameters (check javadoc for details) */ PricerParams pricerParams = PricerParams.MakeStdPricerParams(); /* * Re-calculate the input calibration measures for the input CDSes */ for (int i = 0; i < aCDS.length; ++i) System.out.println( "\t" + astrCalibMeasure[i] + "[" + i + "] = " + aCDS[i].calcMeasureValue( valParams, pricerParams, ComponentMarketParamsBuilder.CreateComponentMarketParams( dc, null, null, cc, null, null, null), null, astrCalibMeasure[i])); }