public final class Fra extends Object implements Product, Resolvable<ResolvedFra>, org.joda.beans.ImmutableBean, Serializable
A FRA is a financial instrument that represents the one off exchange of a fixed rate of interest for a floating rate at a future date.
For example, a FRA might involve an agreement to exchange the difference between the fixed rate of 1% and the 'GBP-LIBOR-3M' rate in 2 months time.
The FRA is defined by four dates.
The start date, end date and payment date are determined when the trade if created, adjusting to valid business days based on the holiday calendar dates known on the trade trade. The payment date may be further adjusted when the FRA is resolved if an additional holiday has been added. The data model does allow for the start and end dates to be adjusted when the FRA is resolved, but this is typically not used.
| Modifier and Type | Class and Description |
|---|---|
static class |
Fra.Builder
The bean-builder for
Fra. |
static class |
Fra.Meta
The meta-bean for
Fra. |
| Modifier and Type | Method and Description |
|---|---|
ImmutableSet<Currency> |
allCurrencies()
Returns the set of currencies the product refers to.
|
static Fra.Builder |
builder()
Returns a builder used to create an instance of the bean.
|
boolean |
equals(Object obj) |
Optional<BusinessDayAdjustment> |
getBusinessDayAdjustment()
Gets the business day adjustment to apply to the start and end date, optional.
|
BuySell |
getBuySell()
Gets whether the FRA is buy or sell.
|
Currency |
getCurrency()
Gets the primary currency, defaulted to the currency of the index.
|
DayCount |
getDayCount()
Gets the day count convention applicable, defaulted to the day count of the index.
|
FraDiscountingMethod |
getDiscounting()
Gets the method to use for discounting, defaulted to 'ISDA' or 'AFMA'.
|
LocalDate |
getEndDate()
Gets the end date, which is the termination date of the FRA.
|
double |
getFixedRate()
Gets the fixed rate of interest.
|
DaysAdjustment |
getFixingDateOffset()
Gets the offset of the fixing date from the start date.
|
IborIndex |
getIndex()
Gets the Ibor index.
|
Optional<IborIndex> |
getIndexInterpolated()
Gets the second Ibor index to be used for linear interpolation, optional.
|
double |
getNotional()
Gets the notional amount.
|
AdjustableDate |
getPaymentDate()
Gets the payment date.
|
LocalDate |
getStartDate()
Gets the start date, which is the effective date of the FRA.
|
int |
hashCode() |
static Fra.Meta |
meta()
The meta-bean for
Fra. |
Fra.Meta |
metaBean() |
ResolvedFra |
resolve(ReferenceData refData) |
Fra.Builder |
toBuilder()
Returns a builder that allows this bean to be mutated.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitallPaymentCurrencies, isCrossCurrencypublic ImmutableSet<Currency> allCurrencies()
ProductThis returns the complete set of currencies, not just the payment currencies. For example, the sets will differ when one of the currencies is non-deliverable.
allCurrencies in interface Productpublic ResolvedFra resolve(ReferenceData refData)
resolve in interface Resolvable<ResolvedFra>public static Fra.Meta meta()
Fra.public static Fra.Builder builder()
public Fra.Meta metaBean()
metaBean in interface org.joda.beans.Beanpublic BuySell getBuySell()
A value of 'Buy' implies that the floating rate is received from the counterparty, with the fixed rate being paid. A value of 'Sell' implies that the floating rate is paid to the counterparty, with the fixed rate being received.
public Currency getCurrency()
This is the currency of the FRA and the currency that payment is made in. The data model permits this currency to differ from that of the index, however the two are typically the same.
When building, this will default to the currency of the index if not specified.
public double getNotional()
The notional expressed here must be positive.
The currency of the notional is specified by currency.
public LocalDate getStartDate()
This is the first date that interest accrues.
This date is typically set to be a valid business day.
Optionally, the businessDayAdjustment property may be set to provide a rule for adjustment.
public LocalDate getEndDate()
This is the last day that interest accrues. This date must be after the start date.
This date is typically set to be a valid business day.
Optionally, the businessDayAdjustment property may be set to provide a rule for adjustment.
public Optional<BusinessDayAdjustment> getBusinessDayAdjustment()
The start and end date are typically defined as valid business days and thus do not need to be adjusted. If this optional property is present, then the start and end date will be adjusted as defined here.
public AdjustableDate getPaymentDate()
The payment date is typically the same as the start date. The date may be subject to adjustment to ensure it is a business day.
When building, this will default to the start date with no adjustments if not specified.
public double getFixedRate()
See buySell to determine whether this rate is paid or received.
public IborIndex getIndex()
The floating rate to be paid is based on this index
It will be a well known market index such as 'GBP-LIBOR-3M'.
This will be used throughout unless indexInterpolated is present.
See buySell to determine whether this rate is paid or received.
public Optional<IborIndex> getIndexInterpolated()
This will be used with index to linearly interpolate the rate.
It will be a well known market index such as 'GBP-LIBOR-6M'.
This index may be shorter or longer than index, but not the same.
public DaysAdjustment getFixingDateOffset()
The offset is applied to the start date and is typically minus 2 business days. The data model permits the offset to differ from that of the index, however the two are typically the same.
When building, this will default to the fixing date offset of the index if not specified.
public DayCount getDayCount()
This is used to convert dates to a numerical value. The data model permits the day count to differ from that of the index, however the two are typically the same.
When building, this will default to the day count of the index if not specified.
public FraDiscountingMethod getDiscounting()
There are different approaches FRA pricing in the area of discounting. This method specifies the approach for this FRA.
When building, this will default 'AFMA' if the index has the currency 'AUD' or 'NZD' and to 'ISDA' otherwise.
public Fra.Builder toBuilder()
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.