final ValueProperties.Builder properties = getResultProperties(target, desiredValue, baseQuotePair);
final ValueSpecification spec = new ValueSpecification(ValueRequirementNames.VALUE_THETA, target.toSpecification(), properties.get());
final YieldCurveBundle curvesWithFX = new YieldCurveBundle(fxMatrix, curveCurrency, yieldCurves.getCurvesMap());
final SmileDeltaTermStructureDataBundle smileBundle = new SmileDeltaTermStructureDataBundle(curvesWithFX, smiles, Pair.of(ccy1, ccy2));
if (security instanceof FXOptionSecurity) {
final ForexOptionVanillaDefinition definition = (ForexOptionVanillaDefinition) security.accept(converter);
final MultipleCurrencyAmount theta = CALCULATOR.getTheta(definition, now, allCurveNames, smileBundle, daysFwdOrBackward);
return Collections.singleton(new ComputedValue(spec, HorizonUtils.getNonZeroValue(theta)));
} else if (security instanceof FXDigitalOptionSecurity) {
final ForexOptionDigitalDefinition definition = (ForexOptionDigitalDefinition) security.accept(converter);
final MultipleCurrencyAmount theta = CALCULATOR.getTheta(definition, now, allCurveNames, smileBundle, PresentValueBlackSmileForexCalculator.getInstance(), daysFwdOrBackward);