@Override public UnitParameterSensitivity yValueParameterSensitivity(double x) { return underlyingCurve.yValueParameterSensitivity(x); }
@Override public UnitParameterSensitivity yValueParameterSensitivity(double x) { return spreadCurve.yValueParameterSensitivity(x); }
@Override public UnitParameterSensitivity yValueParameterSensitivity(double x) { UnitParameterSensitivity baseSens = baseCurve.yValueParameterSensitivity(x); UnitParameterSensitivity spreadSens = spreadCurve.yValueParameterSensitivity(x); return UnitParameterSensitivity.combine(getName(), baseSens, spreadSens); }
private CurrencyParameterSensitivity parameterSensitivity(FxOptionSensitivity point) { double expiry = point.getExpiry(); UnitParameterSensitivity unitSens = curve.yValueParameterSensitivity(expiry); return unitSens.multipliedBy(point.getCurrency(), point.getSensitivity()); }
@Override public CurrencyParameterSensitivities parameterSensitivity(ZeroRateSensitivity pointSens) { double yearFraction = pointSens.getYearFraction(); UnitParameterSensitivity unitSens = curve.yValueParameterSensitivity(yearFraction); CurrencyParameterSensitivity curSens = unitSens.multipliedBy(pointSens.getCurrency(), pointSens.getSensitivity()); return CurrencyParameterSensitivities.of(curSens); }
public void test_yValueParameterSensitivity() { InterpolatedNodalCurve curve = InterpolatedNodalCurve.of( METADATA, DoubleArray.of(0, 1), DoubleArray.of(2, 2.5), CurveInterpolators.LINEAR); Curve absoluteShiftedCurve = ParallelShiftedCurve.absolute(curve, 1); Curve relativeShiftedCurve = ParallelShiftedCurve.relative(curve, 0.2); UnitParameterSensitivity expected = curve.yValueParameterSensitivity(0.1); assertThat(absoluteShiftedCurve.yValueParameterSensitivity(0.1)).isEqualTo(expected); assertThat(relativeShiftedCurve.yValueParameterSensitivity(0.1)).isEqualTo(expected); }
@Override public CurrencyParameterSensitivities parameterSensitivity(ZeroRateSensitivity pointSens) { double yearFraction = pointSens.getYearFraction(); if (Math.abs(yearFraction) < EFFECTIVE_ZERO) { return CurrencyParameterSensitivities.empty(); // Discount factor in 0 is always 1, no sensitivity. } double discountFactor = discountFactor(yearFraction); UnitParameterSensitivity unitSens = curve.yValueParameterSensitivity(yearFraction); CurrencyParameterSensitivity curSens = unitSens .multipliedBy(-1d / (yearFraction * discountFactor)) .multipliedBy(pointSens.getCurrency(), pointSens.getSensitivity()); return CurrencyParameterSensitivities.of(curSens); }
private CurrencyParameterSensitivity parameterSensitivity(IborCapletFloorletSabrSensitivity point) { Curve curve = getCurve(point.getSensitivityType()); double expiry = point.getExpiry(); UnitParameterSensitivity unitSens = curve.yValueParameterSensitivity(expiry); return unitSens.multipliedBy(point.getCurrency(), point.getSensitivity()); }
@Override public CurrencyParameterSensitivities parameterSensitivity(ZeroRateSensitivity pointSens) { double yearFraction = pointSens.getYearFraction(); double rp = curve.yValue(yearFraction); double rcBar = 1.0; double rpBar = 1.0 / (1 + rp / frequency) * rcBar; UnitParameterSensitivity unitSens = curve.yValueParameterSensitivity(yearFraction).multipliedBy(rpBar); CurrencyParameterSensitivity curSens = unitSens.multipliedBy(pointSens.getCurrency(), pointSens.getSensitivity()); return CurrencyParameterSensitivities.of(curSens); }
@Override public CurrencyParameterSensitivities parameterSensitivity(IborRateSensitivity pointSensitivity) { LocalDate maturityDate = pointSensitivity.getObservation().getMaturityDate(); double relativeYearFraction = relativeYearFraction(maturityDate); UnitParameterSensitivity unitSensitivity = curve.yValueParameterSensitivity(relativeYearFraction); CurrencyParameterSensitivity sensitivity = unitSensitivity.multipliedBy(pointSensitivity.getCurrency(), pointSensitivity.getSensitivity()); return CurrencyParameterSensitivities.of(sensitivity); }
CurrencyParameterSensitivities sensiComputed = prov.parameterSensitivity(point); UnitParameterSensitivity alphaSensitivities = prov.getParameters().getAlphaCurve() .yValueParameterSensitivity(expiryTime); UnitParameterSensitivity betaSensitivities = prov.getParameters().getBetaCurve() .yValueParameterSensitivity(expiryTime); UnitParameterSensitivity rhoSensitivities = prov.getParameters().getRhoCurve() .yValueParameterSensitivity(expiryTime); UnitParameterSensitivity nuSensitivities = prov.getParameters().getNuCurve() .yValueParameterSensitivity(expiryTime); UnitParameterSensitivity shiftSensitivities = prov.getParameters().getShiftCurve() .yValueParameterSensitivity(expiryTime); CurrencyParameterSensitivity alphaSensiObj = sensiComputed.getSensitivity( IborCapletFloorletSabrRateVolatilityDataSet.META_ALPHA.getCurveName(), EUR);