Package com.opengamma.core.position.impl

Examples of com.opengamma.core.position.impl.SimplePortfolioNode


  public void testSingleValueExternalDependency() {
    final ExternalId secIdentifier1 = ExternalId.of("SEC", "1");
    final ExternalId secIdentifier2 = ExternalId.of("SEC", "2");
    final SimplePosition pos = new SimplePosition(new BigDecimal(1), secIdentifier1);
    final SimplePortfolioNode pn = new SimplePortfolioNode("node");
    pn.addPosition(pos);
    final SimplePortfolio p = new SimplePortfolio(UniqueId.of("FOO", "BAR"), "portfolio");
    p.setRootNode(pn);
    final MockPositionSource positionSource = new MockPositionSource();
    positionSource.addPortfolio(p);
    final SimpleSecurity sec1 = new SimpleSecurity("My Sec");
    sec1.addExternalId(secIdentifier1);
    final SimpleSecurity sec2 = new SimpleSecurity("Your Sec");
    sec2.addExternalId(secIdentifier2);
    final InMemorySecuritySource securitySource = new InMemorySecuritySource();
    securitySource.addSecurity(sec1);
    securitySource.addSecurity(sec2);
    final MockFunction fn2 = MockFunction.getMockFunction("fn2", new ComputationTarget(ComputationTargetType.SECURITY, sec2), 14.2);
    final MockFunction fn1 = MockFunction.getMockFunction("fn1", new ComputationTarget(ComputationTargetType.PORTFOLIO_NODE, pn), 14.2, fn2);
    final InMemoryFunctionRepository functionRepo = new InMemoryFunctionRepository();
    functionRepo.addFunction(fn1);
    functionRepo.addFunction(fn2);
    final FunctionCompilationContext functionCompilationContext = new FunctionCompilationContext();
    functionCompilationContext.setFunctionInitId(123);
    final CompiledFunctionService cfs = new CompiledFunctionService(functionRepo, new CachingFunctionRepositoryCompiler(), functionCompilationContext);
    cfs.initialize();
    final DefaultFunctionResolver functionResolver = new DefaultFunctionResolver(cfs);
    final DefaultCachingComputationTargetResolver computationTargetResolver = new DefaultCachingComputationTargetResolver(new DefaultComputationTargetResolver(securitySource, positionSource),
        _cacheManager);
    functionCompilationContext.setRawComputationTargetResolver(computationTargetResolver);
    final ViewCompilationServices vcs = new ViewCompilationServices(new FixedMarketDataAvailabilityProvider(), functionResolver, functionCompilationContext, new PoolExecutor(1, getClass()
        .getSimpleName()),
        new DependencyGraphBuilderFactory());
    final ViewDefinition viewDefinition = new ViewDefinition("My View", UniqueId.of("FOO", "BAR"), "kirk");
    viewDefinition.getResultModelDefinition().setPositionOutputMode(ResultOutputMode.NONE);
    final ViewCalculationConfiguration calcConfig = new ViewCalculationConfiguration(viewDefinition, "Fibble");
    calcConfig.addPortfolioRequirementName("My Sec", "OUTPUT");
    viewDefinition.addViewCalculationConfiguration(calcConfig);
    final CompiledViewDefinitionWithGraphsImpl compiledViewDefinition = ViewDefinitionCompiler.compile(viewDefinition, vcs, Instant.now(), VersionCorrection.LATEST);
    assertTrue(compiledViewDefinition.getMarketDataRequirements().isEmpty());
    assertEquals(1, compiledViewDefinition.getDependencyGraphExplorers().size());
    final DependencyGraph dg = compiledViewDefinition.getDependencyGraphExplorer("Fibble").getWholeGraph();
    assertNotNull(dg);
    assertTrue(dg.getAllRequiredMarketData().isEmpty());
    assertEquals(2, dg.getDependencyNodes().size());
    // Expect the node and the security, since we've turned off position-level outputs and not actually provided a
    // function that can produce them
    assertTargets(compiledViewDefinition, sec2.getUniqueId(), pn.getUniqueId());
  }
View Full Code Here


  public void createPortfolio() {
    final UniqueIdSupplier uid = new UniqueIdSupplier("Test");
    final MockPositionSource positionSource = new MockPositionSource();
    final PortfolioStructure resolver = new PortfolioStructure(positionSource);
    final SimplePortfolio portfolio = new SimplePortfolio(uid.get(), "Test");
    _root = new SimplePortfolioNode(uid.get(), "root");
    _child1 = new SimplePortfolioNode(uid.get(), "child 1");
    _child2 = new SimplePortfolioNode(uid.get(), "child 2");
    _position1 = new SimplePosition(uid.get(), new BigDecimal(10), ExternalId.of("Security", "Foo"));
    _child2.addPosition(_position1);
    _position2 = new SimplePosition(uid.get(), new BigDecimal(20), ExternalId.of("Security", "Bar"));
    _child2.addPosition(_position2);
    _child2.setParentNodeId(_child1.getUniqueId());
    _child1.addChildNode(_child2);
    _child1.setParentNodeId(_root.getUniqueId());
    _root.addChildNode(_child1);
    portfolio.setRootNode(_root);
    positionSource.addPortfolio(portfolio);
    _badChild = new SimplePortfolioNode(uid.get(), "child 3");
    _badChild.setParentNodeId(uid.get());
    _badPosition = new SimplePosition(uid.get(), new BigDecimal(10), ExternalId.of("Security", "Cow"));
    _context = new FunctionCompilationContext();
    _context.setPortfolioStructure(resolver);
  }
