Class FxForwardSensitivity
- java.lang.Object
-
- com.opengamma.strata.pricer.fx.FxForwardSensitivity
-
- All Implemented Interfaces:
FxConvertible<PointSensitivity>,PointSensitivity,PointSensitivityBuilder,Serializable,org.joda.beans.Bean,org.joda.beans.ImmutableBean
public final class FxForwardSensitivity extends Object implements PointSensitivity, PointSensitivityBuilder, org.joda.beans.ImmutableBean, Serializable
Point sensitivity to a forward rate of an FX rate for a currency pair.Holds the sensitivity to the curves associated with
CurrencyPairat a reference date.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFxForwardSensitivity.MetaThe meta-bean forFxForwardSensitivity.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MutablePointSensitivitiesbuildInto(MutablePointSensitivities combination)Builds the point sensitivity, adding to the specified mutable instance.FxForwardSensitivitycloned()Clones the point sensitivity builder.intcompareKey(PointSensitivity other)Compares the key of two sensitivities, excluding the point sensitivity value.FxForwardSensitivityconvertedTo(Currency resultCurrency, FxRateProvider rateProvider)Converts this instance to an equivalent amount in the specified currency.booleanequals(Object obj)CurrencygetCurrency()Gets the currency of the sensitivity.CurrencyPairgetCurrencyPair()Gets the currency pair for which the sensitivity is computed.CurrencygetReferenceCounterCurrency()Gets the currency counter to the reference currency.CurrencygetReferenceCurrency()Gets the reference currency.LocalDategetReferenceDate()Gets the date to query the rate for.doublegetSensitivity()Gets the value of the sensitivity.inthashCode()FxForwardSensitivitymapSensitivity(DoubleUnaryOperator operator)Returns an instance with the specified operation applied to the sensitivities in this builder.static FxForwardSensitivity.Metameta()The meta-bean forFxForwardSensitivity.FxForwardSensitivity.MetametaBean()FxForwardSensitivitymultipliedBy(double factor)Multiplies the sensitivities in this builder by the specified factor.FxForwardSensitivitynormalize()Normalizes the point sensitivities by sorting and merging.static FxForwardSensitivityof(CurrencyPair currencyPair, Currency referenceCurrency, LocalDate referenceDate, double sensitivity)Obtains an instance from currency pair, reference currency, reference date and sensitivity value.static FxForwardSensitivityof(CurrencyPair currencyPair, Currency referenceCurrency, LocalDate referenceDate, Currency sensitivityCurrency, double sensitivity)Obtains an instance from currency pair, reference currency, reference date sensitivity currency and sensitivity value.StringtoString()FxForwardSensitivitywithCurrency(Currency currency)Returns an instance with the specified sensitivity currency set.FxForwardSensitivitywithSensitivity(double sensitivity)Returns an instance with the new point sensitivity value.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.opengamma.strata.market.sensitivity.PointSensitivityBuilder
build, combinedWith
-
-
-
-
Method Detail
-
of
public static FxForwardSensitivity of(CurrencyPair currencyPair, Currency referenceCurrency, LocalDate referenceDate, double sensitivity)
Obtains an instance from currency pair, reference currency, reference date and sensitivity value.The sensitivity currency is defaulted to be a currency of the currency pair that is not the reference currency.
- Parameters:
currencyPair- the currency pairreferenceCurrency- the reference currencyreferenceDate- the reference datesensitivity- the value of the sensitivity- Returns:
- the point sensitivity object
-
of
public static FxForwardSensitivity of(CurrencyPair currencyPair, Currency referenceCurrency, LocalDate referenceDate, Currency sensitivityCurrency, double sensitivity)
Obtains an instance from currency pair, reference currency, reference date sensitivity currency and sensitivity value.- Parameters:
currencyPair- the currency pairreferenceCurrency- the reference currencyreferenceDate- the reference datesensitivityCurrency- the currency of the sensitivitysensitivity- the value of the sensitivity- Returns:
- the point sensitivity object
-
getReferenceCounterCurrency
public Currency getReferenceCounterCurrency()
Gets the currency counter to the reference currency.The currency pair contains two currencies. One is the reference currency. This method returns the other.
- Returns:
- the counter currency
-
withCurrency
public FxForwardSensitivity withCurrency(Currency currency)
Description copied from interface:PointSensitivityReturns an instance with the specified sensitivity currency set.The result will consists of the same points, but with the sensitivity currency altered.
- Specified by:
withCurrencyin interfacePointSensitivity- Specified by:
withCurrencyin interfacePointSensitivityBuilder- Parameters:
currency- the new currency- Returns:
- an instance based on this sensitivity with the specified currency
-
withSensitivity
public FxForwardSensitivity withSensitivity(double sensitivity)
Description copied from interface:PointSensitivityReturns an instance with the new point sensitivity value.- Specified by:
withSensitivityin interfacePointSensitivity- Parameters:
sensitivity- the new sensitivity- Returns:
- an instance based on this sensitivity with the specified sensitivity
-
compareKey
public int compareKey(PointSensitivity other)
Description copied from interface:PointSensitivityCompares the key of two sensitivities, excluding the point sensitivity value.If the other point sensitivity is of a different type, the comparison is based solely on the simple class name. If the point sensitivity is of the same type, the comparison must check the key, then the currency, then the date, then any other state.
The comparison by simple class name ensures that all instances of the same type are ordered together.
- Specified by:
compareKeyin interfacePointSensitivity- Parameters:
other- the other sensitivity- Returns:
- positive if greater, zero if equal, negative if less
-
convertedTo
public FxForwardSensitivity convertedTo(Currency resultCurrency, FxRateProvider rateProvider)
Description copied from interface:PointSensitivityConverts this instance to an equivalent amount in the specified currency.The result will be expressed in terms of the given currency. Any FX conversion that is required will use rates from the provider.
- Specified by:
convertedToin interfaceFxConvertible<PointSensitivity>- Specified by:
convertedToin interfacePointSensitivity- Parameters:
resultCurrency- the currency of the resultrateProvider- the provider of FX rates- Returns:
- the converted instance, which should be expressed in the specified currency
-
multipliedBy
public FxForwardSensitivity multipliedBy(double factor)
Description copied from interface:PointSensitivityBuilderMultiplies the sensitivities in this builder by the specified factor.The result will consist of the same points, but with each sensitivity multiplied.
Builders may be mutable. Once this method is called, this instance must not be used. Instead, the result of the method must be used.
- Specified by:
multipliedByin interfacePointSensitivityBuilder- Parameters:
factor- the multiplicative factor- Returns:
- the resulting builder, replacing this builder
-
mapSensitivity
public FxForwardSensitivity mapSensitivity(DoubleUnaryOperator operator)
Description copied from interface:PointSensitivityBuilderReturns an instance with the specified operation applied to the sensitivities in this builder.The result will consist of the same points, but with the operator applied to each sensitivity.
This is used to apply a mathematical operation to the sensitivities. For example, the operator could multiply the sensitivities by a constant, or take the inverse.
inverse = base.mapSensitivities(value -> 1 / value);
Builders may be mutable. Once this method is called, this instance must not be used. Instead, the result of the method must be used.
- Specified by:
mapSensitivityin interfacePointSensitivityBuilder- Parameters:
operator- the operator to be applied to the sensitivities- Returns:
- the resulting builder, replacing this builder
-
normalize
public FxForwardSensitivity normalize()
Description copied from interface:PointSensitivityBuilderNormalizes the point sensitivities by sorting and merging.The sensitivities in the builder are sorted and then merged. Any two entries that represent the same curve query are merged. For example, if there are two point sensitivities that were created based on the same curve, currency and fixing date, then the entries are combined, summing the sensitivity value.
Builders may be mutable. Once this method is called, this instance must not be used. Instead, the result of the method must be used.
- Specified by:
normalizein interfacePointSensitivityBuilder- Returns:
- the resulting builder, replacing this builder
-
buildInto
public MutablePointSensitivities buildInto(MutablePointSensitivities combination)
Description copied from interface:PointSensitivityBuilderBuilds the point sensitivity, adding to the specified mutable instance.- Specified by:
buildIntoin interfacePointSensitivityBuilder- Parameters:
combination- the combination object to add to- Returns:
- the specified mutable point sensitivities instance is returned, for method chaining
-
cloned
public FxForwardSensitivity cloned()
Description copied from interface:PointSensitivityBuilderClones the point sensitivity builder.This returns a
PointSensitivityBuilderinstance that is independent from the original. Immutable implementations may return themselves.Builders may be mutable. Using this method allows a copy of the original to be obtained, so both the original and the clone can be used.
- Specified by:
clonedin interfacePointSensitivityBuilder- Returns:
- the built combined sensitivity
-
meta
public static FxForwardSensitivity.Meta meta()
The meta-bean forFxForwardSensitivity.- Returns:
- the meta-bean, not null
-
metaBean
public FxForwardSensitivity.Meta metaBean()
- Specified by:
metaBeanin interfaceorg.joda.beans.Bean
-
getCurrencyPair
public CurrencyPair getCurrencyPair()
Gets the currency pair for which the sensitivity is computed.- Returns:
- the value of the property, not null
-
getReferenceCurrency
public Currency getReferenceCurrency()
Gets the reference currency.This is the base currency of the FX conversion that occurs using the currency pair. The reference currency must be one of the two currencies of the currency pair.
- Returns:
- the value of the property, not null
-
getReferenceDate
public LocalDate getReferenceDate()
Gets the date to query the rate for.- Returns:
- the value of the property, not null
-
getCurrency
public Currency getCurrency()
Gets the currency of the sensitivity.- Specified by:
getCurrencyin interfacePointSensitivity- Returns:
- the value of the property, not null
-
getSensitivity
public double getSensitivity()
Gets the value of the sensitivity. This is the amount that is converted from the base currency to the counter currency.- Specified by:
getSensitivityin interfacePointSensitivity- Returns:
- the value of the property
-
-