Examples of EquityOptionSecurity


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

@Deprecated
public abstract class AnalyticOptionModelFunction extends AbstractFunction.NonCompiledInvoker {

  @Override
  public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target, final Set<ValueRequirement> desiredValues) {
    final EquityOptionSecurity option = (EquityOptionSecurity) target.getSecurity();
    final StandardOptionDataBundle data = getDataBundle(executionContext.getValuationClock(), option, inputs);
    final OptionDefinition definition = getOptionDefinition(option);
    final Set<Greek> requiredGreeks = new HashSet<Greek>();
    for (final ValueRequirement dV : desiredValues) {
      final Greek desiredGreek = AvailableGreeks.getGreekForValueRequirement(dV);
View Full Code Here

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

    return new ValueSpecification(valueName, target.toSpecification(), properties.get());
  }

  @Override
  public Set<ValueSpecification> getResults(final FunctionCompilationContext context, final ComputationTarget target) {
    final EquityOptionSecurity security = (EquityOptionSecurity) target.getSecurity();
    final Set<ValueSpecification> results = new HashSet<ValueSpecification>();
    for (final String valueName : AvailableGreeks.getAllGreekNames()) {
      results.add(getResultSpecification(valueName, target, security, null));
    }
    return results;
View Full Code Here

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

    final Set<String> curveNames = desiredValue.getConstraints().getValues(ValuePropertyNames.CURVE);
    if ((curveNames == null) || (curveNames.size() != 1)) {
      return null;
    }
    final String curveName = curveNames.iterator().next();
    final EquityOptionSecurity option = (EquityOptionSecurity) target.getSecurity();
    final Set<ValueRequirement> requirements = new HashSet<ValueRequirement>();
    requirements.add(getUnderlyingMarketDataRequirement(option.getUnderlyingId()));
    requirements.add(getYieldCurveMarketDataRequirement(option.getCurrency(), curveName));
    requirements.add(getVolatilitySurfaceMarketDataRequirement(option, curveName));
    requirements.add(getCostOfCarryMarketDataRequirement(option.getUniqueId(), curveName));
    return requirements;
  }
View Full Code Here

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

    final Set<String> curveNames = desiredValue.getConstraints().getValues(ValuePropertyNames.CURVE);
    if ((curveNames == null) || (curveNames.size() != 1)) {
      return null;
    }
    final String curveName = curveNames.iterator().next();
    final EquityOptionSecurity optionSec = (EquityOptionSecurity) target.getSecurity();
    final ValueRequirement optionMarketDataReq = getPriceRequirement(optionSec.getUniqueId());
    final ValueRequirement underlyingMarketDataReq = getPriceRequirement(optionSec.getUnderlyingId());
    final ValueRequirement discountCurveReq = getDiscountCurveMarketDataRequirement(optionSec.getCurrency(), curveName);
    // TODO will need a cost-of-carry model as well
    final Set<ValueRequirement> optionRequirements = new HashSet<ValueRequirement>();
    optionRequirements.add(optionMarketDataReq);
    optionRequirements.add(underlyingMarketDataReq);
    optionRequirements.add(discountCurveReq);
View Full Code Here

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

  }

  @Override
  public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target, final Set<ValueRequirement> desiredValues) {
    final ZonedDateTime today = ZonedDateTime.now(executionContext.getValuationClock());
    final EquityOptionSecurity optionSec = (EquityOptionSecurity) target.getSecurity();

    // Get inputs:
    final ValueRequirement optionPriceReq = getPriceRequirement(optionSec.getUniqueId());
    final ValueRequirement underlyingPriceReq = getPriceRequirement(optionSec.getUnderlyingId());

    final Double optionPrice = (Double) inputs.getValue(optionPriceReq);
    final Double underlyingPrice = (Double) inputs.getValue(underlyingPriceReq);
    final YieldAndDiscountCurve discountCurve = (YieldAndDiscountCurve) inputs.getValue(ValueRequirementNames.YIELD_CURVE);
    // TODO cost-of-carry model
    if (optionPrice == null) {
      throw new OpenGammaRuntimeException("No market value for option price");
    }
    if (underlyingPrice == null) {
      throw new OpenGammaRuntimeException("No market value for underlying price");
    }

    // Perform the calculation:
    final Expiry expiry = optionSec.getExpiry();
    final double years = DateUtils.getDifferenceInYears(today, expiry.getExpiry());
    final double b = discountCurve.getInterestRate(years); // TODO
    final OptionDefinition europeanVanillaOptionDefinition = new EuropeanVanillaOptionDefinition(optionSec.getStrike(), expiry, (optionSec.getOptionType() == OptionType.CALL));
    final Map<OptionDefinition, Double> prices = new HashMap<OptionDefinition, Double>();
    prices.put(europeanVanillaOptionDefinition, optionPrice);
    final VolatilitySurface volatilitySurface = _volatilitySurfaceModel.getSurface(prices, new StandardOptionDataBundle(discountCurve, b, null, underlyingPrice, today));

    //This is so cheap no need to check desired values
View Full Code Here

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

  static void assertAmericanVanillaEquityOptionSecurity(EquityOptionSecurity expectedOption, Security sec) {
    // check specific bits we want to spot failures on quickly
    assertNotNull(sec);
    assertTrue(sec instanceof EquityOptionSecurity);
    final EquityOptionSecurity equitySec = (EquityOptionSecurity) sec;
    assertTrue(equitySec.getExerciseType() instanceof AmericanExerciseType);
    assertEquityOptionSecurity(expectedOption, sec);
  }
View Full Code Here

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

  public static EquityOptionSecurity makeAPVLEquityOptionSecurity() {
    OptionType optionType = OptionType.CALL;
    double strike = 190.0;
    Expiry expiry = new Expiry(DateUtils.getUTCDate(2010, 01, 16));
    ExternalId underlyingIdentifier = ExternalSchemes.bloombergTickerSecurityId(AAPL_EQUITY_TICKER);
    final EquityOptionSecurity security = new EquityOptionSecurity(optionType, strike, USD, underlyingIdentifier, new AmericanExerciseType(), expiry, 100, "US");

    Set<ExternalId> identifiers = new HashSet<>();
    identifiers.add(ExternalSchemes.bloombergTickerSecurityId(APV_EQUITY_OPTION_TICKER));
    identifiers.add(ExternalSchemes.bloombergBuidSecurityId("EO1016952010010397C00001"));
    security.setExternalIdBundle(ExternalIdBundle.of(identifiers));
    security.setUniqueId(BloombergSecurityProvider.createUniqueId("EO1016952010010397C00001"));
    security.setName("APV 2010-01-16 C 190.0");

    return security;
  }
View Full Code Here

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

  }

  static void assertEquityOptionSecurity(EquityOptionSecurity expectedOption, Security sec) {
    assertNotNull(expectedOption);
    assertNotNull(sec);
    EquityOptionSecurity actualOption = (EquityOptionSecurity) sec;
    assertEquals(expectedOption.getExternalIdBundle(), actualOption.getExternalIdBundle());
    assertEquals(expectedOption.getUniqueId(), actualOption.getUniqueId());
    assertEquals(expectedOption.getSecurityType(), actualOption.getSecurityType());
    assertEquals(expectedOption.getCurrency(), actualOption.getCurrency());
    assertEquals(expectedOption.getOptionType(), actualOption.getOptionType());
    assertTrue(expectedOption.getStrike() == actualOption.getStrike());
    assertEquals(expectedOption.getExpiry(), actualOption.getExpiry());
    assertEquals(expectedOption.getUnderlyingId(), actualOption.getUnderlyingId());
    assertEquals(expectedOption.getName(), actualOption.getName());
    // check the lot
    assertSecurity(expectedOption, sec);
  }
