Package com.opengamma.core.position

Examples of com.opengamma.core.position.Position


    }
    final Set<String> receiveCurveName = constraints.getValues(ValuePropertyNames.RECEIVE_CURVE);
    if (receiveCurveName == null || receiveCurveName.isEmpty() || receiveCurveName.size() != 1) {
      return null;
    }
    final Position position = target.getPosition();
    final FXFutureSecurity future = (FXFutureSecurity) position.getSecurity();
    final Set<ValueRequirement> requirements = new HashSet<ValueRequirement>();
    final ValueProperties pvProperties = ValueProperties.builder()
        .with(ValuePropertyNames.CURRENCY, future.getCurrency().getCode())
        .with(ValuePropertyNames.PAY_CURVE, payCurveName)
        .with(ValuePropertyNames.RECEIVE_CURVE, receiveCurveName).get();
View Full Code Here


  }

  @Override
  public Position getPosition(UniqueId uniqueId) {
    ArgumentChecker.notNull(uniqueId, "uniqueId");
    Position position = _positions.get(uniqueId.getObjectId());
    if (position == null) {
      throw new DataNotFoundException("Position not found: " + uniqueId);
    }
    return position;
  }
View Full Code Here

  @Override
  public Position getPosition(final ObjectId objectId, final VersionCorrection versionCorrection) {
    ArgumentChecker.notNull(objectId, "objectId");
    ArgumentChecker.notNull(versionCorrection, "versionCorrection");
    Position position = _positions.get(objectId);
    if (position == null) {
      throw new DataNotFoundException("Position not found: " + objectId);
    }
    return position;
  }
