Package com.opengamma.financial.currency

Examples of com.opengamma.financial.currency.CurrencyPair


    //TODO how should this be done?
    final CurrencyPairs pairs = OpenGammaCompilationContext.getCurrencyPairsSource(context).getCurrencyPairs(CurrencyPairs.DEFAULT_CURRENCY_PAIRS);
    final FinancialSecurity security = (FinancialSecurity) target.getPosition().getSecurity();
    final Currency payCurrency = security.accept(ForexVisitors.getPayCurrencyVisitor());
    final Currency receiveCurrency = security.accept(ForexVisitors.getReceiveCurrencyVisitor());
    final CurrencyPair currencyPair = pairs.getCurrencyPair(payCurrency, receiveCurrency);
    final Currency currencyBase = currencyPair.getBase();
    final ValueProperties properties = createValueProperties()
        .with(INCLUDE_START_PROPERTY, includeStart)
        .with(INCLUDE_END_PROPERTY, includeEnd)
        .with(START_DATE_PROPERTY, startDate)
        .with(END_DATE_PROPERTY, endDate)
View Full Code Here


          .withOptional(ValuePropertyNames.RECEIVE_CURVE)
          .get();
      final UnorderedCurrencyPair ccyPair = target.getValue(ComputationTargetType.UNORDERED_CURRENCY_PAIR);
      Currency payCurrency;
      Currency receiveCurrency;
      final CurrencyPair baseQuotePair = _baseQuotePairs.getCurrencyPair(ccyPair.getFirstCurrency(), ccyPair.getSecondCurrency());
      if (baseQuotePair == null) {
        throw new OpenGammaRuntimeException("Could not get base/quote pair for currency pair " + ccyPair);
      }
      if (baseQuotePair.getBase().equals(ccyPair.getFirstCurrency())) {
        payCurrency = baseQuotePair.getBase();
        receiveCurrency = baseQuotePair.getCounter();
      } else {
        payCurrency = baseQuotePair.getCounter();
        receiveCurrency = baseQuotePair.getBase();
      }
      result.add(ConventionBasedFXRateFunction.getSpotRateRequirement(ccyPair));
      result.add(new ValueRequirement(ValueRequirementNames.YIELD_CURVE, ComputationTargetType.CURRENCY.specification(payCurrency), payCurveProperties));
      result.add(new ValueRequirement(ValueRequirementNames.YIELD_CURVE, ComputationTargetType.CURRENCY.specification(receiveCurrency), receiveCurveProperties));
      return result;
