Interface RatesProvider

  • All Superinterfaces:
    BaseProvider, FxRateProvider
    All Known Implementing Classes:
    ImmutableRatesProvider

    public interface RatesProvider
    extends BaseProvider
    A provider of rates, such as Ibor and Overnight, used for pricing financial instruments.

    This provides the environmental information against which pricing occurs. The valuation date, FX rates, discount factors, time-series and forward curves are included.

    The standard independent implementation is ImmutableRatesProvider.

    All implementations of this interface must be immutable and thread-safe.

    • Method Detail

      • indices

        default Stream<Index> indices()
        Gets the forward indices that are available.

        Normally this will only return Ibor, Overnight and Price indices, however it may return other types of index.

        Returns:
        the indices
      • getIborIndices

        Set<IborIndex> getIborIndices()
        Gets the set of Ibor indices that are available.

        If an index is present in the result of this method, then iborIndexRates(IborIndex) should not throw an exception.

        Returns:
        the set of Ibor indices
      • getOvernightIndices

        Set<OvernightIndex> getOvernightIndices()
        Gets the set of Overnight indices that are available.

        If an index is present in the result of this method, then overnightIndexRates(OvernightIndex) should not throw an exception.

        Returns:
        the set of Overnight indices
      • getPriceIndices

        Set<PriceIndex> getPriceIndices()
        Gets the set of Price indices that are available.

        If an index is present in the result of this method, then priceIndexValues(PriceIndex) should not throw an exception.

        Returns:
        the set of Price indices
      • getTimeSeriesIndices

        Set<Index> getTimeSeriesIndices()
        Gets the set of indices that have time-series available.

        Note that the method timeSeries(Index) returns an empty time-series when the index is not known, thus this method is useful to determine if there actually is a time-series in the underlying data.

        Returns:
        the set of indices with time-series
      • fxIndexRates

        FxIndexRates fxIndexRates​(FxIndex index)
        Gets the rates for an FX index.

        This returns an object that can provide historic and forward rates for the specified index.

        An FX rate is the conversion rate between two currencies. An FX index is the rate as published by a specific organization, typically at a well-known time-of-day.

        Parameters:
        index - the index to find rates for
        Returns:
        the rates for the specified index
        Throws:
        IllegalArgumentException - if the rates are not available
      • fxForwardRates

        FxForwardRates fxForwardRates​(CurrencyPair currencyPair)
        Gets the forward FX rates for a currency pair.

        This returns an object that can provide forward rates for the specified currency pair. See fxIndexRates(FxIndex) for forward rates with daily fixings.

        Parameters:
        currencyPair - the currency pair to find forward rates for
        Returns:
        the forward rates for the specified currency pair
        Throws:
        IllegalArgumentException - if the rates are not available
      • iborIndexRates

        IborIndexRates iborIndexRates​(IborIndex index)
        Gets the rates for an Ibor index.

        The rate of the Ibor index, such as 'GBP-LIBOR-3M', varies over time. This returns an object that can provide historic and forward rates for the specified index.

        Parameters:
        index - the index to find rates for
        Returns:
        the rates for the specified index
        Throws:
        IllegalArgumentException - if the rates are not available
      • overnightIndexRates

        OvernightIndexRates overnightIndexRates​(OvernightIndex index)
        Gets the rates for an Overnight index.

        The rate of the Overnight index, such as 'EUR-EONIA', varies over time. This returns an object that can provide historic and forward rates for the specified index.

        Parameters:
        index - the index to find rates for
        Returns:
        the rates for the specified index
        Throws:
        IllegalArgumentException - if the rates are not available
      • priceIndexValues

        PriceIndexValues priceIndexValues​(PriceIndex index)
        Gets the values for an Price index.

        The value of the Price index, such as 'US-CPI-U', varies over time. This returns an object that can provide historic and forward values for the specified index.

        Parameters:
        index - the index to find values for
        Returns:
        the values for the specified index
        Throws:
        IllegalArgumentException - if the values are not available
      • parameterSensitivity

        default CurrencyParameterSensitivities parameterSensitivity​(PointSensitivities pointSensitivities)
        Computes the parameter sensitivity.

        This computes the CurrencyParameterSensitivities associated with the PointSensitivities. This corresponds to the projection of the point sensitivity to the internal parameters representation.

        For example, the point sensitivities could represent the sensitivity to a date on the first of each month in a year relative to a specific forward curve. This method converts to the point sensitivities to be relative to each parameter on the underlying curve, such as the 1 day, 1 week, 1 month, 3 month, 12 month and 5 year nodal points.

        Parameters:
        pointSensitivities - the point sensitivities
        Returns:
        the sensitivity to the curve parameters
      • currencyExposure

        default MultiCurrencyAmount currencyExposure​(PointSensitivities pointSensitivities)
        Computes the currency exposure.

        This computes the currency exposure in the form of a MultiCurrencyAmount associated with the PointSensitivities. This corresponds to the projection of the point sensitivity to the currency exposure associated to an FxIndexSensitivity.

        For example, the point sensitivities could represent the sensitivity to a FX Index. This method produces the implicit currency exposure embedded in the FX index sensitivity.

        Reference: Currency Exposure and FX index, OpenGamma Documentation 32, July 2015.

        Parameters:
        pointSensitivities - the point sensitivities
        Returns:
        the currency exposure
      • findData

        <T> Optional<T> findData​(MarketDataName<T> name)
        Finds the market data with the specified name.

        This is most commonly used to find a Curve using a CurveName. If the market data cannot be found, empty is returned.

        Type Parameters:
        T - the type of the market data value
        Parameters:
        name - the name to find
        Returns:
        the market data value, empty if not found
      • timeSeries

        LocalDateDoubleTimeSeries timeSeries​(Index index)
        Gets the time series.

        This returns time series for the index.

        Parameters:
        index - the index
        Returns:
        the time series, empty if time-series not found
      • toImmutableRatesProvider

        ImmutableRatesProvider toImmutableRatesProvider()
        Converts this provider to an equivalent ImmutableRatesProvider.
        Returns:
        the equivalent immutable rates provider