SecurityInfo info
This includes the security identifier.
PositionInfo info
This allows additional information to be attached to the position.
GenericSecurity security
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
TradeInfo info
This allows additional information to be attached to the trade.
GenericSecurity security
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
private Object readResolve()
StandardId standardId
StandardId id
PortfolioItemType portfolioItemType
ProductType productType
ImmutableSet<E> currencies
This should include the primary currencies the item is based on, not just the payment currencies.
String description
StandardId id
The identifier is used to identify the position. It will typically be an identifier in an external data system.
A position may have multiple active identifiers. Any identifier may be chosen here. Certain uses of the identifier, such as storage in a database, require that the identifier does not change over time, and this should be considered best practice.
ImmutableMap<K,V> attributes
Position attributes provide the ability to associate arbitrary information in a key-value map.
String description
private Object readResolve()
StandardId standardId
SecurityId id
This identifier uniquely identifies the security within the system.
It is the key used to lookup the security in ReferenceData.
A real-world security will typically have multiple identifiers. The only restriction placed on the identifier is that it is sufficiently unique for the reference data lookup. As such, it is acceptable to use an identifier from a well-known global or vendor symbology.
SecurityPriceInfo priceInfo
This provides information about the security price. This can be used to convert the price into a monetary value.
ImmutableMap<K,V> attributes
Security attributes provide the ability to associate arbitrary information in a key-value map.
PositionInfo info
This allows additional information to be attached to the position.
SecurityId securityId
This identifier uniquely identifies the security within the system.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
private Object readResolve()
double tickSize
Tick size is the minimum movement in the price of the security. For example, the price might move up or down in units of 0.01 It must be a positive decimal number.
CurrencyAmount tickValue
Tick value is the monetary value of the minimum movement in the price of the security. When the price changes by one tick, this amount is gained or lost.
double contractSize
Contract size is the quantity of the underlying present in each derivative contract. For example, an equity option typically consists of 100 shares.
TradeInfo info
This allows additional information to be attached to the trade.
SecurityId securityId
This identifier uniquely identifies the security within the system.
double quantity
This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
ImmutableMap<K,V> attributes
Attributes provide the ability to associate arbitrary information in a key-value map.
LegalEntityId legalEntityId
String name
Country country
LocalDate tradeDate
The date that the trade occurred.
double price
See the security type for more details on the meaning of the price.
StandardId id
The identifier is used to identify the trade. It will typically be an identifier in an external data system.
A trade may have multiple active identifiers. Any identifier may be chosen here. Certain uses of the identifier, such as storage in a database, require that the identifier does not change over time, and this should be considered best practice.
StandardId counterparty
An identifier used to specify the counterparty of the trade.
LocalDate tradeDate
LocalTime tradeTime
ZoneId zone
LocalDate settlementDate
ImmutableMap<K,V> attributes
Trade attributes provide the ability to associate arbitrary information in a key-value map.
SecurityId securityId
This identifier uniquely identifies the security within the system.
AdjustablePayment notional
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count.
BillYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bill.
DaysAdjustment settlementDateOffset
It is usually one business day for US and UK bills and two days for Euroland government bills.
PositionInfo info
This allows additional information to be attached to the position.
Bill product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
AdjustablePayment notional
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count.
BillYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bill.
DaysAdjustment settlementDateOffset
It is usually one business day for US and UK bills and two days for Euroland government bills.
TradeInfo info
This allows additional information to be attached to the trade.
Bill product
The product captures the contracted financial details of the trade.
double quantity
This will be positive if buying and negative if selling.
double price
SecurityId securityId
This identifier uniquely identifies the security within the system.
ImmutableList<E> deliveryBasket
The underling which will be delivered in the future time is chosen from a basket of underling securities. This must not be empty.
All of the underlying bonds must have the same notional and currency.
ImmutableList<E> conversionFactors
The price of each underlying security in the basket is rescaled by the conversion factor.
This must not be empty, and its size must be the same as the size of deliveryBasket.
All of the underlying bonds must have the same notional and currency.
LocalDate lastTradeDate
The future security is traded until this date.
LocalDate firstNoticeDate
The first date on which the delivery of the underlying is authorized.
LocalDate lastNoticeDate
The last date on which the delivery of the underlying is authorized.
LocalDate firstDeliveryDate
The first date on which the underlying is delivered.
If not specified, the date will be computed from firstNoticeDate by using
settlementDateOffset in the first element of the delivery basket
when the future is resolved.
LocalDate lastDeliveryDate
The last date on which the underlying is delivered.
If not specified, the date will be computed from lastNoticeDate by using
settlementDateOffset in the first element of the delivery basket
when the future is resolved.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
SecurityId securityId
This identifier uniquely identifies the security within the system.
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future.
This must be represented in decimal form, (1.0 - decimalRate).
As such, the common market price of 99.3 for a 0.7% rate must be input as 0.993.
The rate implied by the strike can take negative values.
LocalDate expiryDate
The expiry date is related to the expiry time and time-zone. The date must not be after last trade date of the underlying future.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 is represented as 0.997125 which has 6 decimal places.
BondFuture underlyingFuture
PositionInfo info
This allows additional information to be attached to the position.
BondFutureOption product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
Currency currency
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future.
This must be represented in decimal form, (1.0 - decimalRate).
As such, the common market price of 99.3 for a 0.7% rate must be input as 0.993.
The rate implied by the strike can take negative values.
LocalDate expiryDate
The expiry date is related to the expiry time and time-zone. The date must not be after last trade date of the underlying future.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 is represented as 0.997125 which has 6 decimal places.
SecurityId underlyingFutureId
TradeInfo info
This allows additional information to be attached to the trade.
The trade date is required when calling BondFutureOptionTrade.resolve(ReferenceData).
BondFutureOption product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
PositionInfo info
This allows additional information to be attached to the position.
BondFuture product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
Currency currency
ImmutableList<E> deliveryBasketIds
The underlying which will be delivered in the future time is chosen from a basket of underling securities. This must not be empty.
All of the underlying bonds must have the same notional and currency.
ImmutableList<E> conversionFactors
The price of each underlying security in the basket is rescaled by the conversion factor.
This must not be empty, and its size must be the same as the size of deliveryBasketIds.
All of the underlying bonds must have the same notional and currency.
LocalDate lastTradeDate
The future security is traded until this date.
LocalDate firstNoticeDate
The first date on which the delivery of the underlying is authorized.
LocalDate lastNoticeDate
The last date on which the delivery of the underlying is authorized.
LocalDate firstDeliveryDate
The first date on which the underlying is delivered.
If not specified, the date will be computed from firstNoticeDate by using
settlementDateOffset in the first element of the delivery basket
when the future is resolved.
LocalDate lastDeliveryDate
The last date on which the underlying is delivered.
If not specified, the date will be computed from lastNoticeDate by using
settlementDateOffset in the first element of the delivery basket
when the future is resolved.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
TradeInfo info
This allows additional information to be attached to the trade.
The trade date is required when calling BondFutureTrade.resolve(ReferenceData).
BondFuture product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
SecurityId securityId
This identifier uniquely identifies the security within the system.
Currency currency
double notional
The notional expressed here must be positive.
The currency of the notional is specified by currency.
PeriodicSchedule accrualSchedule
This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the product.
InflationRateCalculation rateCalculation
The reference index is interpolated index or monthly index.
Real coupons are represented by gearing in the calculation.
The price index value at the start of the bond is represented by firstIndexValue in the calculation.
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count. For the inflation-indexed bond, the day count convention is used to compute accrued interest.
Note that the year fraction of a coupon payment is computed based on the unadjusted dates in the schedule.
CapitalIndexedBondYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bond.
DaysAdjustment settlementDateOffset
This is used to compute clean price. The clean price is the relative price to be paid at the standard settlement date in exchange for the bond.
DaysAdjustment exCouponPeriod
Some bonds trade ex-coupons before the coupon payment. The coupon is paid not to the owner of the bond on the payment date but to the owner of the bond on the detachment date. The difference between the two is the ex-coupon period (measured in days).
Because the detachment date is not after the coupon date, the number of days stored in this field should be zero or negative.
Currency currency
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
double notional
The notional amount applicable during the period.
The currency of the notional is specified by currency.
double realCoupon
The real coupon is the rate before taking the inflation into account. For example, a real coupon of c for semi-annual payments is c/2.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
LocalDate detachmentDate
Some bonds trade ex-coupon before the coupon payment. The coupon is paid not to the owner of the bond on the payment date but to the owner of the bond on the detachment date.
When building, this will default to the end date if not specified.
RateComputation rateComputation
The value of the period is based on this rate.
This must be an inflation rate observation, specifically InflationEndInterpolatedRateComputation
or InflationEndMonthRateComputation.
PositionInfo info
This allows additional information to be attached to the position.
CapitalIndexedBond product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
Currency currency
double notional
The notional expressed here must be positive.
The currency of the notional is specified by currency.
PeriodicSchedule accrualSchedule
This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the product.
InflationRateCalculation rateCalculation
The reference index is interpolated index or monthly index.
Real coupons are represented by gearing in the calculation.
The price index value at the start of the bond is represented by firstIndexValue in the calculation.
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count. For the inflation-indexed bond, the day count convention is used to compute accrued interest.
Note that the year fraction of a coupon payment is computed based on the unadjusted dates in the schedule.
CapitalIndexedBondYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bond.
DaysAdjustment settlementDateOffset
This is used to compute clean price. The clean price is the relative price to be paid at the standard settlement date in exchange for the bond.
DaysAdjustment exCouponPeriod
Some bonds trade ex-coupons before the coupon payment. The coupon is paid not to the owner of the bond on the payment date but to the owner of the bond on the detachment date. The difference between the two is the ex-coupon period (measured in days).
Because the detachment date is not after the coupon date, the number of days stored in this field should be zero or negative.
TradeInfo info
This allows additional information to be attached to the trade.
Either the trade or settlement date is required when calling CapitalIndexedBondTrade.resolve(ReferenceData).
CapitalIndexedBond product
The product captures the contracted financial details of the trade.
double quantity
This will be positive if buying and negative if selling.
double price
The "clean" price excludes any accrued interest.
Strata uses decimal prices for bonds in the trade model, pricers and market data. For example, a price of 99.32% is represented in Strata by 0.9932.
SecurityId securityId
This identifier uniquely identifies the security within the system.
Currency currency
double notional
The notional expressed here must be positive.
The currency of the notional is specified by currency.
PeriodicSchedule accrualSchedule
This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the product.
double fixedRate
The periodic payments are based on this fixed coupon rate.
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count. For the fixed bond, the day count convention is used to compute accrued interest.
Note that the year fraction of a coupon payment is computed based on the unadjusted dates in the schedule.
FixedCouponBondYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bond.
DaysAdjustment settlementDateOffset
This is used to compute clean price. The clean price is the relative price to be paid at the standard settlement date in exchange for the bond.
It is usually one business day for US treasuries and UK Gilts and three days for Euroland government bonds.
DaysAdjustment exCouponPeriod
Some bonds trade ex-coupons before the coupon payment. The coupon is paid not to the owner of the bond on the payment date but to the owner of the bond on the detachment date. The difference between the two is the ex-coupon period (measured in days).
Because the detachment date is not after the coupon date, the number of days stored in this field should be zero or negative.
LongShort longShort
Long indicates that the owner has the right to exercise the option at expiry.
FixedCouponBond underlying
AdjustableDate expiryDate
This is the last date that the option can be exercised.
This date is typically set to be a valid business day.
However, the businessDayAdjustment property may be set to provide a rule for adjustment.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
double quantity
This will be positive if buying (call) and negative if selling (put).
double cleanStrikePrice
The "clean" price excludes any accrued interest.
Strata uses decimal prices for bonds in the trade model, pricers and market data. For example, a price of 99.32% is represented in Strata by 0.9932.
AdjustableDate settlementDate
This date is typically set to be a valid business day.
However, the businessDayAdjustment property may be set to provide a rule for adjustment.
Currency currency
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
double notional
The notional amount applicable during the period.
The currency of the notional is specified by currency.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
LocalDate detachmentDate
Some bonds trade ex-coupon before the coupon payment. The coupon is paid not to the owner of the bond on the payment date but to the owner of the bond on the detachment date.
When building, this will default to the end date if not specified.
double fixedRate
The single payment is based on this fixed coupon rate.
double yearFraction
The year fraction of a bond period is based on the unadjusted dates.
The value is usually calculated using a DayCount.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
PositionInfo info
This allows additional information to be attached to the position.
FixedCouponBond product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
Currency currency
double notional
The notional expressed here must be positive.
The currency of the notional is specified by currency.
PeriodicSchedule accrualSchedule
This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the product.
double fixedRate
The periodic payments are based on this fixed coupon rate.
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count. For the fixed bond, the day count convention is used to compute accrued interest.
Note that the year fraction of a coupon payment is computed based on the unadjusted dates in the schedule.
FixedCouponBondYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bond.
DaysAdjustment settlementDateOffset
This is used to compute clean price. The clean price is the relative price to be paid at the standard settlement date in exchange for the bond.
It is usually one business day for US treasuries and UK Gilts and three days for Euroland government bonds.
DaysAdjustment exCouponPeriod
Some bonds trade ex-coupons before the coupon payment. The coupon is paid not to the owner of the bond on the payment date but to the owner of the bond on the detachment date. The difference between the two is the ex-coupon period (measured in days).
Because the detachment date is not after the coupon date, the number of days stored in this field should be zero or negative.
TradeInfo info
This allows additional information to be attached to the trade.
Either the trade or settlement date is required when calling FixedCouponBondTrade.resolve(ReferenceData).
FixedCouponBond product
The product captures the contracted financial details of the trade.
double quantity
This will be positive if buying and negative if selling.
double price
The "clean" price excludes any accrued interest.
Strata uses decimal prices for bonds in the trade model, pricers and market data. For example, a price of 99.32% is represented in Strata by 0.9932.
Payment payment
This includes the payment date and amount. If the schedule adjusts for business days, then the date is the adjusted date.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
SecurityId securityId
This identifier uniquely identifies the security within the system.
Payment notional
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count.
BillYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bill.
DaysAdjustment settlementDateOffset
It is usually one business day for US and UK bills and two days for Euroland government bills.
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedBill product
The product captures the contracted financial details of the trade.
double quantity
This will be positive if buying and negative if selling.
Payment settlement
When this class is used to represent a position, this property will be empty.
SecurityId securityId
This identifier uniquely identifies the security within the system.
ImmutableList<E> deliveryBasket
The underling which will be delivered in the future time is chosen from a basket of underling securities. This must not be empty.
All of the underlying bonds must have the same notional and currency.
ImmutableList<E> conversionFactors
The price of each underlying security in the basket is rescaled by the conversion factor.
This must not be empty, and its size must be the same as the size of deliveryBasket.
All of the underlying bonds must have the same notional and currency.
LocalDate lastTradeDate
The future security is traded until this date.
LocalDate firstNoticeDate
The first date on which the delivery of the underlying is authorized.
LocalDate lastNoticeDate
The last date on which the delivery of the underlying is authorized.
LocalDate firstDeliveryDate
The first date on which the underlying is delivered.
LocalDate lastDeliveryDate
The last date on which the underlying is delivered.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
SecurityId securityId
This identifier uniquely identifies the security within the system.
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future. This must be represented in decimal form.
ZonedDateTime expiry
The date must not be after last trade date of the underlying future.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 is represented as 0.997125 which has 6 decimal places.
ResolvedBondFuture underlyingFuture
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedBondFutureOption product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
TradedPrice tradedPrice
This is the price agreed when the trade occurred, in decimal form.
Strata uses decimal prices for bond futures options in the trade model, pricers and market data.
This is coherent with the pricing of BondFuture.
This is optional to allow the class to be used to price both trades and positions. When the instance represents a trade, the traded price should be present. When the instance represents a position, the traded price should be empty.
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedBondFuture product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
TradedPrice tradedPrice
This is the price agreed when the trade occurred, in decimal form.
Strata uses decimal prices for bond futures in the trade model, pricers and market data.
This is coherent with the pricing of FixedCouponBond. The bond futures delivery is a bond
for an amount computed from the bond future price, a conversion factor and the accrued interest.
This is optional to allow the class to be used to price both trades and positions. When the instance represents a trade, the traded price should be present. When the instance represents a position, the traded price should be empty.
SecurityId securityId
This identifier uniquely identifies the security within the system.
CapitalIndexedBondPaymentPeriod nominalPayment
The payment date of the nominal payment agrees with the final coupon payment date of the periodic payments.
ImmutableList<E> periodicPayments
Each payment period represents part of the life-time of the product. The start date and end date of the leg are determined from the first and last period. As such, the periods should be sorted.
Frequency frequency
This must match the frequency used to generate the payment schedule.
RollConvention rollConvention
This must match the convention used to generate the payment schedule.
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count. For the inflation-indexed bond, the day count convention is used to compute accrued interest.
CapitalIndexedBondYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bond.
DaysAdjustment settlementDateOffset
This is used to compute clean price. The clean price is the relative price to be paid at the standard settlement date in exchange for the bond.
InflationRateCalculation rateCalculation
The reference index is interpolated index or monthly index.
Real coupons are represented by gearing in the calculation.
The price index value at the start of the bond is represented by firstIndexValue in the calculation.
LocalDate settlementDate
double price
The "clean" price excludes any accrued interest.
Strata uses decimal prices for bonds in the trade model, pricers and market data. For example, a price of 99.32% is represented in Strata by 0.9932.
BondPaymentPeriod payment
The payment sign should be compatible with the product notional and trade quantity, thus the payment is negative for positive quantity and positive for negative quantity.
This is effectively a fixed amount payment once the inflation rate is fixed.
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedCapitalIndexedBond product
The product captures the contracted financial details of the trade.
double quantity
This will be positive if buying and negative if selling.
ResolvedCapitalIndexedBondSettlement settlement
When this class is used to represent a position, this property will be empty.
SecurityId securityId
This identifier uniquely identifies the security within the system.
Payment nominalPayment
The payment date of the nominal payment agrees with the final coupon payment date of the periodic payments.
ImmutableList<E> periodicPayments
Each payment period represents part of the life-time of the product. The start date and end date of the leg are determined from the first and last period. As such, the periods should be sorted.
Frequency frequency
This must match the frequency used to generate the payment schedule.
RollConvention rollConvention
This must match the convention used to generate the payment schedule.
double fixedRate
The periodic payments are based on this fixed coupon rate.
DayCount dayCount
The conversion from dates to a numerical value is made based on this day count. For the fixed bond, the day count convention is used to compute accrued interest.
Note that the year fraction of a coupon payment is computed based on the unadjusted dates in the schedule.
FixedCouponBondYieldConvention yieldConvention
The convention defines how to convert from yield to price and inversely.
LegalEntityId legalEntityId
This identifier is used for the legal entity that issues the bond.
DaysAdjustment settlementDateOffset
This is used to compute clean price. The clean price is the relative price to be paid at the standard settlement date in exchange for the bond.
It is usually one business day for US treasuries and UK Gilts and three days for Euroland government bonds.
LongShort longShort
Long indicates that the owner has the right to exercise the option at expiry.
ResolvedFixedCouponBond underlying
ZonedDateTime expiry
The option is European, and can only be exercised on the expiry date.
double quantity
This will be positive if buying (call) and negative if selling (put).
ResolvedFixedCouponBondSettlement settlement
LocalDate settlementDate
double price
The "clean" price excludes any accrued interest.
Strata uses decimal prices for bonds in the trade model, pricers and market data. For example, a price of 99.32% is represented in Strata by 0.9932.
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedFixedCouponBond product
The product captures the contracted financial details of the trade.
double quantity
This will be positive if buying and negative if selling.
ResolvedFixedCouponBondSettlement settlement
When this class is used to represent a position, this property will be empty.
IborCapFloorLeg capFloorLeg
This is associated with periodic payments based on Ibor rate. The payments are Ibor caplets or Ibor floorlets.
SwapLeg payLeg
These periodic payments are not made for typical cap/floor products. Instead the premium is paid upfront.
PayReceive payReceive
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty.
PeriodicSchedule paymentSchedule
This is used to define the periodic payment periods. These are used directly or indirectly to determine other dates in the leg.
DaysAdjustment paymentDateOffset
The offset is applied to the adjusted end date of each payment period. Offset can be based on calendar days or business days.
Currency currency
This is the currency of the leg and the currency that payoff calculation is made in. The amounts of the notional are expressed in terms of this currency.
ValueSchedule notional
The notional amount applicable during the period.
The currency of the notional is specified by currency.
IborRateCalculation calculation
The interest rate accrual is based on Ibor index.
ValueSchedule capSchedule
This defines the strike value of a cap as an initial value and a list of adjustments. Thus individual caplets may have different strike values. The cap rate is only allowed to change at payment period boundaries.
If the product is not a cap, the cap schedule will be absent.
ValueSchedule floorSchedule
This defines the strike value of a floor as an initial value and a list of adjustments. Thus individual floorlets may have different strike values. The floor rate is only allowed to change at payment period boundaries.
If the product is not a floor, the floor schedule will be absent.
TradeInfo info
This allows additional information to be attached to the trade.
IborCapFloor product
The product captures the contracted financial details of the trade.
AdjustablePayment premium
For most Ibor cap/floor products, a premium is paid upfront. This typically occurs instead of periodic payments based on fixed or Ibor rates over the lifetime of the product.
The premium sign must be compatible with the product Pay/Receive flag.
Currency currency
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
double amount
The currency of the notional is specified by currency.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
double yearFraction
The value is usually calculated using a DayCount which may be different to that of the index.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
LocalDate paymentDate
If the schedule adjusts for business days, then this is the adjusted date.
Double caplet
This defines the strike value of a caplet.
If the period is not a caplet, this field will be absent.
Double floorlet
This defines the strike value of a floorlet.
If the period is not a floorlet, this field will be absent.
IborRateComputation iborRate
The value of the period is based on this Ibor rate. For example, it might be a well known market index such as 'GBP-LIBOR-3M'.
Currency currency
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
double notional
The notional amount applicable during the period.
The currency of the notional is specified by currency.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
double yearFraction
The value is usually calculated using a DayCount which may be different to that of the index.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
LocalDate paymentDate
If the schedule adjusts for business days, then this is the adjusted date.
Double caplet
This defines the strike value of a caplet.
If the period is not a caplet, this field will be absent.
Double floorlet
This defines the strike value of a floorlet.
If the period is not a floorlet, this field will be absent.
IborRateComputation iborRate
The value of the period is based on this Ibor rate. For example, it might be a well known market index such as 'GBP-LIBOR-3M'.
Currency currency
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
double amount
The currency of the notional is specified by currency.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
double yearFraction
The value is usually calculated using a DayCount which may be different to that of the index.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
LocalDate paymentDate
If the schedule adjusts for business days, then this is the adjusted date.
Double caplet
This defines the strike value of a caplet.
If the period is not a caplet, this field will be absent.
Double floorlet
This defines the strike value of a floorlet.
If the period is not a floorlet, this field will be absent.
OvernightCompoundedRateComputation overnightRate
The value of the period is based on this overnight compounded rate.
Currency currency
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
double notional
The notional amount applicable during the period.
The currency of the notional is specified by currency.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
double yearFraction
The value is usually calculated using a DayCount which may be different to that of the index.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
LocalDate paymentDate
If the schedule adjusts for business days, then this is the adjusted date.
Double caplet
This defines the strike value of a caplet.
If the period is not a caplet, this field will be absent.
Double floorlet
This defines the strike value of a floorlet.
If the period is not a floorlet, this field will be absent.
OvernightCompoundedRateComputation overnightRate
The value of the period is based on this overnight compounded rate.
private Object readResolve()
ResolvedIborCapFloorLeg capFloorLeg
This is associated with periodic payments based on Ibor rate. The payments are Ibor caplets or Ibor floorlets.
ResolvedSwapLeg payLeg
These periodic payments are not made for typical cap/floor products. Instead the premium is paid upfront.
PayReceive payReceive
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty.
The value of this flag should match the signs of the payment period notionals.
ImmutableList<E> capletFloorletPeriods
Each payment period represents part of the life-time of the leg. In most cases, the periods do not overlap. However, since each payment period is essentially independent the data model allows overlapping periods.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedIborCapFloor product
The product captures the contracted financial details of the trade.
Payment premium
For most Ibor cap/floor products, a premium is paid upfront. This typically occurs instead of periodic payments based on fixed or Ibor rates over the lifetime of the product.
The premium sign must be compatible with the product Pay/Receive flag.
CmsLeg cmsLeg
This is associated with periodic payments based on swap rate. The payments are CMS coupons, CMS caplets or CMS floors.
SwapLeg payLeg
Typically this is associated with periodic fixed or Ibor rate payments without compounding or notional exchange.
These periodic payments are not made over the lifetime of the product for certain CMS products. Instead the premium is paid upfront.
PayReceive payReceive
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty. Note that negative swap rates can result in a payment in the opposite direction to that implied by this indicator.
PeriodicSchedule paymentSchedule
This is used to define the periodic payment periods. These are used directly or indirectly to determine other dates in the leg.
DaysAdjustment paymentDateOffset
The offset is applied to the adjusted end date of each payment period. Offset can be based on calendar days or business days.
When building, this will default to the payment offset of the swap convention in the swap index if not specified.
Currency currency
This is the currency of the leg and the currency that swap rate calculation is made in. The amounts of the notional are expressed in terms of this currency.
ValueSchedule notional
The notional amount applicable during the period.
The currency of the notional is specified by currency.
SwapIndex index
The swap rate to be paid is the observed value of this index.
FixingRelativeTo fixingRelativeTo
The fixing date is relative to either the start or end of each period.
DaysAdjustment fixingDateOffset
The offset is applied to the base date specified by fixingRelativeTo.
The offset is typically a negative number of business days.
When building, this will default to the fixing offset of the swap convention in the swap index if not specified.
DayCount dayCount
This is used to convert dates to a numerical value.
When building, this will default to the day count of the swap convention in the swap index if not specified.
ValueSchedule capSchedule
This defines the strike value of a cap as an initial value and a list of adjustments. Thus individual caplets may have different strike values. The cap rate is only allowed to change at payment period boundaries.
If the product is not a cap, the cap schedule will be absent.
ValueSchedule floorSchedule
This defines the strike value of a floor as an initial value and a list of adjustments. Thus individual floorlets may have different strike values. The floor rate is only allowed to change at payment period boundaries.
If the product is not a floor, the floor schedule will be absent.
Currency currency
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
double notional
The notional amount applicable during the period.
The currency of the notional is specified by currency.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
double yearFraction
The value is usually calculated using a DayCount which may be different to that of the index.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
LocalDate paymentDate
If the schedule adjusts for business days, then this is the adjusted date.
LocalDate fixingDate
This is an adjusted date with any business day applied.
Double caplet
This defines the strike value of a caplet.
If the period is not a caplet, this field will be absent.
Double floorlet
This defines the strike value of a floorlet.
If the period is not a floorlet, this field will be absent.
DayCount dayCount
SwapIndex index
The swap rate to be paid is the observed value of this index.
ResolvedSwap underlyingSwap
The interest rate swap for which the swap rate is referred.
TradeInfo info
This allows additional information to be attached to the trade.
Cms product
The product captures the contracted financial details of the trade.
AdjustablePayment premium
For certain CMS products, a premium is paid upfront. This typically occurs instead of periodic payments based on fixed or Ibor rates over the lifetime of the product.
The premium sign must be compatible with the product Pay/Receive flag.
ResolvedCmsLeg cmsLeg
This is associated with periodic payments based on swap rate. The payments are CMS coupons, CMS caplets or CMS floors.
ResolvedSwapLeg payLeg
Typically this is associated with periodic fixed or Ibor rate payments without compounding or notional exchange.
These periodic payments are not made for certain CMS products. Instead the premium is paid upfront.
PayReceive payReceive
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty. Note that negative swap rates can result in a payment in the opposite direction to that implied by this indicator.
The value of this flag should match the signs of the payment period notionals.
ImmutableList<E> cmsPeriods
Each payment period represents part of the life-time of the leg. In most cases, the periods do not overlap. However, since each payment period is essentially independent the data model allows overlapping periods.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedCms product
The product captures the contracted financial details of the trade.
Payment premium
For certain CMS products, a premium is paid upfront. This typically occurs instead of periodic payments based on fixed or Ibor rates over the lifetime of the product.
The premium sign must be compatible with the product Pay/Receive flag.
BuySell buySell
A value of 'Buy' implies buying protection, where the fixed coupon is paid and the protection is received in the event of default. A value of 'Sell' implies selling protection, where the fixed coupon is received and the protection is paid in the event of default.
StandardId legalEntityId
This identifier is used for the reference legal entity of the CDS.
Currency currency
The amounts of the notional are expressed in terms of this currency.
double notional
The fixed notional amount applicable during the lifetime of the CDS.
The currency of the notional is specified by currency.
PeriodicSchedule paymentSchedule
This is used to define the payment periods.
double fixedRate
This must be represented in decimal form.
DayCount dayCount
This is used to convert dates to a numerical value.
When building, this will default to 'Act/360'.
PaymentOnDefault paymentOnDefault
Whether the accrued premium is paid in the event of a default.
When building, this will default to 'AccruedPremium'.
ProtectionStartOfDay protectionStart
When the protection starts on the start date.
When building, this will default to 'Beginning'.
DaysAdjustment stepinDateOffset
The step-in date is also called protection effective date. It is usually 1 calendar day for standardized CDS contracts.
When building, this will default to 1 calendar day.
DaysAdjustment settlementDateOffset
It is usually 3 business days for standardized CDS contracts.
When building, this will default to 3 business days in the calendar of the payment schedule.
BuySell buySell
A value of 'Buy' implies buying protection, where the fixed coupon is paid and the protection is received in the event of default. A value of 'Sell' implies selling protection, where the fixed coupon is received and the protection is paid in the event of default.
StandardId cdsIndexId
This identifier is used to refer this CDS index product.
ImmutableList<E> legalEntityIds
These identifiers refer to the reference legal entities of the CDS index.
Currency currency
The amounts of the notional are expressed in terms of this currency.
double notional
The fixed notional amount applicable during the lifetime of the CDS.
The currency of the notional is specified by currency.
PeriodicSchedule paymentSchedule
This is used to define the payment periods.
double fixedRate
This must be represented in decimal form.
DayCount dayCount
This is used to convert dates to a numerical value.
When building, this will default to 'Act/360'.
PaymentOnDefault paymentOnDefault
Whether the accrued premium is paid in the event of a default.
When building, this will default to 'AccruedPremium'.
ProtectionStartOfDay protectionStart
When the protection starts on the start date.
When building, this will default to 'Beginning'.
DaysAdjustment stepinDateOffset
The step-in date is also called protection effective date. It is usually 1 calendar day for standardized CDS index contracts.
When building, this will default to 1 calendar day.
DaysAdjustment settlementDateOffset
It is usually 3 business days for standardized CDS index contracts.
When building, this will default to 3 business days in the calendar of the payment schedule.
CdsIndexTrade underlyingTrade
CdsQuote quote
TradeInfo info
This allows additional information to be attached to the trade.
CdsIndex product
The product captures the contracted financial details of the trade.
AdjustablePayment upfrontFee
This specifies a single amount payable by the buyer to the seller. Thus the sign must be compatible with the product Pay/Receive flag.
Some CDSs, especially legacy products, are traded at par and the upfront fee is not paid.
CdsQuoteConvention quoteConvention
double quotedValue
This value must be represented in decimal form.
TradeInfo info
This allows additional information to be attached to the trade.
Cds product
The product captures the contracted financial details of the trade.
AdjustablePayment upfrontFee
This specifies a single amount payable by the buyer to the seller. Thus the sign must be compatible with the product Pay/Receive flag.
Some CDSs, especially legacy products, are traded at par and the upfront fee is not paid.
Currency currency
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
double notional
The notional amount applicable during the period.
The currency of the notional is specified by currency.
LocalDate startDate
This is the first accrual date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last accrual date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
LocalDate effectiveStartDate
This is the first date in the protection period associated with the payment period.
LocalDate effectiveEndDate
This is the last date in the protection period associated with the payment period.
LocalDate paymentDate
The fixed rate is paid on this date.
This is not necessarily the same as endDate.
double fixedRate
The single payment is based on this fixed coupon rate. The coupon must be represented in fraction.
double yearFraction
The year fraction of a period is based on startDate and endDate.
The value is usually calculated using a specific DayCount.
BuySell buySell
A value of 'Buy' implies buying protection, where the fixed coupon is paid and the protection is received in the event of default. A value of 'Sell' implies selling protection, where the fixed coupon is received and the protection is paid in the event of default.
StandardId legalEntityId
This identifier is used for the reference legal entity of the CDS.
ImmutableList<E> paymentPeriods
Each payment period represents part of the life-time of the leg. In most cases, the periods do not overlap. However, since each payment period is essentially independent the data model allows overlapping periods.
LocalDate protectionEndDate
This may be different from the accrual end date of the last payment period in periodicPayments.
DayCount dayCount
This is used to convert dates to a numerical value.
PaymentOnDefault paymentOnDefault
Whether the accrued premium is paid in the event of a default.
ProtectionStartOfDay protectionStart
When the protection starts on the start date.
DaysAdjustment stepinDateOffset
The step-in date is also called protection effective date. It is usually 1 calendar day for standardized CDS contracts.
DaysAdjustment settlementDateOffset
It is usually 3 business days for standardized CDS contracts.
BuySell buySell
A value of 'Buy' implies buying protection, where the fixed coupon is paid and the protection is received in the event of default. A value of 'Sell' implies selling protection, where the fixed coupon is received and the protection is paid in the event of default.
StandardId cdsIndexId
This identifier is used to refer this CDS index product.
ImmutableList<E> legalEntityIds
These identifiers refer to the reference legal entities of the CDS index.
ImmutableList<E> paymentPeriods
Each payment period represents part of the life-time of the leg. In most cases, the periods do not overlap. However, since each payment period is essentially independent the data model allows overlapping periods.
LocalDate protectionEndDate
This may be different from the accrual end date of the last payment period in periodicPayments.
DayCount dayCount
This is used to convert dates to a numerical value.
PaymentOnDefault paymentOnDefault
Whether the accrued premium is paid in the event of a default.
ProtectionStartOfDay protectionStart
When the protection starts on the start date.
DaysAdjustment stepinDateOffset
The step-in date is also called protection effective date. It is usually 1 calendar day for standardized CDS index contracts.
DaysAdjustment settlementDateOffset
It is usually 3 business days for standardized CDS index contracts.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedCdsIndex product
The product captures the contracted financial details of the trade.
Payment upfrontFee
This specifies a single amount payable by the buyer to the seller Thus the sign must be compatible with the product Pay/Receive flag.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedCds product
The product captures the contracted financial details of the trade.
Payment upfrontFee
This specifies a single amount payable by the buyer to the seller Thus the sign must be compatible with the product Pay/Receive flag.
Some CDSs, especially legacy products, are traded at par and the upfront fee is not paid.
LocalDate startDate
The start date of the underling CDS product.
This date can be modified following the rule in convention.
LocalDate endDate
The end date of the underling CDS product.
This date can be modified following the rule in convention.
CdsConvention convention
String name
Currency currency
The amounts of the notional are expressed in terms of this currency.
DayCount dayCount
This is used to convert schedule period dates to a numerical value.
Frequency paymentFrequency
Regular payments will be made at the specified periodic frequency. This also defines the accrual periodic frequency.
BusinessDayAdjustment businessDayAdjustment
Each date in the calculated schedule is determined without taking into account weekends and holidays. The adjustment specified here is used to convert those dates to valid business days.
The start date and end date may have their own business day adjustment rules. If those are not present, then this adjustment is used instead.
BusinessDayAdjustment startDateBusinessDayAdjustment
The start date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert the start date to a valid business day.
This will default to the businessDayAdjustment if not specified.
BusinessDayAdjustment endDateBusinessDayAdjustment
The end date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert the end date to a valid business day.
This will default to the 'None' if not specified.
StubConvention stubConvention
The stub convention is used during schedule construction to determine whether the irregular remaining period occurs at the start or end of the schedule. It also determines whether the irregular period is shorter or longer than the regular period.
This will default to 'SmartInitial' if not specified.
RollConvention rollConvention
The schedule periods are determined at the high level by repeatedly adding the frequency to the start date, or subtracting it from the end date. The roll convention provides the detailed rule to adjust the day-of-month or day-of-week.
This will default to 'Day20' if not specified.
PaymentOnDefault paymentOnDefault
Whether the accrued premium is paid in the event of a default.
This will default to 'accrued premium' if not specified.
ProtectionStartOfDay protectionStart
When the protection starts on the start date.
This will default to 'beginning of the start day' if not specified.
DaysAdjustment stepinDateOffset
The step-in date is also called protection effective date.
This will default to '1 calendar day' if not specified.
DaysAdjustment settlementDateOffset
It is usually 3 business days for standardised CDS contracts.
AccrualStart accrualStart
Whether the accrual start is the next day or the previous IMM date.
Tenor tenor
This is the period to the protection end.
CdsConvention convention
BuySell buySell
A value of 'Buy' implies that the floating rate is paid to the counterparty, with the fixed rate being received. A value of 'Sell' implies that the floating rate is received from the counterparty, with the fixed rate being paid.
Currency currency
This is the currency of the deposit 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.
double notional
The notional expressed here must be non-negative.
The currency of the notional is specified by currency.
LocalDate startDate
Interest accrues from this 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.
LocalDate endDate
Interest accrues until this 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.
This date must be after the start date.
BusinessDayAdjustment businessDayAdjustment
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.
IborIndex index
The floating rate to be paid or received is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.
See buySell to determine whether this rate is paid or received.
DaysAdjustment fixingDateOffset
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.
DayCount dayCount
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.
double fixedRate
TradeInfo info
This allows additional information to be attached to the trade.
IborFixingDeposit product
The product captures the contracted financial details of the trade.
Currency currency
This is the currency of the deposit 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.
double notional
The amount that is deposited. It is a positive signed amount if the deposit is 'Buy', and a negative signed amount if the deposit is 'Sell'.
The currency of the notional is specified by currency.
LocalDate startDate
This is the first date that interest accrues.
This is an adjusted date, which should be a valid business day
LocalDate endDate
This is the last day that interest accrues. This date must be after the start date.
This is an adjusted date, which should be a valid business day
double yearFraction
The value is usually calculated using a DayCount.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
double fixedRate
IborRateComputation floatingRate
The floating rate to be paid is based on this index. It will be a well known market index such as 'GBP-LIBOR-3M'.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedIborFixingDeposit product
The product captures the contracted financial details of the trade.
private Object readResolve()
Currency currency
This is the currency of the deposit and the currency that payment is made in.
double notional
The amount that is deposited. It is a positive signed amount if the deposit is 'Buy', and a negative signed amount if the deposit is 'Sell'.
The currency of the notional is specified by currency.
LocalDate startDate
This is the first date that interest accrues.
This is an adjusted date, which should be a valid business day
LocalDate endDate
This is the last day that interest accrues. This date must be after the start date.
This is an adjusted date, which should be a valid business day
double yearFraction
The value is usually calculated using a DayCount.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
double rate
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedTermDeposit product
The product captures the contracted financial details of the trade.
BuySell buySell
A value of 'Buy' implies payment of the principal at the start date and receipt of the principal plus interest at the end date. A value of 'Sell' implies the opposite. In other words, 'Buy' refers to buying the service of "money storage", with the benefit of receiving interest.
Currency currency
This is the currency of the term deposit and the currency that payment is made in.
double notional
The notional represents the principal amount, and must be non-negative.
The currency of the notional is specified by currency.
LocalDate startDate
Interest accrues from this 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.
LocalDate endDate
Interest accrues until this 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.
This date must be after the start date.
BusinessDayAdjustment businessDayAdjustment
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.
DayCount dayCount
This is used to convert dates to a numerical value.
double rate
TradeInfo info
This allows additional information to be attached to the trade.
TermDeposit product
The product captures the contracted financial details of the trade.
Period depositPeriod
The difference between the start date and the end date typically matches the tenor of the index, however this is not validated.
IborFixingDepositConvention convention
This specifies the standard convention of the Ibor fixing deposit to be created.
IborIndex index
The floating rate to be paid or received is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.
String name
This will default to the name of the index if not specified.
Currency currency
This is the currency of the deposit 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.
This will default to the currency of the index if not specified.
DayCount dayCount
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.
This will default to the day count of the index if not specified.
DaysAdjustment spotDateOffset
The offset is applied to the trade date and is typically plus 2 business days. The start date of the deposit is equal to the spot date and the end date of the deposit is relative to the start date.
This will default to the effective date offset of the index if not specified.
BusinessDayAdjustment businessDayAdjustment
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.
This will default to 'ModifiedFollowing' using the index fixing calendar if not specified.
DaysAdjustment fixingDateOffset
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.
This will default to the fixing date offset of the index if not specified.
Currency currency
This is the currency of the term deposit and the currency that payment is made in.
String name
BusinessDayAdjustment businessDayAdjustment
The start and end date will be adjusted as defined here.
DayCount dayCount
This is used to convert dates to a numerical value.
DaysAdjustment spotDateOffset
The offset is applied to the trade date and is typically plus 2 business days. The start date of the term deposit is equal to the spot date and the end date of the term deposit is relative to the start date.
Period depositPeriod
TermDepositConvention convention
This specifies the standard convention of the term deposit to be created.
SecurityId securityId
This identifier uniquely identifies the security within the system.
double notional
This is also called face value or contract value.
LocalDate lastTradeDate
This date must be before the delivery date of the underlying swap.
LocalDate deliveryDate
The underlying swap is delivered on this date.
Swap underlyingSwap
The delivery date of the future is typically the first accrual date of the underlying swap. The swap should be a receiver swap of notional 1.
PositionInfo info
This allows additional information to be attached to the position.
Dsf product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
double notional
This is also called face value or contract value.
LocalDate lastTradeDate
This date must be before the delivery date of the underlying swap.
Swap underlyingSwap
The delivery date of the future is the start date of the swap. The swap must be a single currency swap with a notional of 1. There must be two legs, the fixed leg must be received and the floating rate must be paid.
TradeInfo info
This allows additional information to be attached to the trade.
The trade date is required when calling DsfTrade.resolve(ReferenceData).
Dsf product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
Strata uses decimal prices for DSFs in the trade model, pricers and market data. The decimal price is based on the decimal multiplier equivalent to the implied percentage. Thus the market price of 100.182 is represented in Strata by 1.00182.
SecurityId securityId
This identifier uniquely identifies the security within the system.
double notional
This is also called face value or contract value.
LocalDate deliveryDate
The underlying swap is delivered on this date.
LocalDate lastTradeDate
This date must be before the delivery date of the underlying swap.
ResolvedSwap underlyingSwap
The delivery date of the future is typically the first accrual date of the underlying swap. The swap should be a receiver swap of notional 1.
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedDsf product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
TradedPrice tradedPrice
This is the price agreed when the trade occurred, in decimal form. Strata uses decimal prices for DSFs in the trade model, pricers and market data. The decimal price is based on the decimal multiplier equivalent to the implied percentage. Thus the market price of 100.182 is represented in Strata by 1.00182.
This is optional to allow the class to be used to price both trades and positions. When the instance represents a trade, the traded price should be present. When the instance represents a position, the traded price should be empty.
private Object readResolve()
private Object readResolve()
private Object readResolve()
ExchangeId exchangeId
EtdContractGroupCode code
EtdContractSpecId id
When building, this will be defaulted using EtdIdUtils.
EtdType type
ExchangeId exchangeId
EtdContractCode contractCode
String description
SecurityPriceInfo priceInfo
ImmutableMap<K,V> attributes
Attributes provide the ability to associate arbitrary information with a security contract specification in a key-value map.
private Object readResolve()
StandardId standardId
PositionInfo info
This allows additional information to be attached to the position.
EtdFutureSecurity security
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
EtdContractSpecId contractSpecId
YearMonth expiry
Expiry will occur on a date implied by the variant of the ETD.
EtdVariant variant
This captures the variant of the ETD. The most common variant is 'Monthly'. Other variants are 'Weekly', 'Daily' and 'Flex'.
When building, this defaults to 'Monthly'.
TradeInfo info
This allows additional information to be attached to the trade.
EtdFutureSecurity security
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
PositionInfo info
This allows additional information to be attached to the position.
EtdOptionSecurity security
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
EtdContractSpecId contractSpecId
YearMonth expiry
Expiry will occur on a date implied by the variant of the ETD.
EtdVariant variant
This captures the variant of the ETD. The most common variant is 'Monthly'. Other variants are 'Weekly', 'Daily' and 'Flex'.
When building, this defaults to 'Monthly'.
int version
Some options can have multiple versions, representing some kind of change over time. Version zero is the baseline, version one and later indicates some kind of change occurred.
PutCall putCall
double strikePrice
YearMonth underlyingExpiryMonth
If an option has an underlying instrument, the expiry of that instrument can be specified here. For example, you can have an option expiring in March on the underlying March future, or on the underlying June future. Not all options have an underlying instrument, thus the property is optional.
In many cases, the expiry of the underlying instrument is the same as the expiry of the option. In this case, the expiry is often omitted, even though it probably should not be.
TradeInfo info
This allows additional information to be attached to the trade.
EtdOptionSecurity security
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
private Object readResolve()
EtdExpiryType type
Flex Futures and Options are always Daily.
Integer dateCode
This will be the week number for Weekly and the day-of-month for Daily.
EtdSettlementType settlementType
EtdOptionType optionType
String code
BuySell buySell
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.
Currency currency
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.
double notional
The notional expressed here must be positive.
The currency of the notional is specified by currency.
LocalDate startDate
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.
LocalDate endDate
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.
BusinessDayAdjustment businessDayAdjustment
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.
AdjustableDate paymentDate
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.
double fixedRate
See buySell to determine whether this rate is paid or received.
IborIndex index
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.
IborIndex indexInterpolated
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.
DaysAdjustment fixingDateOffset
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.
DayCount dayCount
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.
FraDiscountingMethod discounting
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.
private Object readResolve()
Currency currency
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.
double notional
The notional, which is a positive signed amount if the FRA is 'buy', and a negative signed amount if the FRA is 'sell'.
The currency of the notional is specified by currency.
LocalDate paymentDate
This is an adjusted date, which should be a valid business day
LocalDate startDate
This is the first date that interest accrues.
This is an adjusted date, which should be a valid business day
LocalDate endDate
This is the last day that interest accrues. This date must be after the start date.
This is an adjusted date, which should be a valid business day
double yearFraction
The value is usually calculated using a DayCount.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
double fixedRate
RateComputation floatingRate
The floating rate to be paid is based on this index. It will be a well known market index such as 'GBP-LIBOR-3M'.
FraDiscountingMethod discounting
There are different approaches to FRA pricing in the area of discounting. This method specifies the approach for this FRA.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedFra product
The product captures the contracted financial details of the trade.
Period periodToStart
In a FRA described as '2 x 5', the period to the start date is 2 months.
Period periodToEnd
In a FRA described as '2 x 5', the period to the end date is 5 months. The difference between the start date and the end date typically matches the tenor of the index, however this is not validated.
When building, this will default to the period to start plus the tenor of the index if not specified.
FraConvention convention
This specifies the market convention of the FRA to be created.
IborIndex index
The floating rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.
String name
This will default to the name of the index if not specified.
Currency currency
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.
This will default to the currency of the index if not specified.
DayCount dayCount
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.
This will default to the day count of the index if not specified.
DaysAdjustment spotDateOffset
The offset is applied to the trade date and is typically plus 2 business days. The start and end date of the FRA term are relative to the spot date.
This will default to the effective date offset of the index if not specified.
BusinessDayAdjustment businessDayAdjustment
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.
This will default to 'ModifiedFollowing' using the index fixing calendar if not specified.
DaysAdjustment fixingDateOffset
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.
This will default to the fixing date offset of the index if not specified.
DaysAdjustment paymentDateOffset
Defines the offset from the start date to the payment date. In most cases, the payment date is the same as the start date, so the default of zero is appropriate.
This will default to zero if not specified.
FraDiscountingMethod discounting
There are different approaches FRA pricing in the area of discounting. This method specifies the approach for this FRA.
This will default 'AFMA' if the index has the currency 'AUD' or 'NZD' and to 'ISDA' otherwise.
CurrencyAmount settlementCurrencyNotional
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.
FxRate agreedFxRate
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.
FxIndex index
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.
LocalDate paymentDate
On this date, the settlement amount will be exchanged. This date should be a valid business day.
Payment baseCurrencyPayment
The amount is signed. A positive amount indicates the payment is to be received. A negative amount indicates the payment is to be paid.
The payment date is usually the same as counterCurrencyPayment.
It is typically a valid business day, however the businessDayAdjustment
property may be used to adjust it.
Payment counterCurrencyPayment
The amount is signed. A positive amount indicates the payment is to be received. A negative amount indicates the payment is to be paid.
The payment date is usually the same as baseCurrencyPayment.
It is typically a valid business day, however the businessDayAdjustment
property may be used to adjust it.
BusinessDayAdjustment paymentDateAdjustment
If present, the adjustment will be applied to the payment date.
FxSingle nearLeg
This provides details of a single foreign exchange at a specific date. The payment date of this transaction must be before that of the far leg.
FxSingle farLeg
This provides details of a single foreign exchange at a specific date. The payment date of this transaction must be after that of the near leg.
TradeInfo info
This allows additional information to be attached to the trade.
FxSwap product
The product captures the contracted financial details of the trade.
CurrencyAmount settlementCurrencyNotional
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.
FxRate agreedFxRate
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.
FxIndexObservation observation
This defines the observation of the index used to settle the trade. The value of the trade is based on the difference between the actual rate and the agreed rate.
An FX index is a daily rate of exchange between two currencies. Note that the order of the currencies in the index does not matter, as the conversion direction is fully defined by the currency of the reference amount.
LocalDate paymentDate
On this date, the settlement amount will be exchanged. This date should be a valid business day.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedFxNdf product
The product captures the contracted financial details of the trade.
Payment baseCurrencyPayment
The payment amount is signed. A positive amount indicates the payment is to be received. A negative amount indicates the payment is to be paid.
Payment counterCurrencyPayment
The payment amount is signed. A positive amount indicates the payment is to be received. A negative amount indicates the payment is to be paid.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedFxSingle product
The product captures the contracted financial details of the trade.
ResolvedFxSingle nearLeg
This provides details of a single foreign exchange at a specific date. The payment date of this transaction must be before that of the far leg.
ResolvedFxSingle farLeg
This provides details of a single foreign exchange at a specific date. The payment date of this transaction must be after that of the near leg.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedFxSwap product
The product captures the contracted financial details of the trade.
Period periodToNear
For example, a '3M x 6M' FX swap has a period from spot to the near date of 3 months
Period periodToFar
For example, a '3M x 6M' FX swap has a period from spot to the far date of 6 months
FxSwapConvention convention
This specifies the market convention of the FX Swap to be created.
CurrencyPair currencyPair
String name
This will default to the name of the currency pair if not specified.
DaysAdjustment spotDateOffset
The offset is applied to the trade date and is typically plus 2 business days in the joint calendar of the two currencies. The start and end date of the FX swap are relative to the spot date.
BusinessDayAdjustment businessDayAdjustment
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.
This will default to 'ModifiedFollowing' using the spot date offset calendar if not specified.
FxVanillaOption underlyingOption
Barrier barrier
The barrier level stored in this field must be represented based on the direction of the currency pair in the underlying FX transaction.
For example, if the underlying option is an option on EUR/GBP, the barrier should be a certain level of EUR/GBP rate.
CurrencyAmount rebate
This is the notional amount represented in one of the currency pair. The amount should be positive.
TradeInfo info
This allows additional information to be attached to the trade.
FxSingleBarrierOption product
The product captures the contracted financial details of the trade.
AdjustablePayment premium
The premium sign should be compatible with the product Long/Short flag. This means that the premium is negative for long and positive for short.
LongShort longShort
At expiry, the long party will have the option to enter in this transaction; the short party will, at the option of the long party, potentially enter into the inverse transaction.
LocalDate expiryDate
The option is European, and can only be exercised on the expiry date.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
FxSingle underlying
At expiry, if the option is in the money, this foreign exchange will occur.
TradeInfo info
This allows additional information to be attached to the trade.
FxVanillaOption product
The product captures the contracted financial details of the trade.
AdjustablePayment premium
The premium sign should be compatible with the product Long/Short flag. This means that the premium is negative for long and positive for short.
ResolvedFxVanillaOption underlyingOption
Barrier barrier
The barrier level stored in this field must be represented based on the direction of the currency pair in the underlying FX transaction.
For example, if the underlying option is an option on EUR/GBP, the barrier should be a certain level of EUR/GBP rate.
CurrencyAmount rebate
This is the notional amount represented in one of the currency pair. The amount should be positive.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedFxSingleBarrierOption product
The product captures the contracted financial details of the trade.
Payment premium
The premium sign should be compatible with the product Long/Short flag. This means that the premium is negative for long and positive for short.
LongShort longShort
At expiry, the long party will have the option to enter in this transaction; the short party will, at the option of the long party, potentially enter into the inverse transaction.
ZonedDateTime expiry
The option is European, and can only be exercised on the expiry date.
ResolvedFxSingle underlying
At expiry, if the option is in the money, this foreign exchange will occur. A call option permits the transaction as specified to occur. A put option permits the inverse transaction to occur.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedFxVanillaOption product
The product captures the contracted financial details of the trade.
Payment premium
The premium sign should be compatible with the product Long/Short flag. This means that the premium is negative for long and positive for short.
SecurityId securityId
This identifier uniquely identifies the security within the system.
Currency currency
double notional
This is the full notional of the deposit, such as 1 million dollars.
The notional expressed here must be positive.
The currency of the notional is specified by currency.
double accrualFactor
This is the year fraction of the contract, typically 0.25 for a 3 month deposit.
When building, this will default to the number of months in the index divided by 12 if not specified. However, if the index is not month-based, no defaulting will occur.
LocalDate lastTradeDate
IborIndex index
The future is based on this index. It will be a well known market index such as 'USD-LIBOR-3M'.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
SecurityId securityId
This identifier uniquely identifies the security within the system.
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future. The rate implied by the strike can take negative values.
Strata uses decimal prices for Ibor futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
LocalDate expiryDate
The expiry date is related to the expiry time and time-zone. The date must not be after last trade date of the underlying future.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form.
IborFuture underlyingFuture
PositionInfo info
This allows additional information to be attached to the position.
IborFutureOption product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
Currency currency
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future. The rate implied by the strike can take negative values.
Strata uses decimal prices for Ibor futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
LocalDate expiryDate
The expiry date is related to the expiry time and time-zone. The date must not be after last trade date of the underlying future.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form.
SecurityId underlyingFutureId
TradeInfo info
This allows additional information to be attached to the trade.
The trade date is required when calling IborFutureOptionTrade.resolve(ReferenceData).
IborFutureOption product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
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.
PositionInfo info
This allows additional information to be attached to the position.
IborFuture product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
double notional
This is the full notional of the deposit, such as 1 million dollars. The notional expressed here must be positive. The currency of the notional the same as the currency of the index.
LocalDate lastTradeDate
IborIndex index
The future is based on this index. It will be a well known market index such as 'USD-LIBOR-3M'.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
TradeInfo info
This allows additional information to be attached to the trade.
The trade date is required when calling IborFutureTrade.resolve(ReferenceData).
IborFuture product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
Strata uses decimal prices for Ibor futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
SecurityId securityId
This identifier uniquely identifies the security within the system.
Currency currency
double notional
This is the full notional of the deposit, such as 5 million dollars.
The notional expressed here must be positive.
The currency of the notional is specified by currency.
double accrualFactor
This is the year fraction of the contract, typically 1/12 for a 30-day future. As such, it is often unrelated to the day count of the index. The year fraction must be positive.
LocalDate lastTradeDate
This must be a valid business day on the fixing calendar of index.
For example, the last trade date is often the last business day of the month.
LocalDate startDate
This is not necessarily a valid business day on the fixing calendar of index.
However, it will be adjusted in OvernightRateComputation if needed.
LocalDate endDate
This is not necessarily a valid business day on the fixing calendar of index.
However, it will be adjusted in OvernightRateComputation if needed.
OvernightIndex index
The future is based on this index. It will be a well known market index such as 'USD-FED-FUND'.
OvernightAccrualMethod accrualMethod
The average rate is calculated based on this method over the period between startDate and endDate.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
SecurityId securityId
This identifier uniquely identifies the security within the system.
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future. The rate implied by the strike can take negative values.
Strata uses decimal prices for overnight futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
LocalDate expiryDate
The expiry date is related to the expiry time and time-zone. The date must not be after last trade date of the underlying future.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form.
OvernightFuture underlyingFuture
PositionInfo info
This allows additional information to be attached to the position.
OvernightFutureOption product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
Currency currency
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future. The rate implied by the strike can take negative values.
Strata uses decimal prices for overnight futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
LocalDate expiryDate
The expiry date is related to the expiry time and time-zone. The date must not be after last trade date of the underlying future.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form.
SecurityId underlyingFutureId
TradeInfo info
This allows additional information to be attached to the trade.
The trade date is required when calling OvernightFutureOptionTrade.resolve(ReferenceData).
OvernightFutureOption product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
Strata uses decimal prices for overnight 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.
PositionInfo info
This allows additional information to be attached to the position.
OvernightFuture product
The product captures the contracted financial details.
double longQuantity
This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.
double shortQuantity
This is the quantity of the underlying security that has been short sold. The quantity cannot be negative, as that would imply the position is long.
SecurityInfo info
This includes the security identifier.
double notional
This is the full notional of the deposit, such as 5 million dollars. The notional expressed here must be positive. The currency of the notional the same as the currency of the index.
double accrualFactor
This is the year fraction of the contract, typically 1/12 for a 30-day future. As such, it is often unrelated to the day count of the index. The year fraction must be positive.
LocalDate lastTradeDate
This must be a valid business day on the fixing calendar of index.
For example, the last trade date is often the last business day of the month.
LocalDate startDate
This is not necessarily a valid business day on the fixing calendar of index.
However, it will be adjusted in OvernightRateComputation if needed.
LocalDate endDate
This is not necessarily a valid business day on the fixing calendar of index.
However, it will be adjusted in OvernightRateComputation if needed.
OvernightIndex index
The future is based on this index. It will be a well known market index such as 'USD-FED-FUND'.
OvernightAccrualMethod accrualMethod
The average rate is calculated based on this method over the period between startDate and endDate.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
TradeInfo info
This allows additional information to be attached to the trade.
The trade date is required when calling OvernightFutureTrade.resolve(ReferenceData).
OvernightFuture product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
double price
This is the price agreed when the trade occurred.
Strata uses decimal prices for Overnight rate futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
SecurityId securityId
This identifier uniquely identifies the security within the system.
Currency currency
double notional
This is the full notional of the deposit, such as 1 million dollars.
The notional expressed here must be positive.
The currency of the notional is specified by currency.
double accrualFactor
This is the year fraction of the contract, typically 0.25 for a 3 month deposit.
When building, this will default to the number of months in the index divided by 12 if not specified. However, if the index is not month-based, no defaulting will occur.
IborRateComputation iborRate
The future is based on this index. It will be a well known market index such as 'USD-LIBOR-3M'.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
SecurityId securityId
This identifier uniquely identifies the security within the system.
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future. The rate implied by the strike can take negative values.
Strata uses decimal prices for Ibor futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
ZonedDateTime expiry
The date must not be after last trade date of the underlying future.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form.
ResolvedIborFuture underlyingFuture
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedIborFutureOption product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
TradedPrice tradedPrice
This is the price agreed when the trade occurred, in decimal form. 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.
This is optional to allow the class to be used to price both trades and positions. When the instance represents a trade, the traded price should be present. When the instance represents a position, the traded price should be empty.
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedIborFuture product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
TradedPrice tradedPrice
This is the price agreed when the trade occurred, in decimal form. Strata uses decimal prices for Ibor futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
This is optional to allow the class to be used to price both trades and positions. When the instance represents a trade, the traded price should be present. When the instance represents a position, the traded price should be empty.
SecurityId securityId
This identifier uniquely identifies the security within the system.
Currency currency
double notional
This is the full notional of the deposit, such as 5 million dollars.
The notional expressed here must be positive.
The currency of the notional is specified by currency.
double accrualFactor
This is the year fraction of the contract, typically 1/12 for a 30-day future. The year fraction must be positive.
LocalDate lastTradeDate
This must be a valid business day on the fixing calendar of index.
The last trade date is typically the last business day of the month.
OvernightRateComputation overnightRate
The future is based on this index. It will be a well known market index such as 'USD-FED-FUND'.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 for a 0.2875% rate is represented as 0.997125 which has 6 decimal places.
SecurityId securityId
This identifier uniquely identifies the security within the system.
PutCall putCall
A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.
double strikePrice
This is the price at which the option applies and refers to the price of the underlying future. The rate implied by the strike can take negative values.
Strata uses decimal prices for Overnight futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
ZonedDateTime expiry
The date must not be after last trade date of the underlying future.
FutureOptionPremiumStyle premiumStyle
The two options are daily margining and upfront premium.
Rounding rounding
The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form.
ResolvedOvernightFuture underlyingFuture
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedOvernightFutureOption product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
TradedPrice tradedPrice
This is the price agreed when the trade occurred, in decimal form. Strata uses decimal prices for overnight 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.
This is optional to allow the class to be used to price both trades and positions. When the instance represents a trade, the traded price should be present. When the instance represents a position, the traded price should be empty.
PortfolioItemInfo info
This allows additional information to be attached.
ResolvedOvernightFuture product
The product captures the contracted financial details of the trade.
double quantity
This is the number of contracts that were traded. This will be positive if buying and negative if selling.
TradedPrice tradedPrice
This is the price agreed when the trade occurred, in decimal form. Strata uses decimal prices for Overnight rate futures in the trade model, pricers and market data. The decimal price is based on the decimal rate equivalent to the percentage. For example, a price of 99.32 implies an interest rate of 0.68% which is represented in Strata by 0.9932.
This is optional to allow the class to be used to price both trades and positions. When the instance represents a trade, the traded price should be present. When the instance represents a position, the traded price should be empty.
SequenceDate sequenceDate
IborFutureContractSpec contractSpec
This specifies the contract of the Ibor Futures to be created.
String name
IborIndex index
The floating rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.
DateSequence dateSequence
This is used to calculate the reference date of the future that is the start date of the underlying synthetic deposit.
BusinessDayAdjustment businessDayAdjustment
The reference date, which is often the third Wednesday of the month, will be adjusted as defined here.
double notional
This is the full notional of the deposit, such as 1 million dollars. The notional expressed here must be positive. The currency of the notional is specified by the index.
IborIndex index
The floating rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.
String name
This will default to the name of the index suffixed by the name of the date sequence if not specified.
DateSequence dateSequence
This is used to calculate the reference date of the future that is the start date of the underlying synthetic deposit.
BusinessDayAdjustment businessDayAdjustment
The reference date, which is often the third Wednesday of the month, will be adjusted as defined here.
String name
OvernightIndex index
The floating rate to be paid is based on this index It will be a well known market index such as 'GBP-SONIA'.
DateSequence dateSequence
This is used to calculate the reference date of the future that is the start date of the underlying synthetic deposit.
OvernightAccrualMethod accrualMethod
BusinessDayAdjustment startDateAdjustment
The start date is obtained by applying this adjustment to the reference date from the date sequence. The reference date is often the third Wednesday of the month or the start of the month. This defaults to accepting the date from the sequence without applying a holiday calendar.
DaysAdjustment endDateAdjustment
The end date is obtained by applying this adjustment to the next date in sequence from the start date. This defaults to minus one without applying a holiday calendar.
DaysAdjustment lastTradeDateAdjustment
The last trade date is obtained by applying this adjustment to the next date in sequence from the start date. This defaults to the previous business day in the fixing calendar (minus one calendar day and preceding).
double notional
This is the full notional of the deposit, such as 1 million dollars. The notional expressed here must be positive. The currency of the notional is specified by the index.
SequenceDate sequenceDate
OvernightFutureContractSpec contractSpec
This specifies the contract of the Overnight Futures to be created.
BarrierType barrierType
KnockType knockType
double barrierLevel
PayReceive payReceive
A value of 'Pay' implies that the amount is paid to the counterparty. A value of 'Receive' implies that the amount is received from the counterparty.
CurrencyAmount value
The amount is unsigned, with the direction implied by payReceive.
AdjustableDate date
This date should normally be a valid business day.
TradeInfo info
This allows additional information to be attached to the trade.
BulletPayment product
The product captures the contracted financial details of the trade.
Payment payment
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedBulletPayment product
The product captures the contracted financial details of the trade.
double rate
double accrualFactor
double simpleRate
double rate
IborIndexObservation observation
Double fixedRate
In certain circumstances two counterparties agree the rate of a fixing when the contract starts. It is used in place of an observed fixing. Other calculation elements, such as gearing or spread, still apply.
If the value not present, which is the normal case, then the rate is observed via the normal fixing process.
double weight
If the averaging is unweighted, then all weights must be one.
private Object readResolve()
ImmutableList<E> fixings
A fixing will be taken for each reset period, with the final rate being an average of the fixings.
IborIndexObservation shortObservation
The rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-1M'.
IborIndexObservation longObservation
The rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.
IborIndexObservation observation
double startIndexValue
The published index value of the start month.
PriceIndexObservation endObservation
The inflation rate is the ratio between the start index value and the interpolated end observations. The end month is typically three months before the end of the period.
PriceIndexObservation endSecondObservation
The inflation rate is the ratio between the start index value and the interpolated end observations. The month is typically one month after the month of the end observation.
double weight
Given two price index observations, typically in adjacent months, the weight is used
to determine the adjusted index value. The value is given by the formula
(weight * price_index_1 + (1 - weight) * price_index_2).
double startIndexValue
The published index value of the start month.
PriceIndexObservation endObservation
The inflation rate is the ratio between the start index value and end observation. The end month is typically three months before the end of the period.
PriceIndexObservation startObservation
The inflation rate is the ratio between the interpolated start and end observations. The start month is typically three months before the start of the period.
PriceIndexObservation startSecondObservation
The inflation rate is the ratio between the interpolated start and end observations. The month is typically one month after the month of the start observation.
PriceIndexObservation endObservation
The inflation rate is the ratio between the interpolated start and end observations. The end month is typically three months before the end of the period.
PriceIndexObservation endSecondObservation
The inflation rate is the ratio between the interpolated start and end observations. The month is typically one month after the month of the end observation.
double weight
Given two price index observations, typically in adjacent months, the weight is used
to determine the adjusted index value. The value is given by the formula
(weight * price_index_1 + (1 - weight) * price_index_2).
PriceIndexObservation startObservation
The inflation rate is the ratio between the start and end observation. The start month is typically three months before the start of the period.
PriceIndexObservation endObservation
The inflation rate is the ratio between the start and end observation. The end month is typically three months before the end of the period.
OvernightIndex index
The rate to be paid is based on this index. It will be a well known market index such as 'GBP-SONIA'.
HolidayCalendar fixingCalendar
LocalDate startDate
This is not necessarily a valid business day.
In this case, the first fixing date is the previous business day of the start date on fixingCalendar.
LocalDate endDate
This is not necessarily a valid business day.
In this case, the last fixing date is the previous business day of the end date on fixingCalendar.
OvernightIndex index
The rate to be paid is based on this index. It will be a well known market index such as 'GBP-SONIA'.
HolidayCalendar fixingCalendar
LocalDate startDate
This is also the first fixing date. The overnight rate is observed from this date onwards.
In general, the fixing dates and accrual dates are the same for an overnight index. However, in the case of a Tomorrow/Next index, the fixing period is one business day before the accrual period.
LocalDate endDate
The overnight rate is accrued until the maturity date associated with this date.
In general, the fixing dates and accrual dates are the same for an overnight index. However, in the case of a Tomorrow/Next index, the fixing period is one business day before the accrual period.
int rateCutOffDays
When a rate cut-off applies, the final daily rate is determined this number of days before the end of the period, with any subsequent days having the same rate.
The amount must be zero or positive. A value of zero or one will have no effect on the standard calculation. The fixing holiday calendar of the index is used to determine business days.
For example, a value of 3 means that the rate observed on
(periodEndDate - 3 business days) is also to be used on
(periodEndDate - 2 business days) and (periodEndDate - 1 business day).
If there are multiple accrual periods in the payment period, then this should typically only be non-zero in the last accrual period.
OvernightIndex index
The rate to be paid is based on this index.
HolidayCalendar fixingCalendar
LocalDate startDate
This is also the first fixing date. The overnight rate is observed from this date onwards.
In general, the fixing dates and accrual dates are the same for an overnight index. However, in the case of a Tomorrow/Next index, the fixing period is one business day before the accrual period.
LocalDate endDate
The overnight rate is observed until this date.
In general, the fixing dates and accrual dates are the same for an overnight index. However, in the case of a Tomorrow/Next index, the fixing period is one business day before the accrual period.
OvernightIndex index
The rate to be paid is based on this index. It will be a well known market index such as 'GBP-SONIA'.
HolidayCalendar fixingCalendar
LocalDate startDate
This is also the first fixing date. The overnight rate is observed from this date onwards.
In general, the fixing dates and accrual dates are the same for an overnight index. However, in the case of a Tomorrow/Next index, the fixing period is one business day before the accrual period.
LocalDate endDate
The overnight rate is observed until this date.
In general, the fixing dates and accrual dates are the same for an overnight index. However, in the case of a Tomorrow/Next index, the fixing period is one business day before the accrual period.
int rateCutOffDays
When a rate cut-off applies, the final daily rate is determined this number of days before the end of the period, with any subsequent days having the same rate.
The amount must be zero or positive. A value of zero or one will have no effect on the standard calculation. The fixing holiday calendar of the index is used to determine business days.
For example, a value of 3 means that the rate observed on
(periodEndDate - 3 business days) is also to be used on
(periodEndDate - 2 business days) and (periodEndDate - 1 business day).
If there are multiple accrual periods in the payment period, then this should typically only be non-zero in the last accrual period.
DayCount dayCount
This is used to convert schedule period dates to a numerical value.
ValueSchedule rate
This defines the rate as an initial amount and a list of adjustments. The rate is only permitted to change at accrual period boundaries.
FixedRateStubCalculation initialStub
The initial stub of a swap may have a different rate from the regular accrual periods.
This property allows the stub rate to be specified, either as a known amount or a rate.
If this property is not present, then the rate derived from the rate property applies during the stub.
If this property is present and there is no initial stub, it is ignored.
FixedRateStubCalculation finalStub
The final stub of a swap may have a different rate from the regular accrual periods.
This property allows the stub rate to be specified, either as a known amount or a rate.
If this property is not present, then the rate derived from the rate property applies during the stub.
If this property is present and there is no initial stub, it is ignored.
FutureValueNotional futureValueNotional
This property is used when the fixed leg of a swap has a future value notional. This is typically used for Brazilian swaps.
Double fixedRate
If the fixed rate is present, then knownAmount must not be present.
CurrencyAmount knownAmount
If the known amount is present, then fixedRate must not be present.
Double value
The future value notional amount, derived as per the standard formula.
LocalDate valueDate
This is the adjusted value date of the future value amount, which is the adjusted end date.
Integer dayCountDays
This defines the number of days from the adjusted start date to the adjusted end date as calculated by the day count.
FxIndexObservation observation
This defines the observation of the index used to obtain the FX reset rate.
An FX index is a daily rate of exchange between two currencies. Note that the order of the currencies in the index does not matter, as the conversion direction is fully defined by the currency of the reference amount.
Currency referenceCurrency
This is the currency of notional amount as defined in the contract. The amount will be converted from this reference currency to the swap leg currency when calculating the value of the leg.
The reference currency must be one of the two currencies of the index.
The reference currency is also known as the constant currency.
FxIndex index
This is the index of FX used to obtain the FX reset rate. An FX index is a daily rate of exchange between two currencies. Note that the order of the currencies in the index does not matter, as the conversion direction is fully defined by the reference and swap leg currencies.
Currency referenceCurrency
This is the currency of notional amount as defined in the contract. The amount will be converted from this reference currency to the swap leg currency when calculating the value of the leg.
The reference currency must be one of the two currencies of the index.
The reference currency is also known as the constant currency.
FxResetFixingRelativeTo fixingRelativeTo
The FX reset fixing date is relative to either the start or end of each accrual period.
DaysAdjustment fixingDateOffset
The offset is applied to the base date specified by fixingRelativeTo.
The offset is typically a negative number of business days.
When building, this will default to the fixing offset of the index if not specified.
Double initialNotionalValue
If present, this fixed amount represents the notional of the initial period of the swap leg, with no FX reset being applied.
If not present, the initial notional amount is calculated by applying an fx conversion to the reference currency in the same manner as all other period notional calculations.
CurrencyAmount notionalAmount
The notional amount applicable during the period.
The currency of the notional is specified by referenceCurrency but will
be paid after FX conversion using the index.
LocalDate paymentDate
Each payment event has a single payment date. This date has been adjusted to be a valid business day.
FxIndexObservation observation
This defines the observation of the index used to obtain the FX reset rate.
An FX index is a daily rate of exchange between two currencies. Note that the order of the currencies in the index does not matter, as the conversion direction is fully defined by the currency of the reference amount.
DayCount dayCount
This is used to convert dates to a numerical value.
When building, this will default to the day count of the index if not specified.
IborIndex index
The rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.
ResetSchedule resetPeriods
Most swaps have a single fixing for each accrual period. This property allows multiple fixings to be defined by dividing the accrual periods into reset periods.
If this property is not present, then the reset period is the same as the accrual period. If this property is present, then the accrual period is divided as per the information in the reset schedule, multiple fixing dates are calculated, and rate averaging performed.
FixingRelativeTo fixingRelativeTo
The fixing date is relative to either the start or end of each reset period.
Note that in most cases, the reset frequency matches the accrual frequency and thus there is only one fixing for the accrual period.
DaysAdjustment fixingDateOffset
The offset is applied to the base date specified by fixingRelativeTo.
The offset is typically a negative number of business days.
Note that in most cases, the reset frequency matches the accrual frequency and thus there is only one fixing for the accrual period.
When building, this will default to the fixing offset of the index if not specified.
NegativeRateMethod negativeRateMethod
This is used when the interest rate, observed or calculated, goes negative.
It does not apply if the rate is fixed, such as in a stub or using firstRegularRate.
Defined by the 2006 ISDA definitions article 6.4.
Double firstRegularRate
In certain circumstances two counterparties agree the rate of the first fixing when the contract starts, and it is used in place of one observed fixing. For all other fixings, the rate is observed via the normal fixing process.
This property allows the rate of the first reset period of the first regular accrual period to be controlled. Note that if there is an initial stub, this will be the second reset period. Other calculation elements, such as gearing or spread, still apply to the rate specified here.
If the first rate applies to the initial stub rather than the regular accrual periods
it must be specified using initialStub. Alternatively, firstRate can be used.
This property follows the definition in FpML. See also firstRate.
Double firstRate
In certain circumstances two counterparties agree the rate of the first fixing when the contract starts, and it is used in place of one observed fixing. For all other fixings, the rate is observed via the normal fixing process.
This property allows the rate of the first reset period to be controlled, irrespective of whether that is an initial stub or a regular period. Other calculation elements, such as gearing or spread, still apply to the rate specified here.
This property is similar to firstRegularRate.
This property operates on the first reset period, whether that is an initial stub or a regular period.
By contrast, firstRegularRate operates on the first regular period, and never on a stub.
If either firstRegularRate or initialStub are present, this property is ignored.
If this property is not present, then the first rate is observed via the normal fixing process.
DaysAdjustment firstFixingDateOffset
If present, this offset is used instead of fixingDateOffset for the first
reset period of the swap, which will be either an initial stub or the first reset
period of the first regular accrual period.
The offset is applied to the base date specified by fixingRelativeTo.
The offset is typically a negative number of business days.
If this property is not present, then the fixingDateOffset applies to all fixings.
IborRateStubCalculation initialStub
The initial stub of a swap may have different rate rules to the regular accrual periods. A fixed rate may be specified, a different floating rate or a linearly interpolated floating rate. This may not be present if there is no initial stub, or if the index during the stub is the same as the main floating rate index.
If this property is not present, then the main index applies during any initial stub. If this property is present and there is no initial stub, it is ignored.
IborRateStubCalculation finalStub
The final stub of a swap may have different rate rules to the regular accrual periods. A fixed rate may be specified, a different floating rate or a linearly interpolated floating rate. This may not be present if there is no final stub, or if the index during the stub is the same as the main floating rate index.
If this property is not present, then the main index applies during any final stub. If this property is present and there is no final stub, it is ignored.
ValueSchedule gearing
This defines the gearing as an initial value and a list of adjustments. The gearing is only permitted to change at accrual period boundaries.
When calculating the rate, the fixing rate is multiplied by the gearing. A gearing of 1 has no effect. If both gearing and spread exist, then the gearing is applied first.
If this property is not present, then no gearing applies.
Gearing is also known as leverage.
ValueSchedule spread
This defines the spread as an initial value and a list of adjustments. The spread is only permitted to change at accrual period boundaries. Spread is a per annum rate.
When calculating the rate, the spread is added to the fixing rate. A spread of 0 has no effect. If both gearing and spread exist, then the gearing is applied first.
If this property is not present, then no spread applies.
Defined by the 2006 ISDA definitions article 6.2e.
Double fixedRate
In certain circumstances two counterparties agree a fixed rate for the stub. It is used in place of an observed fixing. Other calculation elements, such as gearing or spread, still apply.
If the fixed rate is present, then knownAmount, index and
indexInterpolated must not be present.
CurrencyAmount knownAmount
If the known amount is present, then fixedRate, index and
indexInterpolated must not be present.
IborIndex index
This will be used throughout the stub unless indexInterpolated is present.
If the index is present, then fixedRate and knownAmount must not be present.
IborIndex indexInterpolated
This will be used with index to linearly interpolate the rate.
This index may be shorter or longer than index, but not the same.
If the interpolated index is present, then index must also be present,
and fixedRate and knownAmount must not be present.
String name
boolean active
Over time some indices become inactive and are no longer produced. If this occurs, this flag will be set to false.
LocalTime fixingTime
ZoneId fixingZone
FixedFloatSwapTemplate template
PriceIndex index
The pay-off is computed based on this index
The most common implementations are provided in PriceIndices.
Period lag
A price index is typically published monthly and has a delay before publication. The lag is subtracted from the accrual start and end date to locate the month of the data to be observed.
For example, the September data may be published in October or November. A 3 month lag will cause an accrual date in December to be based on the observed data for September, which should be available by then.
PriceIndexCalculationMethod indexCalculationMethod
This specifies how the reference index calculation occurs.
Double firstIndexValue
This optional field specifies the initial value of the index. The value is applicable for the first regular accrual period. It is used in place of an observed fixing. Other calculation elements, such as gearing or spread, still apply. After the first accrual period, the rate is observed via the normal fixing process.
The method InflationRateCalculation.createRateComputation(LocalDate)
allows this field to be used as the base for any end date, as typically seen
in capital indexed bonds.
If this property is not present, then the first value is observed via the normal fixing process.
ValueSchedule gearing
This defines the gearing as an initial value and a list of adjustments.
When calculating the index, the gearing acts as a overall factor of pay-off.
The pay-off is Gearing_Factor * (Index_End / Index_Start - 1).
A gearing of 1 has no effect.
If this property is not present, then no gearing applies.
Gearing is also known as leverage.
Payment payment
This includes the payment date and amount. If the schedule adjusts for business days, then the date is the adjusted date.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
CurrencyAmount notionalAmount
The notional amount applicable during the period.
The currency of the notional is typically the same as currency.
However, if FX reset applies, the currency will differ.
FxIndexObservation fxResetObservation
This property is used when the defined amount of the notional is specified in a currency other than the currency of the swap leg. When this occurs, the notional amount has to be converted using an FX rate to the swap leg currency.
The FX reset definition must be valid. The payment currency and the currency of the notional must differ, and the currency pair must be that of the observation.
PayReceive payReceive
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty. Note that negative interest rates can result in a payment in the opposite direction to that implied by this indicator.
PeriodicSchedule accrualSchedule
This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the swap.
PaymentSchedule paymentSchedule
This is used to define the payment periods, including any compounding. The payment period dates are based on the accrual schedule.
ValueSchedule amount
This defines the schedule of known amounts, relative to the payment schedule. The schedule is defined as an initial amount, with optional changes during the tenor of the swap. The amount is only permitted to change at payment period boundaries.
Note that the date of the payment is implied by the payment schedule. Any dates in the known amount schedule refer to the payment schedule, not the payment date.
For example, consider a two year swap where each payment period is 3 months long.
This schedule could define two entries, one that defines the payment amounts as GBP 1000 for
the first year and one that defines the amount as GBP 500 for the second year.
In this case there will be eight payments in total, four payments of GBP 1000 in the first
year and four payments of GBP 500 in the second year.
Each payment will occur on the date specified using the offset in PaymentSchedule.
Currency currency
This is the currency of the known payments.
Payment payment
This includes the payment date and amount. If the schedule adjusts for business days, then the date is the adjusted date.
LocalDate startDate
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
Payment payment
This contains the amount to be paid and the date that payment occurs. This date has been adjusted to be a valid business day.
Currency currency
This is the currency of the swap leg and the currency that interest calculation is made in.
The amounts of the notional are usually expressed in terms of this currency,
however they can be converted from amounts in a different currency.
See the optional fxReset property.
FxResetCalculation fxReset
This property is used when the defined amount of the notional is specified in a currency other than the currency of the swap leg. When this occurs, the notional amount has to be converted using an FX rate to the swap leg currency. This conversion occurs at each payment period boundary and usually corresponds to an actual exchange of money between the counterparties.
When building the notional schedule, if an FxResetCalculation is present,
then at least one of the notional exchange flags should be set to true. If all notional
exchange flags are false then an IllegalArgumentException is thrown.
ValueSchedule amount
This defines the notional as an initial amount and a list of adjustments. The notional expressed here is intended to always be positive.
The notional is only allowed to change at payment period boundaries.
As such, the ValueSchedule steps are defined relative to the payment schedule.
boolean initialExchange
Setting this to true indicates that the notional is transferred at the start of the trade. This should typically be set to true in the case of an FX reset swap, or one with a varying notional.
boolean intermediateExchange
Setting this to true indicates that the notional is transferred when it changes during the trade. This should typically be set to true in the case of an FX reset swap, or one with a varying notional.
boolean finalExchange
Setting this to true indicates that the notional is transferred at the end of the trade. This should typically be set to true in the case of an FX reset swap, or one with a varying notional.
DayCount dayCount
This is used to convert dates to a numerical value.
When building, this will default to the day count of the index if not specified.
OvernightIndex index
The rate to be paid is based on this index It will be a well known market index such as 'GBP-SONIA'.
OvernightAccrualMethod accrualMethod
Two methods of accrual are supported - compounding and averaging. Averaging is primarily related to the 'USD-FED-FUND' index.
NegativeRateMethod negativeRateMethod
This is used when the interest rate, observed or calculated, goes negative.
It does not apply if the rate is fixed, such as in a stub or using firstRegularRate.
Defined by the 2006 ISDA definitions article 6.4.
int rateCutOffDays
When a rate cut-off applies, the final daily rate is determined this number of days before the end of the period, with any subsequent days having the same rate.
The amount must be zero or positive. A value of zero or one will have no effect on the standard calculation. The fixing holiday calendar of the index is used to determine business days.
For example, a value of 3 means that the rate observed on
(periodEndDate - 3 business days) is also to be used on
(periodEndDate - 2 business days) and (periodEndDate - 1 business day).
If there are multiple accrual periods in the payment period, then this will only apply to the last accrual period in the payment period.
ValueSchedule gearing
This defines the gearing as an initial value and a list of adjustments. The gearing is only permitted to change at accrual period boundaries.
When calculating the rate, the fixing rate is multiplied by the gearing. A gearing of 1 has no effect. If both gearing and spread exist, then the gearing is applied first.
If this property is not present, then no gearing applies.
Gearing is also known as leverage.
ValueSchedule spread
This defines the spread as an initial value and a list of adjustments. The spread is only permitted to change at accrual period boundaries. Spread is a per annum rate.
When calculating the rate, the spread is added to the fixing rate. A spread of 0 has no effect. If both gearing and spread exist, then the gearing is applied first.
If this property is not present, then no spread applies.
Defined by the 2006 ISDA definitions article 6.2e.
Frequency paymentFrequency
Regular payments will be made at the specified periodic frequency. The frequency must be the same as, or a multiple of, the accrual periodic frequency.
Compounding applies if the payment frequency does not equal the accrual frequency.
BusinessDayAdjustment businessDayAdjustment
Each date in the calculated schedule is determined relative to the accrual schedule. Normally, the accrual schedule is adjusted ensuring each date is not a holiday. As such, there is typically no reason to adjust the date before applying the payment date offset.
If the accrual dates are unadjusted, or for some other reason, it may be desirable to adjust the schedule dates before applying the payment date offset. This optional property allows that to happen. Note that the payment date offset itself provides the ability to adjust dates after the offset is applied.
PaymentRelativeTo paymentRelativeTo
The payment date is relative to either the start or end of the payment period.
DaysAdjustment paymentDateOffset
The offset is applied to the unadjusted date specified by paymentRelativeTo.
Offset can be based on calendar days or business days.
CompoundingMethod compoundingMethod
Compounding is used when combining accrual periods.
LocalDate firstRegularStartDate
This is used to identify the boundary date between the initial stub and the first regular period. In most cases there is no need to specify this as it can be worked out from other information. It must be used when there is a need to produce a payment schedule with an initial stub that combines an initial stub from the accrual schedule with the first regular period of the accrual schedule.
This is an unadjusted date, and as such it might not be a valid business day. It must equal one of the unadjusted dates on the accrual schedule.
If paymentRelativeTo is 'PeriodEnd' then this field
corresponds to firstPaymentDate in FpML.
LocalDate lastRegularEndDate
This is used to identify the boundary date between the last regular period and the final stub. In most cases there is no need to specify this as it can be worked out from other information. It must be used when there is a need to produce a payment schedule with a final stub that combines a final stub from the accrual schedule with the last regular period of the accrual schedule.
This is used to identify the boundary date between the last regular schedule period and the final stub.
This is an unadjusted date, and as such it might not be a valid business day. This date must be after 'firstPaymentDate'. It must equal one of the unadjusted dates on the accrual schedule.
If paymentRelativeTo is 'PeriodEnd' then this field
corresponds to lastRegularPaymentDate in FpML.
LocalDate startDate
This is the first accrual date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate endDate
This is the last accrual date in the period. If the schedule adjusts for business days, then this is the adjusted date.
LocalDate unadjustedStartDate
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
LocalDate unadjustedEndDate
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
double yearFraction
The value is usually calculated using a DayCount which may be different to that of the index.
Typically the value will be close to 1 for one year and close to 0.5 for six months.
The fraction may be greater than 1, but not less than 0.
RateComputation rateComputation
The value of the period is based on this rate.
Different implementations of the RateComputation interface have different
approaches to computing the rate, including averaging, overnight and interpolation.
For example, it might be a well known market index such as 'GBP-LIBOR-3M'.
double gearing
This defines the gearing, which is used to multiply the observed rate.
When calculating the rate, the observed rate is multiplied by the gearing. If both gearing and spread exist, then the gearing is applied first. A gearing of 1 has no effect.
Gearing is also known as leverage.
double spread
This defines the spread, which is used to add an amount the observed rate.
When calculating the rate, the spread is added to the observed rate. If both gearing and spread exist, then the gearing is applied first. A spread of 0 has no effect.
Defined by the 2006 ISDA definitions article 6.2e.
NegativeRateMethod negativeRateMethod
This is used when the interest rate, observed or calculated, goes negative.
When observing or calculating the rate, the value may go negative. If it does, then this method is used to validate whether the negative rate is allowed. It is applied after any applicable gearing or spread.
Defined by the 2006 ISDA definitions article 6.4.
PayReceive payReceive
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty. Note that negative interest rates can result in a payment in the opposite direction to that implied by this indicator.
PeriodicSchedule accrualSchedule
This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the swap.
PaymentSchedule paymentSchedule
This is used to define the payment periods, including any compounding. The payment period dates are based on the accrual schedule.
NotionalSchedule notionalSchedule
The notional amount schedule, which can vary during the lifetime of the swap. In most cases, the notional amount is not exchanged, with only the net difference being exchanged. However, in certain cases, initial, final or intermediate amounts are exchanged.
RateCalculation calculation
Different kinds of swap leg are determined by the subclass used here.
See FixedRateCalculation, IborRateCalculation and OvernightRateCalculation.
LocalDate paymentDate
The date that payment is made for the accrual periods. If the schedule adjusts for business days, then this is the adjusted date.
ImmutableList<E> accrualPeriods
Each accrual period includes the applicable dates and details of how to observe the rate. In most cases, there will be one accrual period. If there is more than one accrual period then compounding may apply.
DayCount dayCount
Each accrual period contains a year fraction calculated using this day count. This day count is used when there is a need to perform further calculations.
Currency currency
This is the currency of the swap leg and the currency that interest calculation is made in.
The amounts of the notional are usually expressed in terms of this currency,
however they can be converted from amounts in a different currency.
See the optional fxReset property.
FxReset fxReset
This property is used when the defined amount of the notional is specified in a currency other than the currency of the swap leg. When this occurs, the notional amount has to be converted using an FX rate to the swap leg currency.
The FX reset definition must be valid. It must have a reference currency that is different to that of this period, and the currency of this period must be one of those defined by the FX reset index.
double notional
The notional amount applicable during the period.
The currency of the notional is specified by currency unless there
is the fxReset property is present.
CompoundingMethod compoundingMethod
Compounding is used when combining accrual periods.
private Object readResolve()
SwapLegType type
This provides a high level categorization of the swap leg.
PayReceive payReceive
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty. Note that negative interest rates can result in a payment in the opposite direction to that implied by this indicator.
The value of this flag should match the signs of the payment period notionals.
ImmutableList<E> paymentPeriods
Each payment period represents part of the life-time of the leg. In most cases, the periods do not overlap. However, since each payment period is essentially independent the data model allows overlapping periods.
The start date and end date of the leg are determined from the first and last period. As such, the periods should be sorted.
boolean initialExchange
Setting this to true indicates that the notional is transferred at the start of the trade. This should typically be set to true in the case of an FX reset swap, or one with a varying notional.
This flag controls whether a notional exchange object is created when the leg is resolved.
It covers an exchange on the initial payment date of the swap leg, treated as the start date.
If there is an FX reset, then this flag is ignored, see intermediateExchange.
If there is no FX reset and the flag is true, then a NotionalExchange object will be created.
boolean intermediateExchange
Setting this to true indicates that the notional is transferred when it changes during the trade. This should typically be set to true in the case of an FX reset swap, or one with a varying notional.
This flag controls whether a notional exchange object is created when the leg is resolved.
It covers an exchange on each intermediate payment date of the swap leg.
If set to true, the behavior depends on whether an FX reset payment period is defined.
If there is an FX reset, then an FxResetNotionalExchange object will be created.
If there is no FX reset, then a NotionalExchange object will be created.
boolean finalExchange
Setting this to true indicates that the notional is transferred at the end of the trade. This should typically be set to true in the case of an FX reset swap, or one with a varying notional.
This flag controls whether a notional exchange object is created when the leg is resolved.
It covers an exchange on the final payment date of the swap leg.
If there is an FX reset, then this flag is ignored, see intermediateExchange.
If there is no FX reset and the flag is true, then a NotionalExchange object will be created.
ImmutableList<E> paymentEvents
Payment events include fees. Notional exchange may also be specified here instead of via the dedicated fields.
BusinessDayAdjustment paymentBusinessDayAdjustment
The business day adjustment is applied to period, exchange and event payment dates.
Frequency resetFrequency
Reset dates will be calculated within each accrual period based on unadjusted dates. The frequency must be the same as, or smaller than, the accrual periodic frequency. When calculating the reset dates, the roll convention of the accrual periods will be used. Once the unadjusted date calculation is complete, the business day adjustment specified here will be used.
Averaging applies if the reset frequency does not equal the accrual frequency.
BusinessDayAdjustment businessDayAdjustment
This adjustment is applied to each reset date to ensure it is a valid business day.
IborRateResetMethod resetMethod
This is used when more than one fixing contributes to the accrual period.
Averaging may be weighted by the number of days that the fixing is applicable for. The number of days is based on the reset period, not the period between two fixing dates.
Defined by the 2006 ISDA definitions article 6.2a.
private Object readResolve()
ImmutableList<E> legs
A swap consists of one or more legs. The legs of a swap are essentially unordered, however it is more efficient and closer to user expectation to treat them as being ordered.
private Object readResolve()
SwapLegType type
This provides a high level categorization of the swap leg.
PayReceive payReceive
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty. Note that negative interest rates can result in a payment in the opposite direction to that implied by this indicator.
The value of this flag should match the signs of the payment period notionals.
ImmutableList<E> paymentPeriods
Each payment period represents part of the life-time of the leg. In most cases, the periods do not overlap. However, since each payment period is essentially independent the data model allows overlapping periods.
The start date and end date of the leg are determined from the first and last period. As such, the periods should be sorted.
ImmutableList<E> paymentEvents
Payment events include notional exchange and fees.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedSwap product
The product captures the contracted financial details of the trade.
ImmutableList<E> legs
A swap consists of one or more legs. The legs of a swap are essentially unordered, however it is more efficient and closer to user expectation to treat them as being ordered.
Period periodToStart
This is often zero, but can be greater if the swap if forward starting. This must not be negative.
Tenor tenor
This is the period from the first accrual date to the last accrual date.
FixedIborSwapConvention convention
Tenor tenor
This is the period from the first accrual date to the last accrual date.
FixedInflationSwapConvention convention
Period periodToStart
This is often zero, but can be greater if the swap if forward starting. This must not be negative.
Tenor tenor
This is the period from the first accrual date to the last accrual date.
FixedOvernightSwapConvention convention
Currency currency
This is the currency of the swap leg and the currency that payment is made in.
DayCount dayCount
This is used to convert schedule period dates to a numerical value.
Frequency accrualFrequency
Interest will be accrued over periods at the specified periodic frequency, such as every 3 months.
BusinessDayAdjustment accrualBusinessDayAdjustment
Each date in the calculated schedule is determined without taking into account weekends and holidays. The adjustment specified here is used to convert those dates to valid business days.
The start date and end date may have their own business day adjustment rules. If those are not present, then this adjustment is used instead.
BusinessDayAdjustment startDateBusinessDayAdjustment
The start date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert the start date to a valid business day.
This will default to the accrualDatesBusinessDayAdjustment if not specified.
BusinessDayAdjustment endDateBusinessDayAdjustment
The end date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert the end date to a valid business day.
This will default to the accrualDatesBusinessDayAdjustment if not specified.
StubConvention stubConvention
The stub convention is used during schedule construction to determine whether the irregular remaining period occurs at the start or end of the schedule. It also determines whether the irregular period is shorter or longer than the regular period.
This will default to 'SmartInitial' if not specified.
RollConvention rollConvention
The schedule periods are determined at the high level by repeatedly adding the frequency to the start date, or subtracting it from the end date. The roll convention provides the detailed rule to adjust the day-of-month or day-of-week.
This will default to 'None' if not specified.
Frequency paymentFrequency
Regular payments will be made at the specified periodic frequency. The frequency must be the same as, or a multiple of, the accrual periodic frequency.
Compounding applies if the payment frequency does not equal the accrual frequency.
This will default to the accrual frequency if not specified.
DaysAdjustment paymentDateOffset
The offset is applied to the unadjusted date specified by paymentRelativeTo.
Offset can be based on calendar days or business days.
This will default to 'None' if not specified.
CompoundingMethod compoundingMethod
Compounding is used when combining accrual periods.
This will default to 'None' if not specified.
FixedAccrualMethod accrualMethod
This is normally 'None', but can be set forBrazilian swaps.
Period periodToStart
This is often zero, but can be greater if the swap if forward starting. This must not be negative.
Tenor tenor
This is the period from the first accrual date to the last accrual date.
IborIborSwapConvention convention
IborIndex index
The floating rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.
Currency currency
This is the currency of the swap leg 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.
This will default to the currency of the index if not specified.
DayCount dayCount
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.
This will default to the day count of the index if not specified.
Frequency accrualFrequency
Interest will be accrued over periods at the specified periodic frequency, such as every 3 months.
This will default to the tenor of the index if not specified.
BusinessDayAdjustment accrualBusinessDayAdjustment
Each date in the calculated schedule is determined without taking into account weekends and holidays. The adjustment specified here is used to convert those dates to valid business days.
The start date and end date may have their own business day adjustment rules. If those are not present, then this adjustment is used instead.
This will default to 'ModifiedFollowing' using the index fixing calendar if not specified.
BusinessDayAdjustment startDateBusinessDayAdjustment
The start date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert the start date to a valid business day.
This will default to the accrualDatesBusinessDayAdjustment if not specified.
BusinessDayAdjustment endDateBusinessDayAdjustment
The end date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert the end date to a valid business day.
This will default to the accrualDatesBusinessDayAdjustment if not specified.
StubConvention stubConvention
The stub convention is used during schedule construction to determine whether the irregular remaining period occurs at the start or end of the schedule. It also determines whether the irregular period is shorter or longer than the regular period.
This will default to 'SmartInitial' if not specified.
RollConvention rollConvention
The schedule periods are determined at the high level by repeatedly adding the frequency to the start date, or subtracting it from the end date. The roll convention provides the detailed rule to adjust the day-of-month or day-of-week.
This will default to 'None' if not specified.
FixingRelativeTo fixingRelativeTo
The fixing date is relative to either the start or end of each reset period.
Note that in most cases, the reset frequency matches the accrual frequency and thus there is only one fixing for the accrual period.
This will default to 'PeriodStart' if not specified.
DaysAdjustment fixingDateOffset
The offset is applied to the base date specified by fixingRelativeTo.
The offset is typically a negative number of business days.
The data model permits the offset to differ from that of the index,
however the two are typically the same.
This will default to the fixing date offset of the index if not specified.
Frequency paymentFrequency
Regular payments will be made at the specified periodic frequency. The frequency must be the same as, or a multiple of, the accrual periodic frequency.
Compounding applies if the payment frequency does not equal the accrual frequency.
This will default to the accrual frequency if not specified.
DaysAdjustment paymentDateOffset
The offset is applied to the unadjusted date specified by paymentRelativeTo.
Offset can be based on calendar days or business days.
This will default to 'None' if not specified.
CompoundingMethod compoundingMethod
Compounding is used when combining accrual periods.
This will default to 'None' if not specified.
boolean notionalExchange
If 'true', the notional there is both an initial exchange and a final exchange of notional.
This will default to 'false' if not specified.
String name
FixedRateSwapLegConvention fixedLeg
IborRateSwapLegConvention floatingLeg
DaysAdjustment spotDateOffset
The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".
String name
FixedRateSwapLegConvention fixedLeg
InflationRateSwapLegConvention floatingLeg
DaysAdjustment spotDateOffset
The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".
String name
FixedRateSwapLegConvention fixedLeg
OvernightRateSwapLegConvention floatingLeg
DaysAdjustment spotDateOffset
The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".
String name
IborRateSwapLegConvention spreadLeg
The spread is the market price of the instrument. It is added to the observed interest rate.
IborRateSwapLegConvention flatLeg
DaysAdjustment spotDateOffset
The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".
String name
OvernightRateSwapLegConvention overnightLeg
IborRateSwapLegConvention iborLeg
DaysAdjustment spotDateOffset
The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".
String name
FixedRateSwapLegConvention spreadLeg
This is to be applied to floatingSpreadLeg.
IborRateSwapLegConvention spreadFloatingLeg
IborRateSwapLegConvention flatFloatingLeg
DaysAdjustment spotDateOffset
The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".
String name
IborRateSwapLegConvention spreadLeg
The spread is the market price of the instrument. It is added to the observed interest rate.
IborRateSwapLegConvention flatLeg
DaysAdjustment spotDateOffset
The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".
String name
OvernightRateSwapLegConvention spreadLeg
The spread is the market price of the instrument. It is added to the observed interest rate.
OvernightRateSwapLegConvention flatLeg
DaysAdjustment spotDateOffset
The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".
PriceIndex index
The floating rate to be paid is based on this price index It will be a well known price index such as 'GB-HICP'.
Period lag
A price index is typically published monthly and has a delay before publication. The lag is subtracted from the accrual start and end date to locate the month of the data to be observed.
For example, the September data may be published in October or November. A 3 month lag will cause an accrual date in December to be based on the observed data for September, which should be available by then.
PriceIndexCalculationMethod indexCalculationMethod
This specifies how the reference index calculation occurs.
This will default to 'Monthly' if not specified.
boolean notionalExchange
If 'true', the notional there is both an initial exchange and a final exchange of notional.
This will default to 'false' if not specified.
DaysAdjustment paymentDateOffset
The offset is applied to the unadjusted date specified by paymentRelativeTo.
Offset can be based on calendar days or business days.
This will default to 'None' if not specified.
BusinessDayAdjustment accrualBusinessDayAdjustment
Each date in the calculated schedule is determined without taking into account weekends and holidays. The adjustment specified here is used to convert those dates to valid business days.
The start date and end date may have their own business day adjustment rules. If those are not present, then this adjustment is used instead.
This will default to 'ModifiedFollowing' using the index fixing calendar if not specified.
Period periodToStart
This is often zero, but can be greater if the swap if forward starting. This must not be negative.
Tenor tenor
This is the period from the first accrual date to the last accrual date.
OvernightIborSwapConvention convention
OvernightIndex index
The floating rate to be paid is based on this index It will be a well known market index such as 'GBP-SONIA'.
OvernightAccrualMethod accrualMethod
Two methods of accrual are supported - 'Compounded' and 'Averaged'. Averaging is primarily related to the 'USD-FED-FUND' index.
Integer rateCutOffDays
When a rate cut-off applies, the final daily rate is determined this number of days before the end of the period, with any subsequent days having the same rate.
The amount must be zero or positive. A value of zero or one will have no effect on the standard calculation. The fixing holiday calendar of the index is used to determine business days.
For example, a value of 3 means that the rate observed on
(periodEndDate - 3 business days) is also to be used on
(periodEndDate - 2 business days) and (periodEndDate - 1 business day).
If there are multiple accrual periods in the payment period, then this will only apply to the last accrual period in the payment period.
This will default to the zero if not specified.
Currency currency
This is the currency of the swap leg 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.
This will default to the currency of the index if not specified.
DayCount dayCount
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.
This will default to the day count of the index if not specified.
Frequency accrualFrequency
Interest will be accrued over periods at the specified periodic frequency, such as every 3 months.
This will default to the term frequency if not specified.
BusinessDayAdjustment accrualBusinessDayAdjustment
Each date in the calculated schedule is determined without taking into account weekends and holidays. The adjustment specified here is used to convert those dates to valid business days.
The start date and end date may have their own business day adjustment rules. If those are not present, then this adjustment is used instead.
This will default to 'ModifiedFollowing' using the index fixing calendar if not specified.
BusinessDayAdjustment startDateBusinessDayAdjustment
The start date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert the start date to a valid business day.
This will default to the accrualDatesBusinessDayAdjustment if not specified.
BusinessDayAdjustment endDateBusinessDayAdjustment
The end date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert the end date to a valid business day.
This will default to the accrualDatesBusinessDayAdjustment if not specified.
StubConvention stubConvention
The stub convention is used during schedule construction to determine whether the irregular remaining period occurs at the start or end of the schedule. It also determines whether the irregular period is shorter or longer than the regular period.
This will default to 'SmartInitial' if not specified.
RollConvention rollConvention
The schedule periods are determined at the high level by repeatedly adding the frequency to the start date, or subtracting it from the end date. The roll convention provides the detailed rule to adjust the day-of-month or day-of-week.
This will default to 'None' if not specified.
Frequency paymentFrequency
Regular payments will be made at the specified periodic frequency. The frequency must be the same as, or a multiple of, the accrual periodic frequency.
Compounding applies if the payment frequency does not equal the accrual frequency.
This will default to the accrual frequency if not specified.
DaysAdjustment paymentDateOffset
The offset is applied to the unadjusted date specified by paymentRelativeTo.
Offset can be based on calendar days or business days.
This will default to 'None' if not specified.
CompoundingMethod compoundingMethod
Compounding is used when combining accrual periods.
This will default to 'None' if not specified.
boolean notionalExchange
If 'true', the notional there is both an initial exchange and a final exchange of notional.
This will default to 'false' if not specified.
Period periodToStart
This is often zero, but can be greater if the swap if forward starting. This must not be negative.
Tenor tenor
This is the period from the first accrual date to the last accrual date.
ThreeLegBasisSwapConvention convention
Period periodToStart
This is often zero, but can be greater if the swap if forward starting. This must not be negative.
Tenor tenor
This is the period from the first accrual date to the last accrual date.
XCcyIborIborSwapConvention convention
Period periodToStart
This is often zero, but can be greater if the swap if forward starting. This must not be negative.
Tenor tenor
This is the period from the first accrual date to the last accrual date.
XCcyOvernightOvernightSwapConvention convention
LocalDate settlementDate
The payoff of the option is settled at this date.
CashSwaptionSettlementMethod method
The settlement rate of the cash settled swaption is specified by respective cash settlement methods.
LongShort longShort
Long indicates that the owner wants the option to be in the money at expiry. Short indicates that the owner wants the option to be out of the money at expiry.
SwaptionSettlement swaptionSettlement
The settlement of the option is specified by SwaptionSettlement.
SwaptionExerciseDates exerciseInfo
A swaption can have three different kinds of exercise - European, American and Bermudan. A European swaption has one exercise date, an American can exercise on any date, and a Bermudan can exercise on a fixed set of dates.
European swaptions will have matching information in this object, expiry date and swap start date. If this is not set in the builder, it will be defaulted to European from the expiry date and swap start date.
ZonedDateTime expiry
The option is European, and can only be exercised on the expiry date.
ResolvedSwap underlying
At expiry, if the option is exercised, this swap will be entered into. The swap description is the swap as viewed by the party long the option.
TradeInfo info
This allows additional information to be attached to the trade.
ResolvedSwaption product
The product captures the contracted financial details of the trade.
Payment premium
The premium sign should be compatible with the product Long/Short flag. This means that the premium is negative for long and positive for short.
LongShort longShort
Long indicates that the owner wants the option to be in the money at expiry. Short indicates that the owner wants the option to be out of the money at expiry.
SwaptionSettlement swaptionSettlement
The settlement of the option is specified by SwaptionSettlement.
SwaptionExercise exerciseInfo
A swaption can have three different kinds of exercise - European, American and Bermudan. A European swaption has one exercise date, an American can exercise on any date, and a Bermudan can exercise on a fixed set of dates.
If not present, the swaption is considered to be a European swaption as per the expiry date.
AdjustableDate expiryDate
This is the last date that the swaption can be exercised.
To represent Bermudan and American swaptions, or to represent a European swaption where the swap start
date is calculated dynamically, see the exerciseOptions field.
This date is typically set to be a valid business day.
However, the businessDayAdjustment property may be set to provide a rule for adjustment.
LocalTime expiryTime
The expiry time is related to the expiry date and time-zone.
ZoneId expiryZone
The expiry time-zone is related to the expiry date and time.
Swap underlying
At expiry, if the option is exercised, this swap will be entered into. The swap description is the swap as viewed by the party long the option.
AdjustableDates dateDefinition
A European swaption has one date in the list. A Bermudan swaption has at least two dates in the list. An American swaption has at exactly two dates in the list, the earliest and latest dates.
Frequency frequency
An American swaption must set this to one day.
A Bermudan swaption might set this to a specific frequency instead of pre-calculating the dates. If it does this, there must only be two dates in the list. The intermediate dates will be calculated by adding multiples of the frequency to the earliest date.
DaysAdjustment swapStartDateOffset
Each adjusted exercise date has this offset applied to get the start date of the underlying swap.
LocalDate exerciseDate
This date has been adjusted to be a business day.
LocalDate unadjustedExerciseDate
This date may be a non-business day.
LocalDate swapStartDate
This date has been adjusted to be a business day.
ImmutableList<E> dates
A European swaption has one date in the list. A Bermudan swaption has at least two dates in the list. An American swaption has at exactly two dates in the list, the earliest and latest dates.
boolean allDates
This will be true for an American swaption, and false otherwise.
TradeInfo info
This allows additional information to be attached to the trade.
Swaption product
The product captures the contracted financial details of the trade.
AdjustablePayment premium
The premium sign should be compatible with the product Long/Short flag. This means that the premium is negative for long and positive for short.
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.