コード例 #1
0
 private double[] priceDiff(
     final CDSAnalytic cds,
     final ISDACompliantCreditCurve creditCurve,
     final double coupon,
     final ISDACompliantYieldCurve[] bumpedYC,
     final ISDACompliantYieldCurve baseYC) {
   final double basePV = _pricer.pv(cds, baseYC, creditCurve, coupon, PriceType.DIRTY);
   final int n = bumpedYC.length;
   final double[] res = new double[n];
   for (int i = 0; i < n; i++) {
     final double pv = _pricer.pv(cds, bumpedYC[i], creditCurve, coupon, PriceType.DIRTY);
     res[i] = pv - basePV;
   }
   return res;
 }
コード例 #2
0
 private double priceDiff(
     final CDSAnalytic cds,
     final ISDACompliantCreditCurve creditCurve,
     final double coupon,
     final ISDACompliantYieldCurve yc1,
     final ISDACompliantYieldCurve yc2) {
   final double pv1 = _pricer.pv(cds, yc1, creditCurve, coupon, PriceType.DIRTY);
   final double pv2 = _pricer.pv(cds, yc2, creditCurve, coupon, PriceType.DIRTY);
   return pv1 - pv2;
 }
コード例 #3
0
  @Test
  public void test() {
    final ISDACompliantCreditCurveBuilder curveBuilder =
        new FastCreditCurveBuilder(MARKIT_FIX, ArbitrageHandling.ZeroHazardRate);
    final AnalyticCDSPricer pricer = new AnalyticCDSPricer(MARKIT_FIX);

    final int nPillars = PILLAR_DATES.length;
    final CDSAnalytic[] pillarCDSS = new CDSAnalytic[nPillars];
    for (int i = 0; i < nPillars; i++) {
      pillarCDSS[i] =
          new CDSAnalytic(
              TODAY,
              EFFECTIVE_DATE,
              CASH_SETTLE_DATE,
              STARTDATE,
              PILLAR_DATES[i],
              PAY_ACC_ON_DEFAULT,
              PAYMENT_INTERVAL,
              STUB,
              PROCTECTION_START,
              RECOVERY_RATE);
    }

    final ISDACompliantCreditCurve creditCurve =
        curveBuilder.calibrateCreditCurve(pillarCDSS, SPREADS, YIELD_CURVE);

    final int nMat = MATURITIES.length;
    for (int i = 0; i < nMat; i++) {
      final CDSAnalytic cds =
          new CDSAnalytic(
              TODAY,
              EFFECTIVE_DATE,
              CASH_SETTLE_DATE,
              STARTDATE,
              MATURITIES[i],
              PAY_ACC_ON_DEFAULT,
              PAYMENT_INTERVAL,
              STUB,
              PROCTECTION_START,
              RECOVERY_RATE);
      final double dPV = pricer.pv(cds, YIELD_CURVE, creditCurve, COUPON, PriceType.DIRTY);
      //  System.out.println(MATURITIES[i] + "\t" + dPV);
      assertEquals(MATURITIES[i].toString(), EXPECTED_UPFRONT_CHARGE[i], dPV, 1e-15);
    }
  }