Examples of CEVFunctionData


Examples of com.opengamma.analytics.financial.model.option.pricing.analytic.formula.CEVFunctionData

            final double w = Math.min(1.0, 1.0 / nu / Math.sqrt(t));
            sigmaBlend = 1.0 / (w / sigmaBBF + (1 - w) / sigmaTrunc);
          }
          sigmaBlend *= 1 + (rho * nu * sigmaDD / 4 + (2 - 3 * rho * rho) * nu * nu / 24) * t;
          final double sigmaCEV = sigmaBlend * Math.pow(forward, 1 - beta) / beta;
          final CEVFunctionData cevData = new CEVFunctionData(forward, 1, sigmaCEV, beta);
          final double price = priceFunction.evaluate(cevData);
          return BLACK_IMPLIED_VOL.getImpliedVolatility(new BlackFunctionData(forward, 1, sigmaCEV), option, price);
        }
        throw new NotImplementedException("Have not implemented the case where b <= 0");
      }
View Full Code Here

Examples of com.opengamma.analytics.financial.model.option.pricing.analytic.formula.CEVFunctionData

    final EuropeanVanillaOption option = new EuropeanVanillaOption(strike, timeToExiry, true);
    final CEVPriceFunction func = new CEVPriceFunction();
    final Function1D<CEVFunctionData, Double> priceFunc = func.getPriceFunction(option);
    double sum = 0;
    for (final double sigma : sigmas) {
      final CEVFunctionData data = new CEVFunctionData(forward, df, sigma, beta);
      sum += priceFunc.evaluate(data);
    }
    return sum / sigmas.length;
  }
View Full Code Here

Examples of com.opengamma.analytics.financial.model.option.pricing.analytic.formula.CEVFunctionData

    final CEVPriceFunction func = new CEVPriceFunction();
    final Function1D<CEVFunctionData, Double> priceFunc = func.getPriceFunction(option);
    double sum = 0;

    for (int i = 0; i < _weights.length; i++) {
      final CEVFunctionData data = new CEVFunctionData(forward, df, _vols[i], beta);
      sum += _weights[i] * priceFunc.evaluate(data);
    }

    return sum;
  }
View Full Code Here

Examples of com.opengamma.analytics.financial.model.option.pricing.analytic.formula.CEVFunctionData

          impVol = BLACK_IMPLIED_VOL.getImpliedVolatility(data, OPTION, price);
        } catch (final Exception e) {
          impVol = 0.0;
        }

        final CEVFunctionData cevData = new CEVFunctionData(fwd, df, VOL_BETA, BETA);
        final double cevPrice = CEV.getPriceFunction(OPTION).evaluate(cevData);
        final double cevVol = BLACK_IMPLIED_VOL.getImpliedVolatility(data, OPTION, cevPrice);

        if (print) {
          System.out.println(fwd + "\t" + cevPrice + "\t" + price + "\t" + cevVol + "\t" + impVol);
View Full Code Here

Examples of com.opengamma.analytics.financial.model.option.pricing.analytic.formula.CEVFunctionData

      }
    };

    final LocalVolatilitySurfaceStrike volSurf = new LocalVolatilitySurfaceStrike(FunctionalDoublesSurface.from(vol));
    final EuropeanVanillaOption option = new EuropeanVanillaOption(k, T, isCall);
    final CEVFunctionData data = new CEVFunctionData(fwd, df, sigma, beta);

    final Function1D<CEVFunctionData, Double> priceFunc = cev.getPriceFunction(option);
    final double cevPrice = priceFunc.evaluate(data);

    double pdePrice = PRICER.price(FWD_CURVE, RISK_FREE_CURVE, option, volSurf, isCall, xNodes, tNodes);
View Full Code Here

Examples of com.opengamma.analytics.financial.model.option.pricing.analytic.formula.CEVFunctionData

  public void testCEV() {
    final GeneralLogNormalOptionDataBundle data = new GeneralLogNormalOptionDataBundle(YIELD_CURVE, DRIFTLESS, new VolatilitySurface(FunctionalDoublesSurface.from(CEV_LOCAL_VOL)), FORWARD, DATE);
    final RecombiningBinomialTree<BinomialTreeNode<Double>> assetPriceTree = BUILDER.buildAssetTree(T, data, 200);
    RecombiningBinomialTree<BinomialTreeNode<Double>> optionPriceTree = BUILDER.buildOptionPriceTree(OPTION, data, assetPriceTree);
    EuropeanVanillaOption o = new EuropeanVanillaOption(FORWARD, T, true);
    final CEVFunctionData cfd = new CEVFunctionData(FORWARD, YIELD_CURVE.getDiscountFactor(T), SIGMA_BETA, BETA);

    for (int i = 0; i < 10; i++) {
      final double m = -1.5 + 3.0 * i / 10.0;
      final double strike = FORWARD * Math.exp(ATM_VOL * Math.sqrt(T) * m);
      final OptionDefinition option = new EuropeanVanillaOptionDefinition(strike, OPTION.getExpiry(), OPTION.isCall());
View Full Code Here

Examples of com.opengamma.analytics.financial.model.option.pricing.analytic.formula.CEVFunctionData

      final double m = -1.5 + 3.0 * i / 10.0;
      final double strike = FORWARD * Math.exp(ATM_VOL * Math.sqrt(T) * m);
      final OptionDefinition option = new EuropeanVanillaOptionDefinition(strike, OPTION.getExpiry(), OPTION.isCall());
      optionPriceTree = BUILDER.buildOptionPriceTree(option, data, assetPriceTree);
      final EuropeanVanillaOption o = new EuropeanVanillaOption(strike, T, true);
      final CEVFunctionData cfd = new CEVFunctionData(FORWARD, YIELD_CURVE.getDiscountFactor(T), SIGMA_BETA, BETA);
      final double cevPrice = CEV_PRICE.getPriceFunction(o).evaluate(cfd);
      final double cevVol = BLACK_IMPLIED_VOL.getImpliedVolatility(new BlackFunctionData(FORWARD, YIELD_CURVE.getDiscountFactor(T), SIGMA_BETA), o, cevPrice);
      final double impVol = BLACK_IMPLIED_VOL.getImpliedVolatility(new BlackFunctionData(FORWARD, YIELD_CURVE.getDiscountFactor(T), SIGMA_BETA), o, optionPriceTree.getNode(0, 0).getValue());
      //final double cevPrice = CEVFormula.optionPrice(FORWARD, strike, BETA, df, SIGMA_BETA, T, true);
      //final double cevVol = BlackImpliedVolFormula.impliedVol(cevPrice, FORWARD, strike, df, T, true);
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.