@Override public UnitParameterSensitivity yValueParameterSensitivity(double x) { return createParameterSensitivity(boundInterpolator.parameterSensitivity(x)); }
public void test_createParameterSensitivity() { DoubleArray values = DoubleArray.of(3d, 4d, 6d, 1d, 2d, 5d, 8d); DoubleArray valuesBase = DoubleArray.of(3d, 4d, 6d); DoubleArray valuesSpread = DoubleArray.of(1d, 2d, 5d, 8d); UnitParameterSensitivity computed = COMBINED_CURVE.createParameterSensitivity(values); UnitParameterSensitivity baseSens = BASE_CURVE.createParameterSensitivity(valuesBase); UnitParameterSensitivity spreadSens = SPREAD_CURVE.createParameterSensitivity(valuesSpread); assertEquals(computed.split(), ImmutableList.of(baseSens, spreadSens)); }
public void test_createParameterSensitivityWithCurrency() { Currency ccy = Currency.USD; DoubleArray values = DoubleArray.of(3d, 4d, 6d, 1d, 2d, 5d, 8d); DoubleArray valuesBase = DoubleArray.of(3d, 4d, 6d); DoubleArray valuesSpread = DoubleArray.of(1d, 2d, 5d, 8d); CurrencyParameterSensitivity computed = COMBINED_CURVE.createParameterSensitivity(ccy, values); CurrencyParameterSensitivity baseSens = BASE_CURVE.createParameterSensitivity(ccy, valuesBase); CurrencyParameterSensitivity spreadSens = SPREAD_CURVE.createParameterSensitivity(ccy, valuesSpread); assertEquals(computed.split(), ImmutableList.of(baseSens, spreadSens)); }
public void test_createParameterSensitivity() { SimpleDiscountFactors test = SimpleDiscountFactors.of(GBP, DATE_VAL, CURVE); DoubleArray sensitivities = DoubleArray.of(0.12, 0.15); CurrencyParameterSensitivities sens = test.createParameterSensitivity(USD, sensitivities); assertEquals(sens.getSensitivities().get(0), CURVE.createParameterSensitivity(USD, sensitivities)); }
public void test_createParameterSensitivity() { InterpolatedNodalCurve test = InterpolatedNodalCurve.of(METADATA_ENTRIES, XVALUES, YVALUES, INTERPOLATOR); assertThat(test.createParameterSensitivity(DoubleArray.of(2d, 3d, 4d))).isEqualTo( UnitParameterSensitivity.of(CURVE_NAME, DoubleArray.of(2d, 3d, 4d))); assertThat(test.createParameterSensitivity(Currency.GBP, DoubleArray.of(2d, 3d, 4d))).isEqualTo( CurrencyParameterSensitivity.of(CURVE_NAME, Currency.GBP, DoubleArray.of(2d, 3d, 4d))); }
public void test_createParameterSensitivity() { DiscountIborIndexRates test = DiscountIborIndexRates.of(GBP_LIBOR_3M, DFCURVE, SERIES); DoubleArray sensitivities = DoubleArray.of(0.12, 0.15); CurrencyParameterSensitivities sens = test.createParameterSensitivity(USD, sensitivities); assertEquals(sens.getSensitivities().get(0), CURVE.createParameterSensitivity(USD, sensitivities)); }
public void test_createParameterSensitivity() { DiscountOvernightIndexRates test = DiscountOvernightIndexRates.of(GBP_SONIA, DFCURVE, SERIES); DoubleArray sensitivities = DoubleArray.of(0.12, 0.15); CurrencyParameterSensitivities sens = test.createParameterSensitivity(USD, sensitivities); assertEquals(sens.getSensitivities().get(0), CURVE.createParameterSensitivity(USD, sensitivities)); }
public void test_createParameterSensitivity() { SimpleIborIndexRates test = SimpleIborIndexRates.of(GBP_LIBOR_3M, DATE_VAL, CURVE, SERIES); DoubleArray sensitivities = DoubleArray.of(0.12, 0.15); CurrencyParameterSensitivities sens = test.createParameterSensitivity(USD, sensitivities); assertEquals(sens.getSensitivities().get(0), CURVE.createParameterSensitivity(USD, sensitivities)); }
public void test_createParameterSensitivity() { ZeroRatePeriodicDiscountFactors test = ZeroRatePeriodicDiscountFactors.of(GBP, DATE_VAL, CURVE); DoubleArray sensitivities = DoubleArray.of(0.12, 0.15, 0.16); CurrencyParameterSensitivities sens = test.createParameterSensitivity(USD, sensitivities); assertEquals(sens.getSensitivities().get(0), CURVE.createParameterSensitivity(USD, sensitivities)); }
public void test_createParameterSensitivity() { IsdaCreditDiscountFactors test = IsdaCreditDiscountFactors.of(USD, VALUATION, CURVE); DoubleArray sensitivities = DoubleArray.of(0.12, 0.1, 0.49, 0.15, 0.56, 0.17, 0.32, 0.118, 0.456, 5.0, 12.0, 0.65, 0.34, 0.75, 0.12, 0.15, 0.12, 0.15, 0.04); CurrencyParameterSensitivities sens = test.createParameterSensitivity(USD, sensitivities); assertEquals(sens.getSensitivities().get(0), CURVE.createParameterSensitivity(USD, sensitivities)); }
public void test_createParameterSensitivity() { ZeroRateDiscountFactors test = ZeroRateDiscountFactors.of(GBP, DATE_VAL, CURVE); DoubleArray sensitivities = DoubleArray.of(0.12, 0.15); CurrencyParameterSensitivities sens = test.createParameterSensitivity(USD, sensitivities); assertEquals(sens.getSensitivities().get(0), CURVE.createParameterSensitivity(USD, sensitivities)); }
public void test_createParameterSensitivity() { SimplePriceIndexValues test = SimplePriceIndexValues.of(US_CPI_U, VAL_DATE, CURVE_NOFIX, USCPI_TS); DoubleArray sensitivities = DoubleArray.of(0.12, 0.15, 0.16, 0.17); CurrencyParameterSensitivities sens = test.createParameterSensitivity(USD, sensitivities); assertEquals(sens.getSensitivities().get(0), CURVE_NOFIX.createParameterSensitivity(USD, sensitivities)); }
public void regressionPvCurveSensi() { PointSensitivityBuilder point = SWAPTION_PRICER.presentValueSensitivityRatesStickyModel(SWAPTION_PAY_LONG, RATE_PROVIDER, VOLS_REGRESSION); CurrencyParameterSensitivities sensiComputed = RATE_PROVIDER.parameterSensitivity(point.build()); final double[] deltaDsc = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 109037.92080563342, 637123.4570377409, -931862.187003511, -2556192.7520530378, -4233440.216336116, -5686205.439275854, -6160338.898970505, -3709275.494841247, 0.0}; final double[] deltaFwd = {0.0, 0.0, 0.0, 0.0, -1.0223186788452002E8, 2506923.9169937484, 4980364.73045286, 1.254633556119663E7, 1.528160539036628E8, 2.5824191204559547E8, 0.0, 0.0, 0.0, 0.0, 0.0}; CurrencyParameterSensitivities sensiExpected = CurrencyParameterSensitivities.of( SwaptionSabrRateVolatilityDataSet.CURVE_DSC_USD.createParameterSensitivity(USD, DoubleArray.copyOf(deltaDsc)), SwaptionSabrRateVolatilityDataSet.CURVE_FWD_USD.createParameterSensitivity(USD, DoubleArray.copyOf(deltaFwd))); assertTrue(sensiComputed.equalWithTolerance(sensiExpected, NOTIONAL * REGRESSION_TOL)); }
public void pvCurveSensiRegression() { PointSensitivityBuilder point = PRICER.presentValueSensitivityRatesStickyStrike(SWAPTION_REC_LONG, RATE_PROVIDER, VOLS); CurrencyParameterSensitivities computed = RATE_PROVIDER.parameterSensitivity(point.build()); computed.getSensitivity(DSC_NAME, EUR).getSensitivity(); DoubleArray dscSensi = DoubleArray.of( 0.0, 0.0, 0.0, -7143525.908886078, -1749520.4110068753, -719115.4683096837); // 2.x DoubleArray fwdSensi = DoubleArray.of( 0d, 0d, 0d, 1.7943318714062232E8, -3.4987983718159467E8, -2.6516758066404995E8); // 2.x CurrencyParameterSensitivity dsc = DSC_CURVE.createParameterSensitivity(EUR, dscSensi); CurrencyParameterSensitivity fwd = FWD6_CURVE.createParameterSensitivity(EUR, fwdSensi); CurrencyParameterSensitivities expected = CurrencyParameterSensitivities.of(ImmutableList.of(dsc, fwd)); assertTrue(computed.equalWithTolerance(expected, NOTIONAL * TOL)); }