Examples of SABRFormulaData


Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

      final DoublesPair expiryMaturity = new DoublesPair(_timeToExpiry, _maturity);
      final double alpha = sabrParameter.getAlpha(expiryMaturity);
      final double beta = sabrParameter.getBeta(expiryMaturity);
      final double rho = sabrParameter.getRho(expiryMaturity);
      final double nu = sabrParameter.getNu(expiryMaturity);
      _sabrData = new SABRFormulaData(alpha, beta, rho, nu);
      _sabrFunction = sabrParameter.getSabrFunction();
      _isCall = cmsCap.isCap();
      _strike = cmsCap.getStrike();
      _factor = g(_forward) / h(_forward);
    }
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

      final DoublesPair expiryMaturity = new DoublesPair(cap.getFixingTime(), maturity);
      final double alpha = sabr.getSABRParameter().getAlpha(expiryMaturity);
      final double beta = sabr.getSABRParameter().getBeta(expiryMaturity);
      final double rho = sabr.getSABRParameter().getRho(expiryMaturity);
      final double nu = sabr.getSABRParameter().getNu(expiryMaturity);
      final SABRFormulaData sabrParam = new SABRFormulaData(alpha, beta, rho, nu);
      sabrExtrapolation = new SABRExtrapolationRightFunction(forward, sabrParam, _cutOffStrike, cap.getFixingTime(), _mu);
      price = df * sabrExtrapolation.price(option) * cap.getNotional() * cap.getPaymentYearFraction();
    }
    return MultipleCurrencyAmount.of(cap.getCurrency(), price);
  }
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

      final DoublesPair expiryMaturity = new DoublesPair(cap.getFixingTime(), maturity);
      final double alpha = sabr.getSABRParameter().getAlpha(expiryMaturity);
      final double beta = sabr.getSABRParameter().getBeta(expiryMaturity);
      final double rho = sabr.getSABRParameter().getRho(expiryMaturity);
      final double nu = sabr.getSABRParameter().getNu(expiryMaturity);
      final SABRFormulaData sabrParam = new SABRFormulaData(alpha, beta, rho, nu);
      final SABRExtrapolationRightFunction sabrExtrapolation = new SABRExtrapolationRightFunction(forward, sabrParam, _cutOffStrike, cap.getFixingTime(), _mu);
      bsPrice = sabrExtrapolation.price(option);
      bsDforward = sabrExtrapolation.priceDerivativeForward(option);
    }
    result = result.multipliedBy(bsPrice);
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

      final DoublesPair expiryMaturity = new DoublesPair(cap.getFixingTime(), maturity);
      final double alpha = sabr.getSABRParameter().getAlpha(expiryMaturity);
      final double beta = sabr.getSABRParameter().getBeta(expiryMaturity);
      final double rho = sabr.getSABRParameter().getRho(expiryMaturity);
      final double nu = sabr.getSABRParameter().getNu(expiryMaturity);
      final SABRFormulaData sabrParam = new SABRFormulaData(alpha, beta, rho, nu);
      final SABRExtrapolationRightFunction sabrExtrapolation = new SABRExtrapolationRightFunction(forward, sabrParam, _cutOffStrike, cap.getFixingTime(), _mu);
      sabrExtrapolation.priceAdjointSABR(option, bsDsabr);
    }
    final PresentValueSABRSensitivityDataBundle sensi = new PresentValueSABRSensitivityDataBundle();
    final DoublesPair expiryMaturity = new DoublesPair(cap.getFixingTime(), maturity);
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

   * @param timeToExpiry The time-to-expiry
   * @return The (Black) volatility
   */
  @Override
  public double getVolatility(final double fwd, final double strike, final double timeToExpiry) {
    final SABRFormulaData data = new SABRFormulaData(getAlpha(timeToExpiry), getBeta(timeToExpiry), getRho(timeToExpiry), getNu(timeToExpiry));
    final EuropeanVanillaOption option = new EuropeanVanillaOption(strike, timeToExpiry, true);
    final Function1D<SABRFormulaData, Double> func = _sabrFunction.getVolatilityFunction(option, fwd);
    double vol = func.evaluate(data);
    //The SABR Hagan formula can produce negative vols
    return Math.max(0, vol);
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

    final double alpha = sabrParameter.getAlpha(expiryMaturity);
    final double beta = sabrParameter.getBeta(expiryMaturity);
    final double rho = sabrParameter.getRho(expiryMaturity);
    final double nu = sabrParameter.getNu(expiryMaturity);
    final SABRFormulaData sabrPoint = new SABRFormulaData(alpha, beta, rho, nu);
    final EuropeanVanillaOption option = new EuropeanVanillaOption(strike, cmsCapFloor.getFixingTime(), cmsCapFloor.isCap());
    final Function1D<SABRFormulaData, double[]> sabrFunctionAdjoint = sabrParameter.getSabrFunction().getVolatilityAdjointFunction(option, forward);
    final double[] volA = sabrFunctionAdjoint.evaluate(sabrPoint);
    final BlackFunctionData dataBlack = new BlackFunctionData(forward, 1.0, volA[0]);
    final BlackPriceFunction blackFunction = new BlackPriceFunction();
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

    final SABRNonLinearLeastSquareFitter fitter = new SABRNonLinearLeastSquareFitter(sabr);
    final LeastSquareResultsWithTransform result = fitter.getFitResult(options, data, errors, initialValues, fixed);

    final double chiSqr = result.getChiSq();
    final DoubleMatrix1D params = result.getModelParameters();
    final SABRFormulaData fittedData = new SABRFormulaData(params.getEntry(0), params.getEntry(1), params.getEntry(2), params.getEntry(3));

    final Function1D<Double, Double> sabrFunction = new Function1D<Double, Double>() {
      @Override
      public Double evaluate(final Double k) {
        final EuropeanVanillaOption option = new EuropeanVanillaOption(k, T, true);
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

  //  }

  @Test
  public void testSmileGenerationTime() {
    final SABRHaganVolatilityFunction sabr = new SABRHaganVolatilityFunction();
    final SABRFormulaData data = new SABRFormulaData(ALPHA, BETA, RHO, NU);
    final EuropeanVanillaOption option = new EuropeanVanillaOption(0.9 * F, T, true);
    final Function1D<SABRFormulaData, Double> f = sabr.getVolatilityFunction(option, F);
    double x = 0;
    for (int i = 0; i < _hotspotWarmupCycles; i++) {
      x += f.evaluate(data);
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

      final DoublesPair expiryMaturity = new DoublesPair(_timeToExpiry, _maturity);
      final double alpha = sabrParameter.getAlpha(expiryMaturity);
      final double beta = sabrParameter.getBeta(expiryMaturity);
      final double rho = sabrParameter.getRho(expiryMaturity);
      final double nu = sabrParameter.getNu(expiryMaturity);
      _sabrData = new SABRFormulaData(alpha, beta, rho, nu);
      _sabrFunction = sabrParameter.getSabrFunction();
      _isCall = cmsCap.isCap();
      _strike = cmsCap.getStrike();
      _factor = g(_forward) / h(_forward);
    }
View Full Code Here

Examples of com.opengamma.analytics.financial.model.volatility.smile.function.SABRFormulaData

    return new SABRHaganVolatilityFunction();
  }

  @Override
  SABRFormulaData getModelData() {
    return new SABRFormulaData(ALPHA, BETA, RHO, NU);
  }
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.