Class DiscountFxForwardRates
- java.lang.Object
-
- com.opengamma.strata.pricer.fx.DiscountFxForwardRates
-
- All Implemented Interfaces:
MarketDataView,ParameterizedData,FxForwardRates,Serializable,org.joda.beans.Bean,org.joda.beans.ImmutableBean
public final class DiscountFxForwardRates extends Object implements FxForwardRates, org.joda.beans.ImmutableBean, Serializable
Provides access to discount factors for currencies.This provides discount factors for a single currency pair.
This implementation is based on two underlying
DiscountFactorsobjects, one for each currency, and anFxRateProvider.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDiscountFxForwardRates.MetaThe meta-bean forDiscountFxForwardRates.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MultiCurrencyAmountcurrencyExposure(FxForwardSensitivity pointSensitivity)Calculates the currency exposure from the point sensitivity.booleanequals(Object obj)<T> Optional<T>findData(MarketDataName<T> name)Finds the market data with the specified name.DiscountFactorsgetBaseCurrencyDiscountFactors()Gets the discount factors for the base currency of the currency pair.DiscountFactorsgetCounterCurrencyDiscountFactors()Gets the discount factors for the counter currency of the currency pair.CurrencyPairgetCurrencyPair()Gets the currency pair that the rates are for.FxRateProvidergetFxRateProvider()Gets the provider of FX rates.doublegetParameter(int parameterIndex)Gets the value of the parameter at the specified index.intgetParameterCount()Gets the number of parameters.ParameterMetadatagetParameterMetadata(int parameterIndex)Gets the metadata of the parameter at the specified index.LocalDategetValuationDate()Gets the valuation date.inthashCode()static DiscountFxForwardRates.Metameta()The meta-bean forDiscountFxForwardRates.DiscountFxForwardRates.MetametaBean()static DiscountFxForwardRatesof(CurrencyPair currencyPair, FxRateProvider fxRateProvider, DiscountFactors baseCurrencyFactors, DiscountFactors counterCurrencyFactors)Obtains an instance based on two discount factors, one for each currency.CurrencyParameterSensitivitiesparameterSensitivity(FxForwardSensitivity pointSensitivity)Calculates the parameter sensitivity from the point sensitivity.doublerate(Currency baseCurrency, LocalDate referenceDate)Gets the forward rate at the specified payment date.doublerateFxSpotSensitivity(Currency baseCurrency, LocalDate referenceDate)Calculates the sensitivity of the forward rate to the current FX rate.PointSensitivityBuilderratePointSensitivity(Currency baseCurrency, LocalDate referenceDate)Calculates the point sensitivity of the forward rate at the specified payment date.StringtoString()DiscountFxForwardRateswithDiscountFactors(DiscountFactors baseCurrencyFactors, DiscountFactors counterCurrencyFactors)Returns a new instance with different discount factors.DiscountFxForwardRateswithParameter(int parameterIndex, double newValue)Returns a copy of the data with the value at the specified index altered.DiscountFxForwardRateswithPerturbation(ParameterPerturbation perturbation)Returns a perturbed copy of the data.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.opengamma.strata.market.param.ParameterizedData
findParameterIndex
-
-
-
-
Method Detail
-
of
public static DiscountFxForwardRates of(CurrencyPair currencyPair, FxRateProvider fxRateProvider, DiscountFactors baseCurrencyFactors, DiscountFactors counterCurrencyFactors)
Obtains an instance based on two discount factors, one for each currency.The instance is based on the discount factors for each currency.
- Parameters:
currencyPair- the currency pairfxRateProvider- the provider of FX ratesbaseCurrencyFactors- the discount factors in the base currency of the indexcounterCurrencyFactors- the discount factors in the counter currency of the index- Returns:
- the rates instance
-
getValuationDate
public LocalDate getValuationDate()
Description copied from interface:FxForwardRatesGets the valuation date.The raw data in this provider is calibrated for this date.
- Specified by:
getValuationDatein interfaceFxForwardRates- Specified by:
getValuationDatein interfaceMarketDataView- Returns:
- the valuation date
-
findData
public <T> Optional<T> findData(MarketDataName<T> name)
Description copied from interface:MarketDataViewFinds 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:
findDatain interfaceMarketDataView- 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:ParameterizedDataGets 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:
getParameterCountin interfaceParameterizedData- Returns:
- the number of parameters
-
getParameter
public double getParameter(int parameterIndex)
Description copied from interface:ParameterizedDataGets the value of the parameter at the specified index.- Specified by:
getParameterin interfaceParameterizedData- 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:ParameterizedDataGets the metadata of the parameter at the specified index.If there is no specific parameter metadata, an empty instance will be returned.
- Specified by:
getParameterMetadatain interfaceParameterizedData- Parameters:
parameterIndex- the zero-based index of the parameter to get- Returns:
- the metadata of the parameter
-
withParameter
public DiscountFxForwardRates withParameter(int parameterIndex, double newValue)
Description copied from interface:ParameterizedDataReturns 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:
withParameterin interfaceFxForwardRates- Specified by:
withParameterin interfaceParameterizedData- Parameters:
parameterIndex- the zero-based index of the parameter to getnewValue- the new value for the specified parameter- Returns:
- a parameterized data instance based on this with the specified parameter altered
-
withPerturbation
public DiscountFxForwardRates withPerturbation(ParameterPerturbation perturbation)
Description copied from interface:ParameterizedDataReturns 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:
withPerturbationin interfaceFxForwardRates- Specified by:
withPerturbationin interfaceParameterizedData- Parameters:
perturbation- the perturbation to apply- Returns:
- a parameterized data instance based on this with the specified perturbation applied
-
rate
public double rate(Currency baseCurrency, LocalDate referenceDate)
Description copied from interface:FxForwardRatesGets the forward rate at the specified payment date.The exchange rate of the currency pair varies over time. This method obtains the estimated rate for the payment date.
This method specifies which of the two currencies in the currency pair 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 currency pair, then the rate is simply returned. If the specified base currency equals the counter currency of the currency pair, 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:
ratein interfaceFxForwardRates- Parameters:
baseCurrency- the base currency that the rate should be expressed againstreferenceDate- the date to query the rate for- Returns:
- the forward rate of the currency pair
-
ratePointSensitivity
public PointSensitivityBuilder ratePointSensitivity(Currency baseCurrency, LocalDate referenceDate)
Description copied from interface:FxForwardRatesCalculates the point sensitivity of the forward rate at the specified payment date.This returns a sensitivity instance referring to the points that were queried in the market data. The sensitivity refers to the result of
FxForwardRates.rate(Currency, LocalDate).- Specified by:
ratePointSensitivityin interfaceFxForwardRates- Parameters:
baseCurrency- the base currency that the rate should be expressed againstreferenceDate- the date to find the sensitivity for- Returns:
- the point sensitivity of the rate
-
rateFxSpotSensitivity
public double rateFxSpotSensitivity(Currency baseCurrency, LocalDate referenceDate)
Description copied from interface:FxForwardRatesCalculates the sensitivity of the forward rate to the current FX rate.This returns the sensitivity to the current FX rate that was used to determine the FX forward rate. The sensitivity refers to the result of
FxForwardRates.rate(Currency, LocalDate).- Specified by:
rateFxSpotSensitivityin interfaceFxForwardRates- Parameters:
baseCurrency- the base currency that the rate should be expressed againstreferenceDate- the date to find the sensitivity for- Returns:
- the sensitivity of the FX forward rate to the current FX rate
-
parameterSensitivity
public CurrencyParameterSensitivities parameterSensitivity(FxForwardSensitivity pointSensitivity)
Description copied from interface:FxForwardRatesCalculates the parameter sensitivity from the point sensitivity.This is used to convert a single point sensitivity to parameter sensitivity.
- Specified by:
parameterSensitivityin interfaceFxForwardRates- Parameters:
pointSensitivity- the point sensitivity to convert- Returns:
- the parameter sensitivity
-
currencyExposure
public MultiCurrencyAmount currencyExposure(FxForwardSensitivity pointSensitivity)
Description copied from interface:FxForwardRatesCalculates the currency exposure from the point sensitivity.This is used to convert a single point sensitivity to currency exposure.
- Specified by:
currencyExposurein interfaceFxForwardRates- Parameters:
pointSensitivity- the point sensitivity to convert- Returns:
- the currency exposure
-
withDiscountFactors
public DiscountFxForwardRates withDiscountFactors(DiscountFactors baseCurrencyFactors, DiscountFactors counterCurrencyFactors)
Returns a new instance with different discount factors.- Parameters:
baseCurrencyFactors- the new base currency discount factorscounterCurrencyFactors- the new counter currency discount factors- Returns:
- the new instance
-
meta
public static DiscountFxForwardRates.Meta meta()
The meta-bean forDiscountFxForwardRates.- Returns:
- the meta-bean, not null
-
metaBean
public DiscountFxForwardRates.Meta metaBean()
- Specified by:
metaBeanin interfaceorg.joda.beans.Bean
-
getCurrencyPair
public CurrencyPair getCurrencyPair()
Gets the currency pair that the rates are for.- Specified by:
getCurrencyPairin interfaceFxForwardRates- Returns:
- the value of the property, not null
-
getFxRateProvider
public FxRateProvider getFxRateProvider()
Gets the provider of FX rates.- Returns:
- the value of the property, not null
-
getBaseCurrencyDiscountFactors
public DiscountFactors getBaseCurrencyDiscountFactors()
Gets the discount factors for the base currency of the currency pair.- Returns:
- the value of the property, not null
-
getCounterCurrencyDiscountFactors
public DiscountFactors getCounterCurrencyDiscountFactors()
Gets the discount factors for the counter currency of the currency pair.- Returns:
- the value of the property, not null
-
-