View Full Code Here

      Set<String> receiveCurveNames = null;
      Set<String> receiveCurveCalculationConfigs = null;
      final UnorderedCurrencyPair ccyPair = UnorderedCurrencyPair.of(target.getUniqueId());
      Currency payCurrency;
      Currency receiveCurrency;
      final CurrencyPair baseQuotePair = _baseQuotePairs.getCurrencyPair(ccyPair.getFirstCurrency(), ccyPair.getSecondCurrency());
      if (baseQuotePair == null) {
        throw new OpenGammaRuntimeException("Could not get base/quote pair for currency pair " + ccyPair);
      }
      if (baseQuotePair.getBase().equals(ccyPair.getFirstCurrency())) {
        payCurrency = baseQuotePair.getBase();
        receiveCurrency = baseQuotePair.getCounter();
      } else {
        payCurrency = baseQuotePair.getCounter();
        receiveCurrency = baseQuotePair.getBase();
      }
      final Double spot = (Double) inputs.getValue(ValueRequirementNames.SPOT_RATE);
      for (final ComputedValue input : inputs.getAllValues()) {
        final ValueSpecification spec = input.getSpecification();
        final ValueProperties properties = spec.getProperties();
View Full Code Here

    final Object baseQuotePairsObject = inputs.getValue(ValueRequirementNames.CURRENCY_PAIRS);
    if (baseQuotePairsObject == null) {
      throw new OpenGammaRuntimeException("Could not get base/quote pair data");
    }
    final CurrencyPairs baseQuotePairs = (CurrencyPairs) baseQuotePairsObject;
    final CurrencyPair baseQuotePair = baseQuotePairs.getCurrencyPair(putCurrency, callCurrency);
    if (baseQuotePair == null) {
      throw new OpenGammaRuntimeException("Could not get base/quote pair for currency pair (" + putCurrency + ", " + callCurrency + ")");
    }
    final Integer daysFwdOrBackward;
    if (daysForward.equalsIgnoreCase("-1")) {
      daysFwdOrBackward = -1;
    } else if (daysForward.equalsIgnoreCase("+1") || daysForward.equalsIgnoreCase("1")) {
      daysFwdOrBackward = 1;
    } else {
      throw new OpenGammaRuntimeException("Property 'DaysForward' must be set to either 1 or -1.");
    }
    final ForexSecurityConverter converter = new ForexSecurityConverter(baseQuotePairs);
    final String fullPutCurveName = putCurveName + "_" + putCurrency.getCode();
    final String fullCallCurveName = callCurveName + "_" + callCurrency.getCode();
    final YieldAndDiscountCurve putFundingCurve = FXOptionFunctionUtils.getCurveForCurrency(inputs, putCurrency, putCurveName, putCurveConfig);
    final YieldAndDiscountCurve callFundingCurve = FXOptionFunctionUtils.getCurveForCurrency(inputs, callCurrency, callCurveName, callCurveConfig);
    final YieldAndDiscountCurve[] curves;
    final Map<String, Currency> curveCurrency = new HashMap<>();
    curveCurrency.put(fullPutCurveName, putCurrency);
    curveCurrency.put(fullCallCurveName, callCurrency);
    final String[] allCurveNames;
    final Currency ccy1;
    final Currency ccy2;
    if (baseQuotePair.getBase().equals(putCurrency)) { // To get Base/quote in market standard order.
      ccy1 = putCurrency;
      ccy2 = callCurrency;
      curves = new YieldAndDiscountCurve[] {putFundingCurve, callFundingCurve};
      allCurveNames = new String[] {fullPutCurveName, fullCallCurveName};
    } else {
View Full Code Here

    final Object baseQuotePairsObject = inputs.getValue(ValueRequirementNames.CURRENCY_PAIRS);
    if (baseQuotePairsObject == null) {
      throw new OpenGammaRuntimeException("Could not get base/quote pair data");
    }
    final CurrencyPairs baseQuotePairs = (CurrencyPairs) baseQuotePairsObject;
    final CurrencyPair baseQuotePair = baseQuotePairs.getCurrencyPair(putCurrency, callCurrency);
    if (baseQuotePair == null) {
      throw new OpenGammaRuntimeException("Could not get base/quote pair for currency pair (" + putCurrency + ", " + callCurrency + ")");
    }
    if (baseQuotePair.getBase().equals(putCurrency)) { // To get Base/quote in market standard order.
      ccy1 = putCurrency;
      ccy2 = callCurrency;
      curves = new YieldAndDiscountCurve[] {putFundingCurve, callFundingCurve};
      allCurveNames = new String[] {fullPutCurveName, fullCallCurveName};
    } else {
View Full Code Here

    final ForwardCurve forwardCurve = (ForwardCurve) forwardCurveObject;
    final ValueRequirement volDataRequirement = getUnderlyingVolatilityDataRequirement(surfaceName, id);
    final SmileSurfaceDataBundle data = getData(inputs, volDataRequirement, forwardCurveRequirement);
    final FXOptionSecurity fxOption = (FXOptionSecurity) security;
    final CurrencyPairs currencyPairs = OpenGammaExecutionContext.getCurrencyPairsSource(executionContext).getCurrencyPairs(CurrencyPairs.DEFAULT_CURRENCY_PAIRS);
    final CurrencyPair currencyPair = currencyPairs.getCurrencyPair(fxOption.getPutCurrency(), fxOption.getCallCurrency());
    final EuropeanVanillaOption option = getOption(security, now, currencyPair);
    return Collections.singleton(new ComputedValue(spec, getResult(calculator, localVolatilitySurface, forwardCurve, data, option)));
  }
View Full Code Here

      if (isWithCurrency()) {
        final FinancialSecurity security = (FinancialSecurity) target.getTrade().getSecurity();
        final Currency putCurrency = security.accept(ForexVisitors.getPutCurrencyVisitor());
        final Currency callCurrency = security.accept(ForexVisitors.getCallCurrencyVisitor());
        final CurrencyPairs baseQuotePairs = getCurrencyPairs(context);
        final CurrencyPair baseQuotePair = baseQuotePairs.getCurrencyPair(putCurrency, callCurrency);
        final String currency = getResultCurrency(target, baseQuotePair);
        properties.with(CURRENCY, currency);
        return properties;
      }
      return properties;
View Full Code Here

    final double callAmount = fxOptionSecurity.getCallAmount();
    final ZonedDateTime expiry = fxOptionSecurity.getExpiry().getExpiry();
    final ZonedDateTime settlementDate = fxOptionSecurity.getSettlementDate();
    final boolean isLong = fxOptionSecurity.isLong();
    ForexDefinition underlying;
    final CurrencyPair baseQuotePair = _currencyPairs.getCurrencyPair(putCurrency, callCurrency);
    if (baseQuotePair == null) {
      throw new OpenGammaRuntimeException("Could not get base/quote order for currency pair (" + putCurrency + ", " + callCurrency + ")");
    }
    if (baseQuotePair.getBase().equals(putCurrency)) {
      underlying = ForexDefinition.fromAmounts(putCurrency, callCurrency, settlementDate, putAmount, -callAmount);
      return new ForexOptionVanillaDefinition(underlying, expiry, false, isLong);
    }
    underlying = ForexDefinition.fromAmounts(callCurrency, putCurrency, settlementDate, callAmount, -putAmount);
    return new ForexOptionVanillaDefinition(underlying, expiry, true, isLong);
View Full Code Here

      properties.with(CONVENTION_NAME_PROPERTY, _convention);
      final UnorderedCurrencyPair unordered = UnorderedCurrencyPair.of(target.getUniqueId());
      if (unordered.getFirstCurrency().equals(unordered.getSecondCurrency())) {
        return null;
      }
      final CurrencyPair ordered = _currencyPairs.getCurrencyPair(unordered.getFirstCurrency(), unordered.getSecondCurrency());
      if (ordered == null) {
        return null;
      }
      properties.with(QUOTING_CONVENTION_PROPERTY, ordered.toString());
      return properties;
    }
View Full Code Here

        constraints = constraintsBuilder.get();
      } else {
        constraints = ValueProperties.none();
      }
      final UnorderedCurrencyPair unordered = UnorderedCurrencyPair.of(target.getUniqueId());
      final CurrencyPair ordered = _currencyPairs.getCurrencyPair(unordered.getFirstCurrency(), unordered.getSecondCurrency());
      return Collections.singleton(new ValueRequirement(desiredValue.getValueName(), CurrencyPair.TYPE.specification(ordered), constraints));
    }
View Full Code Here

TOP

Related Classes of com.opengamma.financial.currency.CurrencyPair

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.