Examples of EquityOptionSecurity


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

    assertNull(ids);
  }

  @Test
  public void testEquityOptionSecurity() {
    final EquityOptionSecurity security = ExposureFunctionTestHelper.getEquityOptionSecurity();
    final List<ExternalId> ids = security.accept(EXPOSURE_FUNCTION);
    assertNull(ids);
  }
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

  @Test
  public void testEquityOptionSecurity() {
    final EquitySecurity underlying = ExposureFunctionTestHelper.getEquitySecurity();
    final ExposureFunction exposureFunction = new ContractCategoryExposureFunction(ExposureFunctionTestHelper.getSecuritySource(underlying));
    final EquityOptionSecurity security = ExposureFunctionTestHelper.getEquityOptionSecurity();
    final List<ExternalId> ids = security.accept(exposureFunction);
    assertNull(ids);
  }
View Full Code Here

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

    assertNull(ids);
  }

  @Test
  public void testEquityOptionSecurity() {
    final EquityOptionSecurity security = ExposureFunctionTestHelper.getEquityOptionSecurity();
    final List<ExternalId> ids = security.accept(EXPOSURE_FUNCTION);
    assertNull(ids);
  }
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(getVolatilitySurfaceMarketDataRequirement(option, curveName));
    return requirements;
  }
View Full Code Here

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

  private static final Function2D<Double, Double> SKEW_CALCULATOR = new LognormalSkewnessFromVolatilityCalculator();
  private static final Function2D<Double, Double> KURTOSIS_CALCULATOR = new LognormalPearsonKurtosisFromVolatilityCalculator();

  @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 UniqueId uid = option.getUniqueId();
    final ZonedDateTime now = ZonedDateTime.now(Clock.systemUTC());
    final Expiry expiry = option.getExpiry();
    final double t = DateUtils.getDifferenceInYears(now, expiry.getExpiry());
    final VolatilitySurface surface = (VolatilitySurface) inputs.getValue(getVolatilitySurfaceRequirement(option));
    final double volatility = surface.getVolatility(Pair.of(t, option.getStrike()));
    final double skew = SKEW_CALCULATOR.evaluate(volatility, t);
    final double pearson = KURTOSIS_CALCULATOR.evaluate(volatility, t);
    final double fisher = pearson - 3;
    final Set<ComputedValue> results = new HashSet<ComputedValue>();
    final ComputationTargetSpecification targetSpec = target.toSpecification();
View Full Code Here

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

  public Set<ComputedValue> execute(FunctionExecutionContext executionContext, FunctionInputs inputs, ComputationTarget target, Set<ValueRequirement> desiredValues) throws AsynchronousExecution {
   
    // The Security itself is the ComputationTarget. From it, we get strike and expiry information to compute implied volatility
    // The types we're concerned about: EquityOptionSecurity, EquityIndexOptionSecurity, EquityIndexFutureOptionSecurity
    // For which the strings are: EQUITY_OPTION, EQUITY_INDEX_OPTION, EQUITY_INDEX_FUTURE_OPTION
    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

    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();
    return Collections.singleton(new ValueRequirement(ValueRequirementNames.YIELD_CURVE, ComputationTargetSpecification.of(option.getCurrency()),
        ValueProperties.with(ValuePropertyNames.CURVE, curveName).get()));
  }
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 now = ZonedDateTime.now(executionContext.getValuationClock());
    final EquityOptionSecurity option = (EquityOptionSecurity) target.getSecurity();
    final Object curveObject = inputs.getValue(ValueRequirementNames.YIELD_CURVE);
    if (curveObject == null) {
      throw new NullPointerException("Could not get yield curve for option");
    }
    final YieldAndDiscountCurve curve = (YieldAndDiscountCurve) curveObject;
    final Expiry expiry = option.getExpiry();
    final double t = DateUtils.getDifferenceInYears(now, expiry.getExpiry());
    final double b = curve.getInterestRate(t);
    return Collections.singleton(new ComputedValue(new ValueSpecification(ValueRequirementNames.COST_OF_CARRY, target.toSpecification(), createValueProperties().with(ValuePropertyNames.CURVE,
        desiredValues.iterator().next().getConstraint(ValuePropertyNames.CURVE)).get()), b));
  }
View Full Code Here

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

    return FinancialSecurityTypes.EQUITY_OPTION_SECURITY;
  }

  @Override
  public boolean canApplyTo(final FunctionCompilationContext context, final ComputationTarget target) {
    final EquityOptionSecurity optionSecurity = (EquityOptionSecurity) target.getSecurity();
    if (optionSecurity.getExerciseType() instanceof AmericanExerciseType) {
      return true;
    }
    return false;
  }
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.