Package com.opengamma.analytics.financial.credit.creditdefaultswap.definition.legacy

Examples of com.opengamma.analytics.financial.credit.creditdefaultswap.definition.legacy.LegacyVanillaCreditDefaultSwapDefinition


    final double calibrationRecoveryRate = 0.25;

    // -------------------------------------------------------------------------------------

    // Create a calibration CDS (will be a modified version of the baseline CDS)
    LegacyVanillaCreditDefaultSwapDefinition calibrationCDS = cds;

    // Set the recovery rate of the calibration CDS used for the curve calibration (this appears in the calculation of the contingent leg)
    calibrationCDS = calibrationCDS.withRecoveryRate(calibrationRecoveryRate);

    // -------------------------------------------------------------------------------------

    // Create a calibrate survival curve object
    final CalibrateHazardRateCurveLegacyCreditDefaultSwap hazardRateCurve = new CalibrateHazardRateCurveLegacyCreditDefaultSwap();
View Full Code Here


   * <p>
   * It calls PresentValueCreditDefaultSwap.calibrateAndGetPresentValue.
   */
  @Test
  public void testAccruedInterestZeroSpread() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinition().withMaturityDate(VALUATION_DATE.plusYears(10));
    GenerateCreditDefaultSwapPremiumLegSchedule premiumLegScheduleBuilder = new GenerateCreditDefaultSwapPremiumLegSchedule();
    final ZonedDateTime[][] premiumLegSchedule = premiumLegScheduleBuilder.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    final ZonedDateTime stepinDate = VALUATION_DATE.plusDays(1);
    final double accruedInterest = (cds.getNotional() * cds.getParSpread() / 10000.0) * CALCULATOR.calculateAccruedInterest(cds, premiumLegSchedule, stepinDate);
    final double cleanPrice = CALCULATOR.calibrateAndGetPresentValue(VALUATION_DATE, cds, MARKET_TENORS, ZERO_SPREADS, YIELD_CURVE, PriceType.CLEAN);
    final double dirtyPrice = CALCULATOR.calibrateAndGetPresentValue(VALUATION_DATE, cds, MARKET_TENORS, ZERO_SPREADS, YIELD_CURVE, PriceType.DIRTY);
    assertEquals(cleanPrice, dirtyPrice + accruedInterest, EPS);
  }
View Full Code Here

   * <p>
   * It calls PresentValueCreditDefaultSwap.calculatePremiumLeg on PriceType.Clean and PriceType.Dirty
   */
  @Test
  public void testAccruedInterest() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinition().withMaturityDate(VALUATION_DATE.plusYears(10));
    GenerateCreditDefaultSwapPremiumLegSchedule premiumLegScheduleBuilder = new GenerateCreditDefaultSwapPremiumLegSchedule();
    final ZonedDateTime[][] premiumLegSchedule = premiumLegScheduleBuilder.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    final ZonedDateTime stepinDate = VALUATION_DATE.plusDays(1);
    final double accruedInterest = (cds.getNotional() * cds.getParSpread() / 10000.0) * CALCULATOR.calculateAccruedInterest(cds, premiumLegSchedule, stepinDate);
    final double dirtyPremiumLeg = -CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.DIRTY) * cds.getParSpread() / BP;
    final double riskyAnnuity = CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.CLEAN);
    final double cleanPremiumLeg = -cds.getParSpread() / BP * riskyAnnuity;
    assertEquals(cleanPremiumLeg / (dirtyPremiumLeg + accruedInterest), 1.0, EPS);
  }
View Full Code Here

   * <p>
   * It calls PresentValueCreditDefaultSwap.calculatePremiumLeg on PriceType.Clean and PriceType.Dirty
   */
  @Test
  public void regressionTest() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinition().withMaturityDate(VALUATION_DATE.plusYears(10));
    GenerateCreditDefaultSwapPremiumLegSchedule premiumLegScheduleBuilder = new GenerateCreditDefaultSwapPremiumLegSchedule();
    final ZonedDateTime[][] premiumLegSchedule = premiumLegScheduleBuilder.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    final ZonedDateTime stepinDate = VALUATION_DATE.plusDays(1);
    final double accruedInterest = (cds.getNotional() * cds.getParSpread() / 10000.0) * CALCULATOR.calculateAccruedInterest(cds, premiumLegSchedule, stepinDate);
    final double dirtyPremiumLeg = -CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.DIRTY) * cds.getParSpread() / BP;
    final double riskyAnnuity = CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.CLEAN);
    final double cleanPremiumLeg = -cds.getParSpread() / BP * riskyAnnuity;
    assertEquals(accruedInterest / 341.6666666666667, 1.0, EPS);
    assertEquals(dirtyPremiumLeg / -1551069.4610753073, 1.0, EPS);
    assertEquals(cleanPremiumLeg / -1550727.7944086404, 1.0, EPS);
  }
