• java.lang.Object
• All Implemented Interfaces:
CalculationTarget, Resolvable<ResolvedIborFutureOptionTrade>, PortfolioItem, ProductTrade, ResolvableTrade<ResolvedIborFutureOptionTrade>, SecuritizedProductPortfolioItem<IborFutureOption>, SecuritizedProductTrade<IborFutureOption>, SecurityQuantity, SecurityQuantityTrade, Trade, java.io.Serializable, Bean, ImmutableBean

public final class IborFutureOptionTrade
extends java.lang.Object
implements SecuritizedProductTrade<IborFutureOption>, ResolvableTrade<ResolvedIborFutureOptionTrade>, ImmutableBean, java.io.Serializable
A trade representing an option on a futures contract based on an Ibor index.

A trade in an underlying IborFutureOption. The option is American, exercised at any point up to the exercise time. Both daily margin and upfront premium styles are handled.

An Ibor future option is also known as a STIR future option (Short Term Interest Rate).

#### Price

The price of an Ibor future option is based on the price of the underlying future, the volatility and the time to expiry. The price of the at-the-money option tends to zero as expiry approaches.

Strata uses decimal prices for Ibor future options in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, an option price of 0.2 is related to a futures price of 99.32 that implies an interest rate of 0.68%. Strata represents the price of the future as 0.9932 and thus represents the price of the option as 0.002.

Serialized Form
• ### Nested Class Summary

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

All Methods
Modifier and Type Method Description
static IborFutureOptionTrade.Builder builder()
Returns a builder used to create an instance of the bean.
boolean equals​(java.lang.Object obj)
TradeInfo getInfo()
double getPrice()
Gets the price that was traded, in decimal form.
IborFutureOption getProduct()
Gets the option that was traded.
double getQuantity()
Gets the quantity that was traded.
int hashCode()
static IborFutureOptionTrade.Meta meta()
The meta-bean for IborFutureOptionTrade.
IborFutureOptionTrade.Meta metaBean()
ResolvedIborFutureOptionTrade resolve​(ReferenceData refData)
Resolves this trade using the specified reference data.
PortfolioItemSummary summarize()
Summarizes the portfolio item.
IborFutureOptionTrade.Builder toBuilder()
Returns a builder that allows this bean to be mutated.
java.lang.String toString()
IborFutureOptionTrade withInfo​(TradeInfo info)
Returns an instance with the specified info.
IborFutureOptionTrade withPrice​(double price)
Returns an instance with the specified price.
IborFutureOptionTrade withQuantity​(double quantity)
Returns an instance with the specified quantity.
• ### 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.PortfolioItem

getId
• ### Methods inherited from interface com.opengamma.strata.product.SecuritizedProductPortfolioItem

getCurrency, getSecurityId
• ### Method Detail

• #### withInfo

public IborFutureOptionTrade withInfo​(TradeInfo info)
Description copied from interface: SecuritizedProductTrade
Returns an instance with the specified info.
Specified by:
withInfo in interface ProductTrade
Specified by:
withInfo in interface ResolvableTrade<ResolvedIborFutureOptionTrade>
Specified by:
withInfo in interface SecuritizedProductTrade<IborFutureOption>
Specified by:
withInfo in interface SecurityQuantityTrade
Specified by:
withInfo in interface Trade
Parameters:
info - the new info
Returns:
the instance with the specified info
• #### withQuantity

public IborFutureOptionTrade withQuantity​(double quantity)
Description copied from interface: SecuritizedProductTrade
Returns an instance with the specified quantity.
Specified by:
withQuantity in interface SecuritizedProductPortfolioItem<IborFutureOption>
Specified by:
withQuantity in interface SecuritizedProductTrade<IborFutureOption>
Specified by:
withQuantity in interface SecurityQuantityTrade
Parameters:
quantity - the new quantity
Returns:
the instance with the specified quantity
• #### withPrice

public IborFutureOptionTrade withPrice​(double price)
Description copied from interface: SecuritizedProductTrade
Returns an instance with the specified price.
Specified by:
withPrice in interface SecuritizedProductTrade<IborFutureOption>
Specified by:
withPrice in interface SecurityQuantityTrade
Parameters:
price - the new price
Returns:
the instance with the specified price
• #### summarize

public PortfolioItemSummary summarize()
Description copied from interface: PortfolioItem
Summarizes the portfolio item.

This provides a summary, including a human readable description.

Specified by:
summarize in interface PortfolioItem
Specified by:
summarize in interface Trade
Returns:
the summary of the item
• #### resolve

public ResolvedIborFutureOptionTrade resolve​(ReferenceData refData)
Description copied from interface: ResolvableTrade
Resolves this trade using the specified reference data.

This converts this trade to the equivalent resolved form. All ReferenceDataId identifiers in this instance will be resolved. The resulting ResolvedTrade 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<ResolvedIborFutureOptionTrade>
Specified by:
resolve in interface ResolvableTrade<ResolvedIborFutureOptionTrade>
Parameters:
refData - the reference data to use when resolving
Returns:
• #### meta

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

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

public IborFutureOptionTrade.Meta metaBean()
Specified by:
metaBean in interface Bean
• #### getInfo

public TradeInfo getInfo()

This allows additional information to be attached to the trade. The trade date is required when calling resolve(ReferenceData).

Specified by:
getInfo in interface PortfolioItem
Specified by:
getInfo in interface Trade
Returns:
the value of the property, not null
• #### getProduct

public IborFutureOption getProduct()
Gets the option that was traded.

The product captures the contracted financial details of the trade.

Specified by:
getProduct in interface ProductTrade
Specified by:
getProduct in interface SecuritizedProductPortfolioItem<IborFutureOption>
Returns:
the value of the property, not null
• #### getQuantity

public double getQuantity()
Gets the quantity that was traded.

This is the number of contracts that were traded. This will be positive if buying and negative if selling.

Specified by:
getQuantity in interface SecurityQuantity
Returns:
the value of the property
• #### getPrice

public double getPrice()
Gets the price that was traded, in decimal form.

This is the price agreed when the trade occurred.

Strata uses decimal prices for Ibor future options in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, an option price of 0.2 is related to a futures price of 99.32 that implies an interest rate of 0.68%. Strata represents the price of the future as 0.9932 and thus represents the price of the option as 0.002.

Specified by:
getPrice in interface SecurityQuantityTrade
Returns:
the value of the property
• #### toBuilder

public IborFutureOptionTrade.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