The trade model has three basic concepts, trades, securities and products.
Trade is the basic element of finance,
a transaction between two organizations, known as counterparties.
Most trades represented in the system will be contracts that have been agreed on a date in the past.
The trade model also allows trades with a date in the future, or without any date.
Security is a standard contract that is traded,
such as an equity share or futures contract. Securities are typically created once and shared
using an identifier, represented by a
They are often referred to as reference data.
Securities may also be stored in a
of in a
Product is the financial details of the trade or security.
A product typically contains enough information to be priced, such as the dates, holidays, indices,
currencies and amounts. There is an implementation of
Product for each distinct type
of financial instrument.
Trades are typically classified as Over-The-Counter (OTC) and listed.
An OTC trade directly embeds the product it refers to.
As such, OTC trades implement
The key to understanding the model is appreciating the separation of products from trades. In many cases, it is possible to price the product without knowing any trade details. This allows a product to be an underlying of another product, such as a swap within a swaption.
A listed trade can be defined in two ways.
The first approach is to use
SecurityTrade stores just the security identifier, quantity and trade price.
When the trade needs to be priced, the identifier can be resolved to a
The reference data could be backed by an in-memory store or a database.
The second approach is to use a more specific trade type, such as
These types include the product details directly so that no reference data is needed.
As such, this approach avoids the need to use the Strata
For example, consider a bond future.
In the first approach, the application would create a
SecurityTrade using the identifier of the future.
The reference data would be populated, mapping the identifier to an instance of
and additional identifiers for each of the underlying
In the second approach, the trade would be defined using
BondFutureTrade. In this case,
the trade directly holds the product model of the
BondFuture and each underlying
There is thus no need to populate the reference data with securities.
The key to understanding the model is appreciating the separation of products from trades and securities. It is often possible to price either against the market or against a model. Details for pricing against the market are held in the security. Details for pricing against the model are held in the product.
Interface Summary Interface Description AttributesAdditional attributes that can be associated with a model object. LegalEntityA legal entity. PortfolioItemAn item in a portfolio. PortfolioItemInfoAdditional information about a portfolio item. PositionA position in a security. ProductThe product details of a financial instrument. ProductTradeA trade that is directly based on a product. ResolvableSecurityPositionA position that has a security identifier that can be resolved using reference data. ResolvableSecurityTradeA trade that has a security identifier that can be resolved using reference data. ResolvableTrade<T extends ResolvedTrade>A trade that can to be resolved using reference data. ResolvedProductA product that has been resolved for pricing. ResolvedTradeA trade that has been resolved for pricing. SecuritizedProductThe product details of a financial instrument that is traded as a security. SecuritizedProductPortfolioItem<P extends SecuritizedProduct>A trade that is directly based on a securitized product. SecuritizedProductPosition<P extends SecuritizedProduct>A position that is directly based on a securitized product. SecuritizedProductTrade<P extends SecuritizedProduct>A trade that is directly based on a securitized product. SecurityA security that can be traded. SecurityQuantityA quantity of a security. SecurityQuantityTradeA trade that is based on security, quantity and price. TradeA trade with additional structured information. TradeConventionA market convention for trades. TradeTemplateA template used to create a trade.
Class Summary Class Description AttributeType<T>The type that provides meaning to an attribute. GenericSecurityA generic security, defined in terms of the value of each tick. GenericSecurity.MetaThe meta-bean for
GenericSecurityPositionA position in a security, where the security is embedded ready for mark-to-market pricing. GenericSecurityPosition.BuilderThe bean-builder for
GenericSecurityPosition.MetaThe meta-bean for
GenericSecurityTradeA trade representing the purchase or sale of a security, where the security is embedded ready for mark-to-market pricing. GenericSecurityTrade.BuilderThe bean-builder for
GenericSecurityTrade.MetaThe meta-bean for
LegalEntityIdAn identifier for a legal entity. PortfolioItemSummaryA summary of a portfolio item. PortfolioItemSummary.BuilderThe bean-builder for
PositionInfoAdditional information about a position. PositionInfo.MetaThe meta-bean for
PositionInfoBuilderBuilder to create
ProductTypeThe type of a portfolio item. SecurityIdAn identifier for a security. SecurityInfoInformation about a security. SecurityInfo.MetaThe meta-bean for
SecurityInfoBuilderBuilder to create
SecurityPositionA position in a security, where the security is referenced by identifier. SecurityPosition.BuilderThe bean-builder for
SecurityPosition.MetaThe meta-bean for
SecurityPriceInfoDefines the meaning of the security price. SecurityPriceInfo.MetaThe meta-bean for
SecurityTradeA trade representing the purchase or sale of a security, where the security is referenced by identifier. SecurityTrade.BuilderThe bean-builder for
SecurityTrade.MetaThe meta-bean for
SimpleLegalEntityA simple legal entity implementation. TradedPriceThe traded price of a security-based trade. TradeInfoAdditional information about a trade. TradeInfo.MetaThe meta-bean for
TradeInfoBuilderBuilder to create
Enum Summary Enum Description PortfolioItemTypeThe type of a portfolio item.