Package com.opengamma.analytics.financial.provider.sensitivity.multicurve

Examples of com.opengamma.analytics.financial.provider.sensitivity.multicurve.MultipleCurrencyParameterSensitivity


  @Test
  /**
   * Tests present value curve sensitivity when the valuation date is on trade date.
   */
  public void presentValueCurveSensitivity() {
    final MultipleCurrencyParameterSensitivity pvpsDepositExact = PSC.calculateSensitivity(CPN_OIS, MULTICURVES, MULTICURVES.getAllNames());
    final MultipleCurrencyParameterSensitivity pvpsDepositFD = PSC_DSC_FD.calculateSensitivity(CPN_OIS, MULTICURVES);
    AssertSensivityObjects.assertEquals("CashDiscountingProviderMethod: presentValueCurveSensitivity ", pvpsDepositExact, pvpsDepositFD, TOLERANCE_PV_DELTA);
  }
View Full Code Here


  /**
   * Test the present value curves sensitivity.
   */
  public void presentValueCurveSensitivityWithNotional() {

    final MultipleCurrencyParameterSensitivity pvicsFD = PS_PV_FDC.calculateSensitivity(ZERO_COUPON_WITH, MARKET.getInflationProvider());
    final MultipleCurrencyParameterSensitivity pvicsExact = PSC.calculateSensitivity(ZERO_COUPON_WITH, MARKET.getInflationProvider(), MARKET.getAllNames());

    AssertSensivityObjects.assertEquals("DepositCounterpartDiscountingMethod: presentValueCurveSensitivity ", pvicsExact, pvicsFD, TOLERANCE_PV_DELTA);

  }
View Full Code Here

  /**
   * Test the present value curves sensitivity.
   */
  public void presentValueCurveSensitivityNoNotional() {

    final MultipleCurrencyParameterSensitivity pvicsFD = PS_PV_FDC.calculateSensitivity(ZERO_COUPON_NO, MARKET.getInflationProvider());
    final MultipleCurrencyParameterSensitivity pvicsExact = PSC.calculateSensitivity(ZERO_COUPON_NO, MARKET.getInflationProvider(), MARKET.getAllNames());

    AssertSensivityObjects.assertEquals("DepositCounterpartDiscountingMethod: presentValueCurveSensitivity ", pvicsExact, pvicsFD, TOLERANCE_PV_DELTA);

  }
View Full Code Here

  @Test
  /**
   * Tests the curve sensitivity for the explicit formula.
   */
  public void presentValueCurveSensitivity() {
    final MultipleCurrencyParameterSensitivity pvpsExact = PS_BS_C.calculateSensitivity(SWAPTION_LONG_REC, BLACK_MULTICURVES, BLACK_MULTICURVES.getMulticurveProvider().getAllNames());
    final MultipleCurrencyParameterSensitivity pvpsFD = PS_BS_FDC.calculateSensitivity(SWAPTION_LONG_REC, BLACK_MULTICURVES);
    AssertSensivityObjects.assertEquals("Swaption Black method: presentValueCurveSensitivity ", pvpsExact, pvpsFD, TOLERANCE_PV_DELTA);
  }
View Full Code Here

  @Test
  /**
   * Tests present value curve sensitivity when the valuation date is on trade date.
   */
  public void presentValueCurveSensitivity() {
    final MultipleCurrencyParameterSensitivity pvpsDepositExact = PS_PV_C.calculateSensitivity(CPN_BEFORE, MULTICURVES, MULTICURVES.getAllNames());
    final MultipleCurrencyParameterSensitivity pvpsDepositFD = PS_PV_FDC.calculateSensitivity(CPN_BEFORE, MULTICURVES);
    AssertSensivityObjects.assertEquals("CouponIborCompoundingFlatSpreadDiscountingMethod: presentValueCurveSensitivity ", pvpsDepositExact, pvpsDepositFD, TOLERANCE_PV_DELTA);
  }
View Full Code Here

  }

  @Test
  public void multiplyBy() {
    final double factor = 5.8;
    MultipleCurrencyParameterSensitivity sensitivity = new MultipleCurrencyParameterSensitivity();
    sensitivity = sensitivity.plus(NAME_1_USD, SENSITIVITY_1_1);
    sensitivity = sensitivity.multipliedBy(factor);
    assertEquals("Test multiplyBy, single name / currency pair: ", MATRIX.scale(SENSITIVITY_1_1, factor), sensitivity.getSensitivity(NAME_1_USD));
    MultipleCurrencyParameterSensitivity sensi2 = new MultipleCurrencyParameterSensitivity();
    sensi2 = sensi2.plus(NAME_1_USD, SENSITIVITY_1_1);
    sensi2 = sensi2.plus(NAME_2_EUR, SENSITIVITY_2_1);
    sensi2 = sensi2.multipliedBy(factor);
    assertEquals("Test multiplyBy, first name / currency pair: ", MATRIX.scale(SENSITIVITY_1_1, factor), sensi2.getSensitivity(NAME_1_USD));
    assertEquals("Test multiplyBy, second name / currency pair: ", MATRIX.scale(SENSITIVITY_2_1, factor), sensi2.getSensitivity(NAME_2_EUR));
  }
