Class FxOptionSensitivity

• java.lang.Object
• com.opengamma.strata.pricer.fxopt.FxOptionSensitivity
• All Implemented Interfaces:
FxConvertible<PointSensitivity>, PointSensitivity, PointSensitivityBuilder, java.io.Serializable, org.joda.beans.Bean, org.joda.beans.ImmutableBean

public final class FxOptionSensitivity
extends java.lang.Object
implements PointSensitivity, PointSensitivityBuilder, org.joda.beans.ImmutableBean, java.io.Serializable
Point sensitivity to an implied volatility for a FX option model.

Holds the sensitivity to a specific volatility point.

Serialized Form
• Nested Class Summary

Nested Classes
Modifier and Type Class Description
static class  FxOptionSensitivity.Meta
The meta-bean for FxOptionSensitivity.
• Method Summary

All Methods
Modifier and Type Method Description
MutablePointSensitivities buildInto​(MutablePointSensitivities combination)
Builds the point sensitivity, adding to the specified mutable instance.
FxOptionSensitivity cloned()
Clones the point sensitivity builder.
int compareKey​(PointSensitivity other)
Compares the key of two sensitivities, excluding the point sensitivity value.
FxOptionSensitivity convertedTo​(Currency resultCurrency, FxRateProvider rateProvider)
Converts this instance to an equivalent amount in the specified currency.
boolean equals​(java.lang.Object obj)
Currency getCurrency()
Gets the currency of the sensitivity.
CurrencyPair getCurrencyPair()
Gets the currency pair for which the sensitivity is presented.
double getExpiry()
Gets the time to expiry of the option as a year fraction.
double getForward()
Gets the forward rate.
double getSensitivity()
Gets the value of the sensitivity.
double getStrike()
Gets the strike rate.
FxOptionVolatilitiesName getVolatilitiesName()
Gets the name of the volatilities.
int hashCode()
FxOptionSensitivity mapSensitivity​(java.util.function.DoubleUnaryOperator operator)
Returns an instance with the specified operation applied to the sensitivities in this builder.
static FxOptionSensitivity.Meta meta()
The meta-bean for FxOptionSensitivity.
FxOptionSensitivity.Meta metaBean()
FxOptionSensitivity multipliedBy​(double factor)
Multiplies the sensitivities in this builder by the specified factor.
FxOptionSensitivity normalize()
Normalizes the point sensitivities by sorting and merging.
static FxOptionSensitivity of​(FxOptionVolatilitiesName volatilitiesName, CurrencyPair currencyPair, double expiry, double strike, double forward, Currency sensitivityCurrency, double sensitivity)
Obtains an instance, specifying sensitivity currency.
java.lang.String toString()
FxOptionSensitivity withCurrency​(Currency currency)
Returns an instance with the specified sensitivity currency set.
FxOptionSensitivity withSensitivity​(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 org.joda.beans.Bean

property, propertyNames
• Methods inherited from interface com.opengamma.strata.market.sensitivity.PointSensitivityBuilder

build, combinedWith
• Method Detail

• of

public static FxOptionSensitivity of​(FxOptionVolatilitiesName volatilitiesName,
CurrencyPair currencyPair,
double expiry,
double strike,
double forward,
Currency sensitivityCurrency,
double sensitivity)
Obtains an instance, specifying sensitivity currency.
Parameters:
volatilitiesName - the name of the volatilities
currencyPair - the currency pair
expiry - the time to expiry of the option as a year fraction
strike - the strike rate
forward - the forward rate
sensitivityCurrency - the currency of the sensitivity
sensitivity - the value of the sensitivity
Returns:
the point sensitivity object
• withCurrency

public FxOptionSensitivity withCurrency​(Currency currency)
Description copied from interface: PointSensitivity
Returns an instance with the specified sensitivity currency set.

The result will consists of the same points, but with the sensitivity currency altered.

Specified by:
withCurrency in interface PointSensitivity
Specified by:
withCurrency in interface PointSensitivityBuilder
Parameters:
currency - the new currency
Returns:
an instance based on this sensitivity with the specified currency
• withSensitivity

public FxOptionSensitivity withSensitivity​(double sensitivity)
Description copied from interface: PointSensitivity
Returns an instance with the new point sensitivity value.
Specified by:
withSensitivity in interface PointSensitivity
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: PointSensitivity
Compares 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:
compareKey in interface PointSensitivity
Parameters:
other - the other sensitivity
Returns:
positive if greater, zero if equal, negative if less
• convertedTo

public FxOptionSensitivity convertedTo​(Currency resultCurrency,
FxRateProvider rateProvider)
Description copied from interface: PointSensitivity
Converts 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:
convertedTo in interface FxConvertible<PointSensitivity>
Specified by:
convertedTo in interface PointSensitivity
Parameters:
resultCurrency - the currency of the result
rateProvider - the provider of FX rates
Returns:
the converted instance, which should be expressed in the specified currency
• multipliedBy

public FxOptionSensitivity multipliedBy​(double factor)
Description copied from interface: PointSensitivityBuilder
Multiplies 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:
multipliedBy in interface PointSensitivityBuilder
Parameters:
factor - the multiplicative factor
Returns:
the resulting builder, replacing this builder
• mapSensitivity

public FxOptionSensitivity mapSensitivity​(java.util.function.DoubleUnaryOperator operator)
Description copied from interface: PointSensitivityBuilder
Returns 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:
mapSensitivity in interface PointSensitivityBuilder
Parameters:
operator - the operator to be applied to the sensitivities
Returns:
the resulting builder, replacing this builder
• normalize

public FxOptionSensitivity normalize()
Description copied from interface: PointSensitivityBuilder
Normalizes 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:
normalize in interface PointSensitivityBuilder
Returns:
the resulting builder, replacing this builder
• buildInto

public MutablePointSensitivities buildInto​(MutablePointSensitivities combination)
Description copied from interface: PointSensitivityBuilder
Builds the point sensitivity, adding to the specified mutable instance.
Specified by:
buildInto in interface PointSensitivityBuilder
Parameters:
combination - the combination object to add to
Returns:
the specified mutable point sensitivities instance is returned, for method chaining
• cloned

public FxOptionSensitivity cloned()
Description copied from interface: PointSensitivityBuilder
Clones the point sensitivity builder.

This returns a PointSensitivityBuilder instance 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:
cloned in interface PointSensitivityBuilder
Returns:
the built combined sensitivity
• meta

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

public FxOptionSensitivity.Meta metaBean()
Specified by:
metaBean in interface org.joda.beans.Bean
• getVolatilitiesName

public FxOptionVolatilitiesName getVolatilitiesName()
Gets the name of the volatilities.
Returns:
the value of the property, not null
• getCurrencyPair

public CurrencyPair getCurrencyPair()
Gets the currency pair for which the sensitivity is presented.
Returns:
the value of the property, not null
• getExpiry

public double getExpiry()
Gets the time to expiry of the option as a year fraction.
Returns:
the value of the property, not null
• getStrike

public double getStrike()
Gets the strike rate.
Returns:
the value of the property
• getForward

public double getForward()
Gets the forward rate.
Returns:
the value of the property
• getCurrency

public Currency getCurrency()
Gets the currency of the sensitivity.
Specified by:
getCurrency in interface PointSensitivity
Returns:
the value of the property, not null
• getSensitivity

public double getSensitivity()
Gets the value of the sensitivity.
Specified by:
getSensitivity in interface PointSensitivity
Returns:
the value of the property
• 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