Class ForwardFxIndexRates

    • Method Detail

      • of

        public static ForwardFxIndexRates of​(FxIndex index,
                                             FxForwardRates fxForwardRates)
        Obtains an instance based on discount factors with no historic fixings.

        The instance is based on the discount factors for each currency.

        Parameters:
        index - the index
        fxForwardRates - the underlying forward FX rates
        Returns:
        the rates instance
      • of

        public static ForwardFxIndexRates of​(FxIndex index,
                                             FxForwardRates fxForwardRates,
                                             LocalDateDoubleTimeSeries fixings)
        Obtains an instance based on discount factors and historic fixings.

        The instance is based on the discount factors for each currency.

        Parameters:
        index - the index
        fxForwardRates - the underlying forward FX rates
        fixings - the time-series of fixings
        Returns:
        the rates instance
      • getValuationDate

        public java.time.LocalDate getValuationDate()
        Description copied from interface: MarketDataView
        Gets the valuation date.

        The raw data in this provider is calibrated for this date.

        Specified by:
        getValuationDate in interface MarketDataView
        Returns:
        the valuation date
      • findData

        public <T> java.util.Optional<T> findData​(MarketDataName<T> name)
        Description copied from interface: MarketDataView
        Finds the market data with the specified name.

        This is most commonly used to find an underlying curve or surface by name. If the market data cannot be found, empty is returned.

        Specified by:
        findData in interface MarketDataView
        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
      • getParameterCount

        public int getParameterCount()
        Description copied from interface: ParameterizedData
        Gets the number of parameters.

        This returns the number of parameters, which can be used to create a loop to access the other methods on this interface.

        Specified by:
        getParameterCount in interface ParameterizedData
        Returns:
        the number of parameters
      • getParameter

        public double getParameter​(int parameterIndex)
        Description copied from interface: ParameterizedData
        Gets the value of the parameter at the specified index.
        Specified by:
        getParameter in interface ParameterizedData
        Parameters:
        parameterIndex - the zero-based index of the parameter to get
        Returns:
        the value of the parameter
      • getParameterMetadata

        public ParameterMetadata getParameterMetadata​(int parameterIndex)
        Description copied from interface: ParameterizedData
        Gets the metadata of the parameter at the specified index.

        If there is no specific parameter metadata, an empty instance will be returned.

        Specified by:
        getParameterMetadata in interface ParameterizedData
        Parameters:
        parameterIndex - the zero-based index of the parameter to get
        Returns:
        the metadata of the parameter
      • withParameter

        public ForwardFxIndexRates withParameter​(int parameterIndex,
                                                 double newValue)
        Description copied from interface: ParameterizedData
        Returns a copy of the data with the value at the specified index altered.

        This instance is immutable and unaffected by this method call.

        Specified by:
        withParameter in interface FxIndexRates
        Specified by:
        withParameter in interface ParameterizedData
        Parameters:
        parameterIndex - the zero-based index of the parameter to get
        newValue - the new value for the specified parameter
        Returns:
        a parameterized data instance based on this with the specified parameter altered
      • withPerturbation

        public ForwardFxIndexRates withPerturbation​(ParameterPerturbation perturbation)
        Description copied from interface: ParameterizedData
        Returns a perturbed copy of the data.

        The perturbation instance will be invoked once for each parameter in this instance, returning the perturbed value for that parameter. The result of this method is a new instance that is based on those perturbed values.

        This instance is immutable and unaffected by this method call.

        Specified by:
        withPerturbation in interface FxIndexRates
        Specified by:
        withPerturbation in interface ParameterizedData
        Parameters:
        perturbation - the perturbation to apply
        Returns:
        a parameterized data instance based on this with the specified perturbation applied
      • rate

        public double rate​(FxIndexObservation observation,
                           Currency baseCurrency)
        Description copied from interface: FxIndexRates
        Gets the historic or forward rate at the specified fixing date.

        The rate of the FX index varies over time. This method obtains the actual or estimated rate for the fixing date.

        This retrieves the actual rate if the fixing date is before the valuation date, or the estimated rate if the fixing date is after the valuation date. If the fixing date equals the valuation date, then the best available rate is returned.

        The index defines the conversion rate for a specific currency pair. This method specifies which of the two currencies in the index is to be treated as the base currency for the purposes of the returned rate. If the specified base currency equals the base currency of the index, then the rate is simply returned. If the specified base currency equals the counter currency of the index, then the inverse rate is returned. As such, an amount in the specified base currency can be directly multiplied by the returned FX rate to perform FX conversion.

        To convert an amount in the specified base currency to the other currency, multiply it by the returned FX rate.

        Specified by:
        rate in interface FxIndexRates
        Parameters:
        observation - the rate observation, including the fixing date
        baseCurrency - the base currency that the rate should be expressed against
        Returns:
        the rate of the index, either historic or forward
      • ratePointSensitivity

        public PointSensitivityBuilder ratePointSensitivity​(FxIndexObservation observation,
                                                            Currency baseCurrency)
        Description copied from interface: FxIndexRates
        Calculates the point sensitivity of the historic or forward rate at the specified fixing date.

        This returns a sensitivity instance referring to the points that were queried in the market data. If a time-series was used, then there is no sensitivity. The sensitivity refers to the result of FxIndexRates.rate(FxIndexObservation, Currency).

        Specified by:
        ratePointSensitivity in interface FxIndexRates
        Parameters:
        observation - the rate observation, including the fixing date
        baseCurrency - the base currency that the rate should be expressed against
        Returns:
        the point sensitivity of the rate
      • parameterSensitivity

        public CurrencyParameterSensitivities parameterSensitivity​(FxIndexSensitivity pointSensitivity)
        Description copied from interface: FxIndexRates
        Calculates the parameter sensitivity from the point sensitivity.

        This is used to convert a single point sensitivity to parameter sensitivity.

        Specified by:
        parameterSensitivity in interface FxIndexRates
        Parameters:
        pointSensitivity - the point sensitivity to convert
        Returns:
        the parameter sensitivity
      • currencyExposure

        public MultiCurrencyAmount currencyExposure​(FxIndexSensitivity pointSensitivity)
        Description copied from interface: FxIndexRates
        Calculates the currency exposure from the point sensitivity.

        This is used to convert a single point sensitivity to currency exposure.

        Specified by:
        currencyExposure in interface FxIndexRates
        Parameters:
        pointSensitivity - the point sensitivity to convert
        Returns:
        the currency exposure
      • withFxForwardRates

        public ForwardFxIndexRates withFxForwardRates​(FxForwardRates fxForwardRates)
        Returns a new instance with different FX forward rates.
        Parameters:
        fxForwardRates - the new FX forward rates
        Returns:
        the new instance
      • meta

        public static ForwardFxIndexRates.Meta meta()
        The meta-bean for ForwardFxIndexRates.
        Returns:
        the meta-bean, not null
      • getIndex

        public FxIndex getIndex()
        Gets the index that the rates are for.
        Specified by:
        getIndex in interface FxIndexRates
        Returns:
        the value of the property, not null
      • getFixings

        public LocalDateDoubleTimeSeries getFixings()
        Gets the time-series of fixings, defaulted to an empty time-series. This includes the known historical fixings and may be empty.
        Specified by:
        getFixings in interface FxIndexRates
        Returns:
        the value of the property, not null
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object