View Full Code Here

      if (currency == null) {
        if (ComputationTargetType.PORTFOLIO_NODE.isCompatible(computationTargetType) || ComputationTargetType.PORTFOLIO.isCompatible(computationTargetType)) {
          currency = MIXED_CURRENCY;
        } else if (ComputationTargetType.POSITION.isCompatible(computationTargetType)) {
          PositionSource positionSource = _toolContext.getPositionSource();
          Position position = positionSource.getPosition(uniqueId);
          if (position.getSecurity() == null) {
            position.getSecurityLink().resolve(_toolContext.getSecuritySource());
          }
          if (position.getSecurity() != null) {
            currency = _currenciesAggrFunction.classifyPosition(position);
          }
        } else if (ComputationTargetType.TRADE.isCompatible(computationTargetType)) {
          PositionSource positionSource = _toolContext.getPositionSource();
          Trade trade = positionSource.getTrade(uniqueId);
View Full Code Here

      final ValueRequirement desiredValue = Iterables.getOnlyElement(desiredValues);
      final String surfaceName = desiredValue.getConstraint(ValuePropertyNames.SURFACE);
      final ConfigSource configSource = OpenGammaExecutionContext.getConfigSource(executionContext);
      final ConfigDBVolatilitySurfaceDefinitionSource definitionSource = new ConfigDBVolatilitySurfaceDefinitionSource(configSource);
      final ConfigDBVolatilitySurfaceSpecificationSource specificationSource = new ConfigDBVolatilitySurfaceSpecificationSource(configSource);
      final Position position = target.getPosition();
      final FinancialSecurity security = (FinancialSecurity) position.getSecurity();
      final Currency putCurrency = security.accept(ForexVisitors.getPutCurrencyVisitor());
      final Currency callCurrency = security.accept(ForexVisitors.getCallCurrencyVisitor());
      final UnorderedCurrencyPair currencyPair = UnorderedCurrencyPair.of(putCurrency, callCurrency);
      final VolatilitySurfaceDefinition<Object, Object> definition = getSurfaceDefinition(currencyPair, surfaceName, definitionSource);
      final VolatilitySurfaceSpecification specification = getSurfaceSpecification(currencyPair, surfaceName, specificationSource);
      final Period samplingPeriod = getSamplingPeriod(desiredValue.getConstraint(ValuePropertyNames.SAMPLING_PERIOD));
      final LocalDate startDate = now.minus(samplingPeriod);
      final String scheduleCalculatorName = desiredValue.getConstraint(ValuePropertyNames.SCHEDULE_CALCULATOR);
      final Schedule scheduleCalculator = getScheduleCalculator(scheduleCalculatorName);
      final String samplingFunctionName = desiredValue.getConstraint(ValuePropertyNames.SAMPLING_FUNCTION);
      final TimeSeriesSamplingFunction samplingFunction = getSamplingFunction(samplingFunctionName);
      final LocalDate[] schedule = HOLIDAY_REMOVER.getStrippedSchedule(scheduleCalculator.getSchedule(startDate, now, true, false), WEEKEND_CALENDAR);
      DoubleTimeSeries<?> vegaPnL = getPnLSeries(definition, specification, timeSeriesBundle, vegaMatrix, now, schedule, samplingFunction);
      vegaPnL = vegaPnL.multiply(position.getQuantity().doubleValue());
      final CurrencyPairs currencyPairs = OpenGammaExecutionContext.getCurrencyPairsSource(executionContext).getCurrencyPairs(CurrencyPairs.DEFAULT_CURRENCY_PAIRS);
      final CurrencyPair baseCounterPair = currencyPairs.getCurrencyPair(putCurrency, callCurrency);
      final String vegaResultCurrency = getResultCurrency(target, baseCounterPair);
      final String currencyBase = baseCounterPair.getBase().getCode();
      if (!currencyBase.equals(vegaResultCurrency)) {
View Full Code Here

  protected PortfolioNode addToFrontCache(PortfolioNode node, final VersionCorrection versionCorrection) {
    final List<Position> nodePositions = node.getPositions();
    List<Position> newPositions = null;
    for (int i = 0; i < nodePositions.size(); i++) {
      final Position nodePosition = nodePositions.get(i);
      final Position newPosition = addToFrontCache(nodePosition, versionCorrection);
      if (newPosition != nodePosition) {
        if (newPositions == null) {
          newPositions = new ArrayList<Position>(nodePositions.size());
          for (int j = 0; j < i; j++) {
            newPositions.add(nodePositions.get(j));
View Full Code Here

        return (Position) f;
      }
      final Element e = _positionCache.get(uniqueId);
      if (e != null) {
        s_logger.debug("getPositionByUniqueId: EHCache hit on {}", uniqueId);
        final Position position = (Position) e.getObjectValue();
        f = _frontPositionOrTradeCache.putIfAbsent(uniqueId, position);
        if (f instanceof Position) {
          s_logger.debug("getPositionByUniqueId: Late front cache hit on {}", uniqueId);
          return (Position) f;
        } else {
          return position;
        }
      }
    } else {
      s_logger.debug("getPositionByUniqueId: Pass through on {}", uniqueId);
    }
    final Position position = getUnderlying().getPosition(uniqueId);
    f = _frontPositionOrTradeCache.putIfAbsent(position.getUniqueId(), position);
    if (f instanceof Position) {
      s_logger.debug("getPositionByUniqueId: Late front cache hit on {}", uniqueId);
      return (Position) f;
    }
    _positionCache.put(new Element(position.getUniqueId(), position));
    return position;
  }
View Full Code Here

    }
    final Pair<ObjectId, VersionCorrection> key = Pair.of(positionId, versionCorrection);
    final Element e = _positionCache.get(key);
    if (e != null) {
      s_logger.debug("getPositionByObjectId: EHCache hit on {}/{}", positionId, versionCorrection);
      final Position position = (Position) e.getObjectValue();
      f = _frontCacheByOID.putIfAbsent(versionCorrection, positionId, position);
      if (f instanceof Position) {
        s_logger.debug("getPositionByObjectId: Late front cache hit on {}/{}", positionId, versionCorrection);
        return (Position) f;
      } else {
        return position;
      }
    } else {
      s_logger.debug("getPositionByObjectId: Cache miss on {}/{}", positionId, versionCorrection);
      final Position position = getUnderlying().getPosition(positionId, versionCorrection);
      f = _frontPositionOrTradeCache.putIfAbsent(position.getUniqueId(), position);
      if (f instanceof Position) {
        s_logger.debug("getPositionByObjectId: Late front cache hit on {}/{}", positionId, versionCorrection);
        _frontCacheByOID.put(versionCorrection, positionId, f);
        return (Position) f;
      } else {
        _frontCacheByOID.put(versionCorrection, positionId, position);
        _positionCache.put(new Element(key, position));
        _positionCache.put(new Element(position.getUniqueId(), position));
        return position;
      }
    }
  }
View Full Code Here

    }

    @Override
    public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target,
        final Set<ValueRequirement> desiredValues) throws AsynchronousExecution {
      final Position position = target.getPosition();
      final FinancialSecurity security = (FinancialSecurity) position.getSecurity();
      final Currency payCurrency = security.accept(ForexVisitors.getPayCurrencyVisitor());
      final Currency receiveCurrency = security.accept(ForexVisitors.getReceiveCurrencyVisitor());

      final CurrencyPair currencyPair = _currencyPairs.getCurrencyPair(payCurrency, receiveCurrency);
      final Currency currencyBase = currencyPair.getBase();
View Full Code Here

      portfolioNode.setName(portfolio.getName());

      String portfolioPositionsKey = toPortfolioPositionsRedisKey(portfolio.getUniqueId());
      Set<String> positionUniqueIds = jedis.smembers(portfolioPositionsKey);
      for (String positionUniqueId : positionUniqueIds) {
        Position position = getPosition(jedis, UniqueId.parse(positionUniqueId));
        if (position != null) {
          portfolioNode.addPosition(position);
        }
      }
      portfolio.setRootNode(portfolioNode);
View Full Code Here

TOP

Related Classes of com.opengamma.core.position.Position

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.