View Full Code Here

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

  static void assertEuropeanVanillaEquityOptionSecurity(EquityOptionSecurity expectedOption, Security sec) {
    // check specific bits we want to spot failures on quickly
    assertNotNull(sec);
    assertTrue(sec instanceof EquityOptionSecurity);
    final EquityOptionSecurity equitySec = (EquityOptionSecurity) sec;
    assertTrue(equitySec.getExerciseType() instanceof EuropeanExerciseType);
    assertEquityOptionSecurity(expectedOption, sec);
  }
View Full Code Here

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

  }

  public void testUnderlyingExpression () {
    final InMemorySecuritySource securities = new InMemorySecuritySource();
    securities.addSecurity(_fooEquity);
    final EquityOptionSecurity fooOption = new EquityOptionSecurity (OptionType.PUT, 10d, Currency.USD, ExternalId.of("Test", "FooEquity"),
        new AmericanExerciseType(), new Expiry(zdt(2020, 11, 25, 12, 0, 0, 0, ZoneOffset.UTC)), 42d, "EXCH");
    fooOption.addExternalId(ExternalId.of("Test", "FooOption"));
    securities.addSecurity(fooOption);
    final MarketDataELCompiler compiler = new MarketDataELCompiler();
    Object result = compiler.compile("security.underlyingId", new DefaultComputationTargetResolver(securities).atVersionCorrection(VersionCorrection.LATEST)).apply(
        new ValueRequirement("Foo", ComputationTargetSpecification.of(fooOption)), null);
    assertEquals(result, ExternalId.of("Test", "FooEquity"));
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.