Examples of EquityOptionSecurity


Examples of com.opengamma.financial.security.option.EquityOptionSecurity

      if (exchangeMIC != null) {
        exchange = exchangeMIC;
      }
    }

    final EquityOptionSecurity security = new EquityOptionSecurity(
        optionType,
        optionStrikePrice,
        ogCurrency,
        ExternalSchemes.bloombergTickerSecurityId(underlingTicker),
        exerciseType,
        expiry,
        pointValue,
        exchange);
    security.setExternalIdBundle(ExternalIdBundle.of(identifiers));
    security.setUniqueId(BloombergSecurityProvider.createUniqueId(bbgUniqueID));
    //build option display name
    StringBuilder buf = new StringBuilder(rootTicker);
    buf.append(" ");
    buf.append(expiryDate);
    if (optionType == OptionType.CALL) {
      buf.append(" C ");
    } else {
      buf.append(" P ");
    }
    buf.append(optionStrikePrice);
    security.setName(buf.toString());
    return security;
  }
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

public class PractitionerBlackScholesVolatilitySurfaceFunction extends AbstractFunction.NonCompiledInvoker {

  @Override
  public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target, final Set<ValueRequirement> desiredValues) {
    final ZonedDateTime now = ZonedDateTime.now(Clock.systemUTC());
    final EquityOptionSecurity option = (EquityOptionSecurity) target.getSecurity();
    final ValueRequirement underlyingPriceRequirement = getPriceRequirement(option.getUnderlyingId());
    final ValueRequirement discountCurveDataRequirement = getDiscountCurveMarketDataRequirement(option.getCurrency());
    final YieldAndDiscountCurve discountCurve = (YieldAndDiscountCurve) inputs.getValue(discountCurveDataRequirement);
    final double spotPrice = (Double) inputs.getValue(underlyingPriceRequirement);
    final Expiry expiry = option.getExpiry();
    final double t = DateUtils.getDifferenceInYears(now, expiry.getExpiry());
    final double b = discountCurve.getInterestRate(t); // TODO cost-of-carry model
    @SuppressWarnings("unused")
    final StandardOptionDataBundle data = new StandardOptionDataBundle(discountCurve, b, null, spotPrice, now);
    // TODO Map<OptionDefinition, Double> of options that will be used to form surface
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

    return Collections.singleton(result);
  }

  @Override
  public Set<ValueRequirement> getRequirements(final FunctionCompilationContext context, final ComputationTarget target, final ValueRequirement desiredValue) {
    final EquityOptionSecurity option = (EquityOptionSecurity) target.getSecurity();
    // TODO: need most liquid options on same underlying OR all options around the strike + time to expiry of this
    // option
    // TODO: need to make sure that these options surround the time to expiry and strike of this option
    // TODO: the surface need only be calculated once per _underlying_, not individual option (as long as point 2
    // above holds)
    final Set<ValueRequirement> optionRequirements = new HashSet<ValueRequirement>();
    optionRequirements.add(getPriceRequirement(option.getUnderlyingId()));
    optionRequirements.add(getDiscountCurveMarketDataRequirement(option.getCurrency()));
    // TODO: add the other stuff
    return optionRequirements;
  }
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

    assertEquals(ExternalId.of(ExposureFunction.SECURITY_IDENTIFIER, "EQUITY_INDEX_OPTION_X"), ids.get(0));
  }

  @Test
  public void testEquityOptionSecurity() {
    final EquityOptionSecurity security = ExposureFunctionTestHelper.getEquityOptionSecurity();
    final List<ExternalId> ids = security.accept(EXPOSURE_FUNCTION);
    assertEquals(1, ids.size());
    assertEquals(ExternalId.of(ExposureFunction.SECURITY_IDENTIFIER, "EQUITY_OPTION_X"), ids.get(0));
  }
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

    final double strike;
    final Expiry expiry;
    final boolean isCall;
    final Security security = target.getSecurity();
    if (security instanceof EquityOptionSecurity) {
      final EquityOptionSecurity option = (EquityOptionSecurity) security;
      strike = option.getStrike();
      expiry = option.getExpiry();
      isCall = option.getOptionType().equals(OptionType.CALL);
    } else if (security instanceof EquityIndexOptionSecurity) {
      final EquityIndexOptionSecurity option = (EquityIndexOptionSecurity) security;
      strike = option.getStrike();
      expiry = option.getExpiry();
      isCall = option.getOptionType().equals(OptionType.CALL);
    } else if (security instanceof EquityIndexFutureOptionSecurity) {
      final EquityIndexFutureOptionSecurity option = (EquityIndexFutureOptionSecurity) security;
      strike = option.getStrike();
      expiry = option.getExpiry();
      isCall = option.getOptionType().equals(OptionType.CALL);
    } else {
      throw new OpenGammaRuntimeException("Security type not handled," + security.getName());
    }
    if (expiry.getAccuracy().equals(ExpiryAccuracy.MONTH_YEAR) || expiry.getAccuracy().equals(ExpiryAccuracy.YEAR)) {
      throw new OpenGammaRuntimeException("There is ambiguity in the expiry date of the target security.");
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

  protected BlackVolatilitySurface<?> getVolatilitySurface(final FunctionExecutionContext executionContext,
      final FunctionInputs inputs, final ComputationTarget target) {

    // From the Security, we get strike and expiry information to compute implied volatility
    // TODO: INDUSTRIALISE: The types we're concerned about: EquityOptionSecurity, EquityIndexOptionSecurity, EquityIndexFutureOptionSecurity
    final EquityOptionSecurity security = (EquityOptionSecurity) target.getSecurity();
    final double strike = security.getStrike();
    final Expiry expiry = security.getExpiry();
    if (expiry.getAccuracy().equals(ExpiryAccuracy.MONTH_YEAR) || expiry.getAccuracy().equals(ExpiryAccuracy.YEAR)) {
      throw new OpenGammaRuntimeException("There is ambiguity in the expiry date of the target security.");
    }
    final ZonedDateTime expiryDate = expiry.getExpiry();
    final ZonedDateTime valuationDT = ZonedDateTime.now(executionContext.getValuationClock());
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

  }

  public void testDuplicateSecurities() {
    final Impl impl = new Impl();
    ZonedDateTime now = ZonedDateTime.now();
    final EquityOptionSecurity security1 =
        new EquityOptionSecurity(OptionType.CALL, 1.0, Currency.USD, ExternalId.of("S", "V"),
                                 new AmericanExerciseType(), new Expiry(now), 1.0, "EXCH");
    final EquityOptionSecurity security2 =
        new EquityOptionSecurity(OptionType.CALL, 1.0, Currency.USD, ExternalId.of("S", "V"),
                                 new AmericanExerciseType(), new Expiry(now), 1.0, "EXCH");
    final ExternalIdBundle identifiers1 = impl.storeSecurity(security1);
    assertSame(impl._security, security1);
    assertEquals(security1.getExternalIdBundle(), identifiers1);
    impl._security = null;
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

    assertSame(identifiers2, identifiers1);
  }

  public void testDifferentSecurities() {
    final Impl impl = new Impl();
    final EquityOptionSecurity security1 = new EquityOptionSecurity(OptionType.CALL, 1.0, Currency.USD, ExternalId.of("S", "V1"), new AmericanExerciseType(), new Expiry(ZonedDateTime.now()), 1.0,
        "EXCH");
    final EquityOptionSecurity security2 = new EquityOptionSecurity(OptionType.CALL, 1.0, Currency.USD, ExternalId.of("S", "V2"), new AmericanExerciseType(), new Expiry(ZonedDateTime.now()), 1.0,
        "EXCH");
    final ExternalIdBundle identifiers1 = impl.storeSecurity(security1);
    assertSame(impl._security, security1);
    assertEquals(security1.getExternalIdBundle(), identifiers1);
    impl._security = null;
    final ExternalIdBundle identifiers2 = impl.storeSecurity(security2);
    assertSame(impl._security, security2);
    assertEquals(security2.getExternalIdBundle(), identifiers2);
    assertFalse(identifiers1.equals(identifiers2));
  }
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

    security.setUniqueId(createUniqueId("Security"));
    return security;
  }

  protected Security createEquityOptionSecurity(final String name, final OptionType type, final double strike, final ExternalId underlying) {
    final EquityOptionSecurity security = new EquityOptionSecurity(type, strike, Currency.USD, underlying, new AmericanExerciseType(),
        new Expiry(zdt(2010, 10, 10, 12, 0, 0, 0, ZoneOffset.UTC)), 0d, "EXCH");
    security.setExternalIdBundle(createExternalIdBundle());
    security.setName(name);
    security.setUniqueId(createUniqueId("Security"));
    return security;
  }
View Full Code Here

Examples of com.opengamma.financial.security.option.EquityOptionSecurity

    assertEquals(ExternalId.of(security.getUniqueId().getScheme(), security.getUniqueId().getValue()), ids.get(0));
  }

  @Test
  public void testEquityOptionSecurity() {
    final EquityOptionSecurity security = ExposureFunctionTestHelper.getEquityOptionSecurity();
    final List<ExternalId> ids = security.accept(EXPOSURE_FUNCTION);
    assertEquals(1, ids.size());
    assertEquals(ExternalId.of(security.getUniqueId().getScheme(), security.getUniqueId().getValue()), ids.get(0));
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.