Package com.opengamma.core.position

Examples of com.opengamma.core.position.Trade


  public void testTradeSpecific() {
    final DependencyGraphBuilder builder = createBuilder();
    final ViewCalculationConfiguration config = builder.getCompilationContext().getViewCalculationConfiguration();
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final Trade trade1 = getTrade(positions, "TradeAttr");
    config.setDefaultProperties(ValueProperties.with("TRADE.*.DEFAULT_ForwardCurve." + trade1.getUniqueId(), "BarForward")
        .with("TRADE.Present Value.DEFAULT_FundingCurve." + trade1.getUniqueId(), "BarFunding").get());
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(trade1), ValueProperties.none());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getTrade(positions, "Trade")), ValueProperties.none());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
View Full Code Here


  public void testTradeSpecificOverride() {
    final DependencyGraphBuilder builder = createBuilder();
    final ViewCalculationConfiguration config = builder.getCompilationContext().getViewCalculationConfiguration();
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final Trade trade1 = getTrade(positions, "TradeAttr");
    config.setDefaultProperties(ValueProperties.with("TRADE.Present Value.DEFAULT_ForwardCurve", "GenericForward").with("TRADE.*.DEFAULT_FundingCurve", "GenericFunding")
        .with("TRADE.*.DEFAULT_ForwardCurve." + trade1.getUniqueId(), "BarForward").with("TRADE.Present Value.DEFAULT_FundingCurve." + trade1.getUniqueId(), "BarFunding").get());
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(trade1), ValueProperties.none());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getTrade(positions, "Trade")), ValueProperties.none());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
View Full Code Here

  @Override
  public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target, final Set<ValueRequirement> desiredValues) {
    final Clock snapshotClock = executionContext.getValuationClock();
    final ZonedDateTime now = ZonedDateTime.now(snapshotClock);
    final Trade trade = target.getTrade();
    final IRFutureOptionSecurity security = (IRFutureOptionSecurity) trade.getSecurity();
    final ValueRequirement desiredValue = desiredValues.iterator().next();
    final Currency currency = FinancialSecurityUtils.getCurrency(security);
    final String curveCalculationConfigName = desiredValue.getConstraint(ValuePropertyNames.CURVE_CALCULATION_CONFIG);
    final ConfigSource configSource = OpenGammaExecutionContext.getConfigSource(executionContext);
    final ConfigDBCurveCalculationConfigSource curveCalculationConfigSource = new ConfigDBCurveCalculationConfigSource(configSource);
View Full Code Here

 
  @Override
  public Set<ComputedValue> execute(FunctionExecutionContext executionContext, FunctionInputs inputs, ComputationTarget target, Set<ValueRequirement> desiredValues) throws AsynchronousExecution {
   
    // Get security price (market value)
    final Trade trade = target.getTrade();
    final FutureSecurity security = (FutureSecurity) trade.getSecurity();
    final double price = (Double) inputs.getValue(new ValueRequirement(MarketDataRequirementNames.MARKET_VALUE, ComputationTargetType.SECURITY, security.getUniqueId()));
   
    // Get shift to price, if provided, and hence PNL
    final double pnl;
   
    ValueProperties constraints = desiredValues.iterator().next().getConstraints();
    String priceConstraint = constraints.getValues(s_priceShift).iterator().next();
    String priceShiftTypeConstraint = constraints.getValues(s_priceShiftType).iterator().next();
   
    if (priceConstraint.equals("")) {
      pnl = 0.0;
    } else {
     
      final Double priceShift = Double.valueOf(priceConstraint);
     
      if (priceShiftTypeConstraint.equals("Additive")) {
        // The shift is itself the pnl
        pnl = priceShift;
      } else if (priceShiftTypeConstraint.equals("Multiplicative")) {
        // The market value under shift, d = (1 + d ) * market_value, hence pnl = scenario_value - market_value = d * market_value
        pnl = priceShift * price;
      } else {
        s_logger.debug("Valid PriceShiftType's: Additive and Multiplicative. Found: " + priceShiftTypeConstraint + " Defaulting to Multiplicative.");
        pnl = priceShift * price;
      }
    }
    // Scale by unit notional of contract and trade size
    final Double scaledPnl = pnl * security.getUnitAmount() * trade.getQuantity().floatValue();
    // Return PNL with specification
    final ValueRequirement desiredValue = desiredValues.iterator().next();
    final ValueSpecification valueSpec = new ValueSpecification(getValueRequirementName(), target.toSpecification(), desiredValue.getConstraints());
    return Collections.singleton(new ComputedValue(valueSpec, scaledPnl));

View Full Code Here

    ConfigDBCurveCalculationConfigSource.reinitOnChanges(context, this);
  }

  @Override
  public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target, final Set<ValueRequirement> desiredValues) {
    final Trade trade = target.getTrade();
    final InterestRateFutureSecurity security = (InterestRateFutureSecurity) trade.getSecurity();
    final Clock snapshotClock = executionContext.getValuationClock();
    final ZonedDateTime now = ZonedDateTime.now(snapshotClock);
    final ValueRequirement desiredValue = desiredValues.iterator().next();
    final String curveCalculationConfigName = desiredValue.getConstraint(ValuePropertyNames.CURVE_CALCULATION_CONFIG);
    final String daysForward = desiredValue.getConstraint(PROPERTY_DAYS_TO_MOVE_FORWARD);
View Full Code Here

        .get();
    final ValueProperties curveProperties = ValueProperties
        .with(CURVE, curveNames)
        .get();
    final UnorderedCurrencyPair ccyPair = UnorderedCurrencyPair.of(payCurrency, receiveCurrency);
    final Trade trade = Iterables.getOnlyElement(target.getPosition().getTrades());
    requirements.add(new ValueRequirement(CURVE_SPECIFICATION, ComputationTargetSpecification.NULL, curveProperties));
    requirements.add(ConventionBasedFXRateFunction.getSpotRateRequirement(ccyPair));
    requirements.add(new ValueRequirement(YIELD_CURVE_NODE_SENSITIVITIES, ComputationTargetSpecification.of(trade), properties));
    requirements.add(new ValueRequirement(CURVE_HISTORICAL_TIME_SERIES, ComputationTargetSpecification.NULL, tsProperties));
    requirements.add(new ValueRequirement(CURRENCY_PAIRS, ComputationTargetSpecification.NULL, ValueProperties.none()));
View Full Code Here

  }

  @Override
  public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target, final Set<ValueRequirement> desiredValues) {
    // 1. Build the analytic derivative to be priced
    final Trade trade = target.getTrade();
    final FutureSecurity security = (FutureSecurity) trade.getSecurity();

    final HistoricalTimeSeriesBundle timeSeriesBundle = HistoricalTimeSeriesFunctionUtils.getHistoricalTimeSeriesInputs(executionContext, inputs);
    Double lastMarginPrice = null;
    try {
      lastMarginPrice = timeSeriesBundle.get(MarketDataRequirementNames.MARKET_VALUE, security.getExternalIdBundle()).getTimeSeries().getLatestValue();
View Full Code Here

        .get();
    final ValueProperties curveProperties = ValueProperties
        .with(CURVE, fxForwardCurveName)
        .get();
    final UnorderedCurrencyPair ccyPair = UnorderedCurrencyPair.of(payCurrency, receiveCurrency);
    final Trade trade = Iterables.getOnlyElement(target.getPosition().getTrades());
    requirements.add(new ValueRequirement(CURVE_SPECIFICATION, ComputationTargetSpecification.NULL, curveProperties));
    requirements.add(ConventionBasedFXRateFunction.getSpotRateRequirement(ccyPair));
    requirements.add(new ValueRequirement(FX_FORWARD_POINTS_NODE_SENSITIVITIES, ComputationTargetSpecification.of(trade), properties));
    requirements.add(new ValueRequirement(CURVE_HISTORICAL_TIME_SERIES, ComputationTargetSpecification.NULL, tsProperties));
    requirements.add(new ValueRequirement(CURRENCY_PAIRS, ComputationTargetSpecification.NULL, ValueProperties.none()));
View Full Code Here

  }

  @Override
  public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target,
      final Set<ValueRequirement> desiredValues) {
    final Trade trade = target.getTrade();
    final FinancialSecurity security = (FinancialSecurity) trade.getSecurity();
    final Clock snapshotClock = executionContext.getValuationClock();
    final ZonedDateTime now = ZonedDateTime.now(snapshotClock);
    final ValueRequirement desiredValue = desiredValues.iterator().next();
    final String curveName = desiredValue.getConstraint(ValuePropertyNames.CURVE);
    final String currency = FinancialSecurityUtils.getCurrency(security).getCode();
View Full Code Here

    return ComputationTargetType.TRADE;
  }

  @Override
  public boolean canApplyTo(final FunctionCompilationContext context, final ComputationTarget target) {
    final Trade trade = target.getTrade();
    final Security security = trade.getSecurity();
    return security instanceof BondSecurity || security instanceof BondFutureSecurity;
  }
View Full Code Here

TOP

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

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.