/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.provider.description.interestrate;
import com.opengamma.analytics.financial.instrument.index.IborIndex;
/**
* Provider of normal volatility (Bachelier model) smile for options on STIR futures.
* The volatility is time to expiration/delay/strike/futures price dependent.
* The "delay" is the time between expiration of the option and last trading date of the underlying futures.
*/
public interface NormalSTIRFuturesProviderInterface extends ParameterProviderInterface {
/**
* Create a new copy of the provider
* @return The bundle
*/
@Override
NormalSTIRFuturesProviderInterface copy();
/**
* Gets the normal volatility at a given expiry-delay-strike-futures price point.
* @param expiry The time to expiration.
* @param delay The delay between expiration of the option and last trading date of the underlying futures.
* @param strike The strike price.
* @param futuresPrice The price of the underlying futures. Used for relative moneyness smile description.
* @return The volatility.
*/
double getVolatility(final double expiry, final double delay, final double strike, final double futuresPrice);
/**
* Returns the Ibor Index of the futures on for which the Black data is valid, i.e. the data is calibrated to futures on the given index.
* @return The generator.
*/
IborIndex getFuturesIndex();
/**
* Create a new NormalSTIRFuturesProviderInterface from multicurveProvider.
* @param multicurve The multicurve provider.
* @return NormalSTIRFuturesProviderInterface.
*/
NormalSTIRFuturesProviderInterface withMulticurve(MulticurveProviderInterface multicurve);
}