View Full Code Here

   * <p>
   * In this test, a hazard curve is provided. No calibration to market spreads is performed.
   */
  @Test
  public void testRecoveryRateEqualsOneWithHazardCurveProvided() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithRecoveryRate(1).withMaturityDate(
        VALUATION_DATE.plusYears(10));
    final double contingentLeg = CALCULATOR.calculateContingentLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE);
    final double dirtyPremiumLeg = -CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.DIRTY) * cds.getParSpread() / BP;
    final double riskyAnnuity = CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.CLEAN);
    final double cleanPremiumLeg = -riskyAnnuity * cds.getParSpread() / BP;
    assertEquals(0, contingentLeg, EPS);
    assertEquals(cleanPremiumLeg, -1550727.7944086404, 1e-9);
    assertEquals(dirtyPremiumLeg, -1551069.4610753073, 1e-9);
  }
View Full Code Here

    CALCULATOR.getPresentValue(null, CURVE_PROVIDER, VALUATION_DATE, PriceType.CLEAN);
  }

  @Test(expectedExceptions = IllegalArgumentException.class)
  public void testNullData() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = getLegacyVanillaDefinition().withMaturityDate(VALUATION_DATE.plusYears(10));
    CALCULATOR.getPresentValue(cds, null, VALUATION_DATE, PriceType.CLEAN);
  }
View Full Code Here

    CALCULATOR.getPresentValue(cds, null, VALUATION_DATE, PriceType.CLEAN);
  }

  @Test(expectedExceptions = IllegalArgumentException.class)
  public void testNullValuationDate() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = getLegacyVanillaDefinition().withMaturityDate(VALUATION_DATE.plusYears(10));
    CALCULATOR.getPresentValue(cds, CURVE_PROVIDER, null, PriceType.CLEAN);
  }
View Full Code Here

    CALCULATOR.getPresentValue(cds, CURVE_PROVIDER, null, PriceType.CLEAN);
  }

  @Test(expectedExceptions = IllegalArgumentException.class)
  public void testNullPriceType() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = getLegacyVanillaDefinition().withMaturityDate(VALUATION_DATE.plusYears(10));
    CALCULATOR.getPresentValue(cds, CURVE_PROVIDER, VALUATION_DATE, null);
  }
View Full Code Here

   * <p>
   * Note: It is this calibration that is causing the exception.
   */
  @Test(expectedExceptions = OpenGammaRuntimeException.class)
  public void testRecoveryRateEqualsOneWithMarketSpreadsProvided() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithRecoveryRate(1).withMaturityDate(
        VALUATION_DATE.plusYears(10));
    final double cleanPremiumLeg = CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.CLEAN);
    final double dirtyPremiumLeg = -CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.DIRTY) * cds.getParSpread() / BP;
    final double dirtyPrice = CALCULATOR.calibrateAndGetPresentValue(VALUATION_DATE, cds, MARKET_TENORS, MARKET_SPREADS, YIELD_CURVE, PriceType.DIRTY);
    final double cleanPrice = CALCULATOR.calibrateAndGetPresentValue(VALUATION_DATE, cds, MARKET_TENORS, MARKET_SPREADS, YIELD_CURVE, PriceType.CLEAN);
    assertEquals(-cleanPremiumLeg * cds.getParSpread() / BP, cleanPrice, EPS);
    assertEquals(dirtyPremiumLeg, dirtyPrice, 1e-9); //TODO accuracy
  }
View Full Code Here

   * <p>
   * Note: It is this calibration that is causing the exception.
   */
  @Test(expectedExceptions = OpenGammaRuntimeException.class)
  public void testRecoveryRateEqualsOneWithZeroSpreadsProvided() {
    final LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithRecoveryRate(1).withMaturityDate(
        VALUATION_DATE.plusYears(10));
    final double riskyAnnuity = CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.CLEAN);
    final double cleanPremiumLeg = -riskyAnnuity * cds.getParSpread() / BP;
    final double dirtyPremiumLeg = -CALCULATOR.calculatePremiumLeg(VALUATION_DATE, cds, YIELD_CURVE, HAZARD_CURVE, PriceType.DIRTY) * cds.getParSpread() / BP;
    final double cleanPrice = CALCULATOR.calibrateAndGetPresentValue(VALUATION_DATE, cds, MARKET_TENORS, ZERO_SPREADS, YIELD_CURVE, PriceType.CLEAN);
    final double dirtyPrice = CALCULATOR.calibrateAndGetPresentValue(VALUATION_DATE, cds, MARKET_TENORS, ZERO_SPREADS, YIELD_CURVE, PriceType.DIRTY);
    assertEquals(cleanPremiumLeg / cleanPrice, 1.0, EPS);
    assertEquals(dirtyPremiumLeg / dirtyPrice, 1.0, EPS);
  }
View Full Code Here

TOP

Related Classes of com.opengamma.analytics.financial.credit.creditdefaultswap.definition.legacy.LegacyVanillaCreditDefaultSwapDefinition

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.