View Full Code Here

    position.setSecurityLink(link);
    return position;
  }

  private SimplePortfolioNode createChildNode(final String securityType, final String currency) {
    final SimplePortfolioNode node = new SimplePortfolioNode(currency + "-" + securityType);
    node.setUniqueId(UniqueId.of("Node", securityType + "-" + currency));
    node.addPosition(createPosition(securityType, currency, "A"));
    node.addPosition(createPosition(securityType, currency, "B"));
    return node;
  }
View Full Code Here

    node.addPosition(createPosition(securityType, currency, "B"));
    return node;
  }

  private SimplePortfolioNode createRootNode() {
    final SimplePortfolioNode node = new SimplePortfolioNode("Root");
    node.setUniqueId(UniqueId.of("Node", "0"));
    node.addChildNode(createChildNode(SECURITY_TYPE_1, CURRENCY_1));
    node.addChildNode(createChildNode(SECURITY_TYPE_2, CURRENCY_1));
    node.addChildNode(createChildNode(SECURITY_TYPE_1, CURRENCY_2));
    node.addChildNode(createChildNode(SECURITY_TYPE_2, CURRENCY_2));
    return node;
  }
View Full Code Here

  private static void readSubNodes(FudgeDeserializer deserializer, FudgeMsg message, SimplePortfolioNode node) {
    if (message != null) {
      for (FudgeField field : message) {
        if (field.getValue() instanceof FudgeMsg) {
          final SimplePortfolioNode child = buildObjectImpl(deserializer, (FudgeMsg) field.getValue());
          child.setParentNodeId(node.getUniqueId());
          node.addChildNode(child);
        }
      }
    }
  }
View Full Code Here

  private static SimplePortfolioNode buildObjectImpl(final FudgeDeserializer deserializer, final FudgeMsg message) {
    final FudgeField idField = message.getByName(IDENTIFIER_FIELD_NAME);
    final UniqueId id = idField != null ? deserializer.fieldValueToObject(UniqueId.class, idField) : null;
    final String name = message.getFieldValue(String.class, message.getByName(NAME_FIELD_NAME));
    final SimplePortfolioNode node = new SimplePortfolioNode(name);
    if (id != null) {
      node.setUniqueId(id);
    }
    readPositions(deserializer, message.getFieldValue(FudgeMsg.class, message.getByName(POSITIONS_FIELD_NAME)), node);
    readSubNodes(deserializer, message.getFieldValue(FudgeMsg.class, message.getByName(SUBNODES_FIELD_NAME)), node);
    return node;
  }
View Full Code Here

    return node;
  }

  @Override
  public PortfolioNode buildObject(FudgeDeserializer deserializer, FudgeMsg message) {
    final SimplePortfolioNode node = buildObjectImpl(deserializer, message);
    final FudgeField parentField = message.getByName(PARENT_FIELD_NAME);
    final UniqueId parentId = (parentField != null) ? deserializer.fieldValueToObject(UniqueId.class, parentField) : null;
    if (parentId != null) {
      node.setParentNodeId(parentId);
    }
    return node;
  }
View Full Code Here

      }
    }

    @Override
    public PortfolioNode createPortfolioNode() {
      final SimplePortfolioNode node = new SimplePortfolioNode("Strategy " + _count);
      final Bundle bundle = createBundle();
      add(node, createFXBarrierOptionSecurityTrade(bundle, BigDecimal.ONE, getSecurityPersister(), getCounterPartyGenerator()));
      add(node, createFXDigitalOptionSecurityTrade(bundle, BigDecimal.ONE, getSecurityPersister(), getCounterPartyGenerator()));
      add(node, createFXForwardSecurityTrade(bundle, BigDecimal.ONE, getSecurityPersister(), getCounterPartyGenerator()));
      add(node, createFXOptionSecurityTrade(bundle, BigDecimal.ONE, getSecurityPersister(), getCounterPartyGenerator()));
      if (node.getPositions().isEmpty()) {
        return null;
      }
      _count++;
      return node;
    }
View Full Code Here

    }

    @SuppressWarnings("synthetic-access")
    @Override
    public PortfolioNode createPortfolioNode() {
      final SimplePortfolioNode node = new SimplePortfolioNode(_name);
      for (int i = 0; i < _securities.length; i++) {
        final ManageableTrade trade = new ManageableTrade(BigDecimal.ONE, getSecurityPersister().storeSecurity(_securities[i]), _tradeDates[i].toLocalDate(),
            _tradeDates[i].toOffsetDateTime().toOffsetTime(), ExternalId.of(Counterparty.DEFAULT_SCHEME, COUNTERPARTY));
        trade.setPremium(0.);
        trade.setPremiumCurrency(CURRENCY);
        final Position position = SimplePositionGenerator.createPositionFromTrade(trade);
        node.addPosition(position);
      }
      return node;
    }
View Full Code Here

    }

    @SuppressWarnings("synthetic-access")
    @Override
    public PortfolioNode createPortfolioNode() {
      final SimplePortfolioNode node = new SimplePortfolioNode("CM Cap/Floor");
      for (final Tenor tenor : _tenors) {
        for (final double strike : _strikes) {
          final CapFloorSecurity cap = createCapFloor(tenor, strike);
          final ManageableTrade trade = new ManageableTrade(BigDecimal.ONE, getSecurityPersister().storeSecurity(cap), _tradeDate.toLocalDate(),
              _tradeDate.toOffsetDateTime().toOffsetTime(), ExternalId.of(Counterparty.DEFAULT_SCHEME, COUNTERPARTY));
          trade.setPremium(0.);
          trade.setPremiumCurrency(CURRENCY);
          final Position position = SimplePositionGenerator.createPositionFromTrade(trade);
          node.addPosition(position);
        }
      }
      return node;
    }
View Full Code Here

TOP

Related Classes of com.opengamma.core.position.impl.SimplePortfolioNode

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.