/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.var;
import java.util.Arrays;
import com.opengamma.timeseries.DoubleTimeSeries;
import com.opengamma.util.ArgumentChecker;
/**
*
*/
public class EmpiricalDistributionVaRCalculator implements VaRCalculator<EmpiricalDistributionVaRParameters, DoubleTimeSeries<?>> {
@Override
public VaRCalculationResult evaluate(final EmpiricalDistributionVaRParameters parameters, final DoubleTimeSeries<?>... returns) {
ArgumentChecker.notNull(parameters, "parameters");
ArgumentChecker.notNull(returns, "time series");
ArgumentChecker.notNull(returns, "returns");
ArgumentChecker.isTrue(returns.length > 0, "No return series data");
final double[] data = returns[0].valuesArrayFast();
Arrays.sort(data);
final double result = -parameters.getMult() * parameters.getPercentileCalculator().evaluate(data);
return new VaRCalculationResult(result, null);
}
}