View Full Code Here

  public void pv01CurveParametersBeforeFirstFixing() {
    final ZonedDateTime referenceDate = DateUtils.getUTCDate(2012, 5, 14);
    final SwapFixedCoupon<Coupon> swap = SWAP_FIXED_IBOR_DEFINITION.toDerivative(referenceDate);
    final ReferenceAmount<Pair<String, Currency>> pv01Computed = swap.accept(PV01CPC, MULTICURVES);
    final ReferenceAmount<Pair<String, Currency>> pv01Expected = new ReferenceAmount<>();
    final MultipleCurrencyParameterSensitivity pvps = PSPVC.calculateSensitivity(swap, MULTICURVES, MULTICURVES.getAllNames());
    for (final Pair<String, Currency> nameCcy : pvps.getAllNamesCurrency()) {
      double total = 0.0;
      final double[] array = pvps.getSensitivity(nameCcy).getData();
      for (final double element : array) {
        total += element;
      }
      total *= BP1;
      pv01Expected.add(nameCcy, total);
View Full Code Here

  }

  @Test
  public void converted() {
    final FXMatrix fxMatrix = new FXMatrix(EUR, USD, 1.25);
    MultipleCurrencyParameterSensitivity sensitivity = new MultipleCurrencyParameterSensitivity();
    sensitivity = sensitivity.plus(NAME_1_USD, SENSITIVITY_1_1);
    sensitivity = sensitivity.plus(NAME_1_EUR, SENSITIVITY_1_2);
    sensitivity = sensitivity.plus(NAME_2_EUR, SENSITIVITY_2_1);
    final MultipleCurrencyParameterSensitivity sensitivityUSDConverted = sensitivity.converted(fxMatrix, USD);
    MultipleCurrencyParameterSensitivity sensitivityUSDExpected = new MultipleCurrencyParameterSensitivity();
    sensitivityUSDExpected = sensitivityUSDExpected.plus(NAME_1_USD, SENSITIVITY_1_1);
    sensitivityUSDExpected = sensitivityUSDExpected.plus(NAME_1_USD, (DoubleMatrix1D) MATRIX.scale(SENSITIVITY_1_2, fxMatrix.getFxRate(EUR, USD)));
    sensitivityUSDExpected = sensitivityUSDExpected.plus(NAME_2_USD, (DoubleMatrix1D) MATRIX.scale(SENSITIVITY_2_1, fxMatrix.getFxRate(EUR, USD)));
    assertTrue("Test convert: ", AssertSensivityObjects.assertEquals("ParameterSensitivity: convert", sensitivityUSDExpected, sensitivityUSDConverted, TOLERANCE));
  }
View Full Code Here

    assertTrue("Test convert: ", AssertSensivityObjects.assertEquals("ParameterSensitivity: convert", sensitivityUSDExpected, sensitivityUSDConverted, TOLERANCE));
  }

  @Test
  public void compare() {
    MultipleCurrencyParameterSensitivity sensitivity1 = new MultipleCurrencyParameterSensitivity();
    sensitivity1 = sensitivity1.plus(NAME_1_USD, SENSITIVITY_1_1);
    sensitivity1 = sensitivity1.plus(NAME_2_EUR, SENSITIVITY_2_1);
    MultipleCurrencyParameterSensitivity sensitivity2 = new MultipleCurrencyParameterSensitivity();
    sensitivity2 = sensitivity2.plus(NAME_1_USD, SENSITIVITY_1_1);
    sensitivity2 = sensitivity2.plus(NAME_2_EUR, SENSITIVITY_2_1);
    AssertSensivityObjects.assertEquals("ParameterSensitivity: compare same data", sensitivity1, sensitivity2, TOLERANCE);
    AssertSensivityObjects.assertDoesNotEqual("ParameterSensitivity: compare different data outside tolerance", sensitivity1.multipliedBy(2.0), sensitivity2, TOLERANCE);
    AssertSensivityObjects.assertEquals("ParameterSensitivity: compare different data inside tolerance", sensitivity1.multipliedBy(1 + TOLERANCE / 10), sensitivity2, TOLERANCE);
    MultipleCurrencyParameterSensitivity sensitivity3 = new MultipleCurrencyParameterSensitivity();
    sensitivity3 = sensitivity3.plus(NAME_1_USD, SENSITIVITY_1_1);
    AssertSensivityObjects.assertDoesNotEqual("ParameterSensitivity: compare data with different name / currency pairs", sensitivity1, sensitivity3, TOLERANCE);
  }
View Full Code Here

  public void getAllNamesCurrency() {
    final LinkedHashMap<Pair<String, Currency>, DoubleMatrix1D> map1 = Maps.newLinkedHashMap();
    map1.put(NAME_1_EUR, SENSITIVITY_1_1);
    map1.put(NAME_2_EUR, SENSITIVITY_1_2);
    map1.put(NAME_1_USD, SENSITIVITY_2_1);
    final MultipleCurrencyParameterSensitivity sensitivity1 = MultipleCurrencyParameterSensitivity.of(map1);
    assertEquals("ParameterSensitivity: getAllNamesCurrency", sensitivity1.getAllNamesCurrency(), sensitivity1.getSensitivities().keySet());
    assertEquals("ParameterSensitivity: getAllNamesCurrency", sensitivity1.getSensitivity(NAME_1, EUR), sensitivity1.getSensitivity(NAME_1_EUR));
    assertEquals("ParameterSensitivity: getAllNamesCurrency", sensitivity1.getSensitivity(NAME_2, EUR), sensitivity1.getSensitivity(NAME_2_EUR));
  }
View Full Code Here

TOP

Related Classes of com.opengamma.analytics.financial.provider.sensitivity.multicurve.MultipleCurrencyParameterSensitivity

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.