/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.riskfactors; import com.opengamma.util.money.Currency; /** * Provides configuration to a {@link RiskFactorsGatherer}. */ public interface RiskFactorsConfigurationProvider { /** * Gets the output currency override which should be applied to the risk factors. * <p> * If this is not set then risk factors should be generated in their default currency which could be different for * each position. * * @return the output currency override, or null if not set */ Currency getCurrencyOverride(); /** * Gets the name of the funding curve to use where required. * * @return the name of the funding curve, not null */ String getFundingCurve(); /** * Gets the name of the forward curve to use where required. * * @param currency the currency for which the forward curve is required, not null * @return the name of the forward curve, not null */ String getForwardCurve(Currency currency); /** * Gets the name of the FX Option Volatility Surface * @param ccy1 numerator currency * @param ccy2 denominator currency * @return the name of the surface */ String getFXVanillaOptionSurfaceName(Currency ccy1, Currency ccy2); /** * Gets the name of the Commodity Future Option Volatility Surface * @param futureCode typically two character future code prefix, e.g. ED. * @return the name of the surface */ String getCommodityFutureOptionVolatilitySurfaceName(String futureCode); /** * Gets the name of the IR Future Option Volatility Surface * @param futureCode typically two character future code prefix, e.g. ED. * @return the name of the surface */ String getIRFutureOptionVolatilitySurfaceName(String futureCode); /** * Gets the name of the Equity Index Option Volatility Surface * @param tickerPlusMarketSector bloomberg code for underlying index e.g. DJX Index * @return the name of the surface */ String getEquityIndexOptionVolatilitySurfaceName(String tickerPlusMarketSector); /** * Gets the name of the ATM Swaption Volatility Surface * @param ccy Currency of the swaption * @return the name of the surface */ String getSwaptionVolatilitySurfaceName(Currency ccy); /** * Gets the name of the Swaption Volatility Cube * @param ccy Currency of the swaption * @return the name of the cube */ String getSwaptionVolatilityCubeName(Currency ccy); /** * Gets the name of the curve used for FX * @param ccy the currency * @return the name of the curve */ String getFXCurve(Currency ccy); /** * Gets the name of the calculation method to be used for FX * @return the name of the calculation method */ String getFXCalculationMethod(); /** * Gets the name of the funding/discounting curve used for equity derivatives * @return the name of the curve */ String getEquityFundingCurve(); /** * Gets the name of the calculation method to be used for equities * @return the name of the calculation method */ String getEquityCalculationMethod(); /** * Gets the name of the smile interpolator to be used for equities * @return the name of the smile interpolator */ String getEquitySmileInterpolator(); }