## Class FxNdf

• java.lang.Object
• com.opengamma.strata.product.fx.FxNdf
• All Implemented Interfaces:
Resolvable<ResolvedFxNdf>, FxProduct, Product, java.io.Serializable, org.joda.beans.Bean, org.joda.beans.ImmutableBean

public final class FxNdf
extends java.lang.Object
implements FxProduct, Resolvable<ResolvedFxNdf>, org.joda.beans.ImmutableBean, java.io.Serializable
A Non-Deliverable Forward (NDF).

An NDF is a financial instrument that returns the difference between a fixed FX rate agreed at the inception of the trade and the FX rate at maturity. It is primarily used to handle FX requirements for currencies that have settlement restrictions. For example, the forward may be between USD and CNY (Chinese Yuan).

Serialized Form
• ### Nested Class Summary

Nested Classes
Modifier and Type Class Description
static class  FxNdf.Builder
The bean-builder for FxNdf.
static class  FxNdf.Meta
The meta-bean for FxNdf.
• ### Method Summary

All Methods
Modifier and Type Method Description
ImmutableSet<Currency> allPaymentCurrencies()
Returns the set of currencies that the product pays in.
static FxNdf.Builder builder()
Returns a builder used to create an instance of the bean.
boolean equals​(java.lang.Object obj)
FxRate getAgreedFxRate()
Gets the FX rate agreed for the value date at the inception of the trade.
CurrencyPair getCurrencyPair()
Gets the currency pair that the FX trade is based on, in conventional order.
FxIndex getIndex()
Gets the index defining the FX rate to observe on the fixing date.
Currency getNonDeliverableCurrency()
Gets the non-deliverable currency.
java.time.LocalDate getPaymentDate()
Gets the date that the forward settles.
Currency getSettlementCurrency()
Gets the settlement currency.
CurrencyAmount getSettlementCurrencyNotional()
Gets the notional amount in the settlement currency, positive if receiving, negative if paying.
int hashCode()
static FxNdf.Meta meta()
The meta-bean for FxNdf.
FxNdf.Meta metaBean()
ResolvedFxNdf resolve​(ReferenceData refData)
Resolves this object using the specified reference data.
FxNdf.Builder toBuilder()
Returns a builder that allows this bean to be mutated.
java.lang.String toString()
• ### 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.product.fx.FxProduct

allCurrencies, isCrossCurrency
• ### Method Detail

• #### getCurrencyPair

public CurrencyPair getCurrencyPair()
Description copied from interface: FxProduct
Gets the currency pair that the FX trade is based on, in conventional order.

This represents the main currency pair of the FX. If the trade settles in a third currency, that is not recorded here.

Specified by:
getCurrencyPair in interface FxProduct
Returns:
the currency pair
• #### allPaymentCurrencies

public ImmutableSet<Currency> allPaymentCurrencies()
Description copied from interface: Product
Returns the set of currencies that the product pays in.

This returns the complete set of payment currencies. This will typically return one or two currencies.

Specified by:
allPaymentCurrencies in interface Product
Returns:
the set of payment currencies
• #### getSettlementCurrency

public Currency getSettlementCurrency()
Gets the settlement currency.
Returns:
the currency that is to be settled
• #### getNonDeliverableCurrency

public Currency getNonDeliverableCurrency()
Gets the non-deliverable currency.

Returns the currency that is not the settlement currency.

Returns:
the currency that is not to be settled
• #### resolve

public ResolvedFxNdf resolve​(ReferenceData refData)
Description copied from interface: Resolvable
Resolves this object using the specified reference data.

This converts the object implementing this interface to the equivalent resolved form. All ReferenceDataId identifiers in this instance will be resolved. The resolved form will typically be a type that is optimized for pricing.

Resolved objects may be bound to data that changes over time, such as holiday calendars. If the data changes, such as the addition of a new holiday, the resolved form will not be updated. Care must be taken when placing the resolved form in a cache or persistence layer.

Specified by:
resolve in interface Resolvable<ResolvedFxNdf>
Parameters:
refData - the reference data to use when resolving
Returns:
the resolved instance
• #### meta

public static FxNdf.Meta meta()
The meta-bean for FxNdf.
Returns:
the meta-bean, not null
• #### builder

public static FxNdf.Builder builder()
Returns a builder used to create an instance of the bean.
Returns:
the builder, not null
• #### metaBean

public FxNdf.Meta metaBean()
Specified by:
metaBean in interface org.joda.beans.Bean
• #### getSettlementCurrencyNotional

public CurrencyAmount getSettlementCurrencyNotional()
Gets the notional amount in the settlement currency, positive if receiving, negative if paying.

The amount is signed. A positive amount indicates the payment is to be received. A negative amount indicates the payment is to be paid.

This must be specified in one of the two currencies of the forward.

Returns:
the value of the property, not null
• #### getAgreedFxRate

public FxRate getAgreedFxRate()
Gets the FX rate agreed for the value date at the inception of the trade.

The settlement amount is based on the difference between this rate and the rate observed on the fixing date using the index.

The forward is between the two currencies defined by the rate.

Returns:
the value of the property, not null
• #### getIndex

public FxIndex getIndex()
Gets the index defining the FX rate to observe on the fixing date.

The index is used to settle the trade by providing the actual FX rate on the fixing date. The value of the trade is based on the difference between the actual rate and the agreed rate.

The forward is between the two currencies defined by the index.

Returns:
the value of the property, not null
• #### getPaymentDate

public java.time.LocalDate getPaymentDate()
Gets the date that the forward settles.

On this date, the settlement amount will be exchanged. This date should be a valid business day.

Returns:
the value of the property, not null
• #### toBuilder

public FxNdf.Builder toBuilder()
Returns a builder that allows this bean to be mutated.
Returns:
the mutable builder, 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