final double sign = (optionForex.getUnderlyingOption().isLong() ? 1.0 : -1.0);
final double volatility = smileMulticurves.getVolatility(optionForex.getCurrency1(), optionForex.getCurrency2(), optionForex.getUnderlyingOption().getTimeToExpiry(), optionForex
.getUnderlyingOption().getStrike(), forward);
double price = BARRIER_FUNCTION.getPrice(optionForex.getUnderlyingOption(), optionForex.getBarrier(), rebateByForeignUnit, spot, rateDomestic - rateForeign, rateDomestic, volatility);
price *= Math.abs(foreignAmount) * sign;
final CurrencyAmount priceCurrency = CurrencyAmount.of(optionForex.getUnderlyingOption().getUnderlyingForex().getCurrency2(), price);
return MultipleCurrencyAmount.of(priceCurrency);
}