com.opengamma.strata.data.scenario

## Interface ScenarioFxRateProvider

• public interface ScenarioFxRateProvider
A provider of FX rates for scenarios.

This provides the ability to obtain a set of FX rates, one for each scenario. The interface does not mandate when the rate applies, however it typically represents the current rate.

This is the multi-scenario version of FxRateProvider.

Implementations do not have to be immutable, but calls to the methods must be thread-safe.

• ### Method Summary

All Methods
Modifier and Type Method and Description
default double convert(double amount, Currency fromCurrency, Currency toCurrency, int scenarioIndex)
Converts an amount in a currency to an amount in a different currency using a rate from this provider.
default double fxRate(Currency baseCurrency, Currency counterCurrency, int scenarioIndex)
Gets the FX rate for the specified currency pair and scenario index.
FxRateProvider fxRateProvider(int scenarioIndex)
Gets the FX rate provider for the specified scenario index.
int getScenarioCount()
Gets the number of scenarios.
static ScenarioFxRateProvider of(ScenarioMarketData marketData)
Returns a scenario FX rate provider which takes its data from the provided market data.
static ScenarioFxRateProvider of(ScenarioMarketData marketData, ObservableSource source)
Returns a scenario FX rate provider which takes its data from the provided market data.
• ### Method Detail

• #### of

static ScenarioFxRateProvider of(ScenarioMarketData marketData)
Returns a scenario FX rate provider which takes its data from the provided market data.
Parameters:
marketData - market data containing FX rates
Returns:
a scenario FX rate provider which takes its data from the provided market data
• #### of

static ScenarioFxRateProvider of(ScenarioMarketData marketData,
ObservableSource source)
Returns a scenario FX rate provider which takes its data from the provided market data.
Parameters:
marketData - market data containing FX rates
source - the source of the FX rates
Returns:
a scenario FX rate provider which takes its data from the provided market data
• #### getScenarioCount

int getScenarioCount()
Gets the number of scenarios.
Returns:
the number of scenarios
• #### convert

default double convert(double amount,
Currency fromCurrency,
Currency toCurrency,
int scenarioIndex)
Converts an amount in a currency to an amount in a different currency using a rate from this provider.
Parameters:
amount - an amount in fromCurrency
fromCurrency - the currency of the amount
toCurrency - the currency into which the amount should be converted
scenarioIndex - the scenario index
Returns:
the amount converted into toCurrency
Throws:
IllegalArgumentException - if either of the currencies aren't included in the currency pair of this rate
• #### fxRate

default double fxRate(Currency baseCurrency,
Currency counterCurrency,
int scenarioIndex)
Gets the FX rate for the specified currency pair and scenario index.

The rate returned is the rate from the base currency to the counter currency as defined by this formula: (1 * baseCurrency = fxRate * counterCurrency). This will return 1 if the two input currencies are the same.

Parameters:
baseCurrency - the base currency, to convert from
counterCurrency - the counter currency, to convert to
scenarioIndex - the scenario index
Returns:
the FX rate for the currency pair
Throws:
RuntimeException - if no FX rate could be found
• #### fxRateProvider

FxRateProvider fxRateProvider(int scenarioIndex)
Gets the FX rate provider for the specified scenario index.
Parameters:
scenarioIndex - the scenario index
Returns:
the FX rate for the currency pair
Throws:
RuntimeException - if no FX rate could be found

Copyright 2009-Present by OpenGamma Inc. and individual contributors