@Override public CurrencyParameterSensitivities parameterSensitivity( PointSensitivities pointSensitivities) { CurrencyParameterSensitivities sens = CurrencyParameterSensitivities.empty(); for (PointSensitivity point : pointSensitivities.getSensitivities()) { if (point instanceof IborFutureOptionSensitivity) { IborFutureOptionSensitivity pt = (IborFutureOptionSensitivity) point; if (pt.getVolatilitiesName().equals(getName())) { sens = sens.combinedWith(parameterSensitivity(pt)); } } } return sens; }
private CurrencyParameterSensitivity parameterSensitivity(IborFutureOptionSensitivity point) { double simpleMoneyness = moneynessOnPrice ? point.getStrikePrice() - point.getFuturePrice() : point.getFuturePrice() - point.getStrikePrice(); UnitParameterSensitivity unitSens = surface.zValueParameterSensitivity(point.getExpiry(), simpleMoneyness); return unitSens.multipliedBy(point.getCurrency(), point.getSensitivity()); }