Package com.opengamma.analytics.financial.model.interestrate

Source Code of com.opengamma.analytics.financial.model.interestrate.TestsDataSetHullWhite

/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.model.interestrate;

import com.opengamma.analytics.financial.interestrate.YieldCurveBundle;
import com.opengamma.analytics.financial.model.interestrate.curve.YieldCurve;
import com.opengamma.analytics.financial.model.interestrate.definition.HullWhiteOneFactorPiecewiseConstantParameters;
import com.opengamma.analytics.math.curve.ConstantDoublesCurve;
import com.opengamma.analytics.math.curve.InterpolatedDoublesCurve;
import com.opengamma.analytics.math.interpolation.CombinedInterpolatorExtrapolatorFactory;
import com.opengamma.analytics.math.interpolation.Interpolator1D;
import com.opengamma.analytics.math.interpolation.Interpolator1DFactory;

/**
* Data used for tests on the Hull-White one factor model.
* @deprecated This class produces deprecated types.
*/
@Deprecated
public class TestsDataSetHullWhite {

  private static final double MEAN_REVERSION = 0.01;
  private static final double[] VOLATILITY = new double[] {0.01, 0.011, 0.012, 0.013, 0.014};
  private static final double[] VOLATILITY_TIME = new double[] {0.5, 1.0, 2.0, 5.0};
  private static final HullWhiteOneFactorPiecewiseConstantParameters MODEL_PARAMETERS = new HullWhiteOneFactorPiecewiseConstantParameters(MEAN_REVERSION, VOLATILITY, VOLATILITY_TIME);

  /**
   * Create a set of Hull-White parameters for testing.
   * @return The hull-White parameters.
   */
  public static HullWhiteOneFactorPiecewiseConstantParameters createHullWhiteParameters() {
    return MODEL_PARAMETERS;
  }

  /**
   * Create a set of Hull-White parameters with constant volatility for testing. The mean reversion is 1%.
   * @param sigma The Hull-White volatility.
   * @return The hull-White parameters.
   */
  public static HullWhiteOneFactorPiecewiseConstantParameters createHullWhiteParametersCst(final double sigma) {
    return new HullWhiteOneFactorPiecewiseConstantParameters(MEAN_REVERSION, new double[] {sigma}, new double[0]);
  }

  private static final Interpolator1D LINEAR_FLAT = CombinedInterpolatorExtrapolatorFactory.getInterpolator(Interpolator1DFactory.LINEAR, Interpolator1DFactory.FLAT_EXTRAPOLATOR,
      Interpolator1DFactory.FLAT_EXTRAPOLATOR);
  private static final String DSC_CURVE_NAME = "Discounting";
  private static final String FWD_CURVE_NAME = "Forward";
  private static final double[] RATES_TIME = new double[] {0.25, 0.5, 1.0, 2.0, 5.0, 10.0, 30.0};

  /**
   * Create constant discounting and forward curves.
   * @param dsc The discounting curve level.
   * @param fwd The forward curve level.
   * @return
   */
  public static YieldCurveBundle curves1(final double dsc, final double fwd) {
    final YieldCurveBundle curves = new YieldCurveBundle();
    curves.setCurve(DSC_CURVE_NAME, YieldCurve.from(ConstantDoublesCurve.from(dsc)));
    curves.setCurve(FWD_CURVE_NAME, YieldCurve.from(ConstantDoublesCurve.from(fwd)));
    return curves;
  }

  public static String[] nameCurves1() {
    return new String[] {DSC_CURVE_NAME, FWD_CURVE_NAME};
  }

  public static YieldCurveBundle curves2(final double dsc, final double fwd) {
    final double[] dscArray = new double[RATES_TIME.length];
    final double[] fwdArray = new double[RATES_TIME.length];
    for (int loopt = 0; loopt < RATES_TIME.length; loopt++) {
      dscArray[loopt] = dsc;
      fwdArray[loopt] = fwd;
    }
    final YieldCurveBundle curves = new YieldCurveBundle();
    curves.setCurve(DSC_CURVE_NAME, YieldCurve.from(new InterpolatedDoublesCurve(RATES_TIME, dscArray, LINEAR_FLAT, true)));
    curves.setCurve(FWD_CURVE_NAME, YieldCurve.from(new InterpolatedDoublesCurve(RATES_TIME, fwdArray, LINEAR_FLAT, true)));
    return curves;
  }

  public static String[] nameCurves2() {
    return new String[] {DSC_CURVE_NAME, FWD_CURVE_NAME};
  }

}
TOP

Related Classes of com.opengamma.analytics.financial.model.interestrate.TestsDataSetHullWhite

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.