# Serialized Form

• ## Package com.opengamma.strata.basics

• ### Class com.opengamma.strata.basics.CalculationTargetList extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### targets

com.google.common.collect.ImmutableList<CalculationTarget> targets
The targets.
• ### Class com.opengamma.strata.basics.ImmutableReferenceData extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### values

com.google.common.collect.ImmutableMap<ReferenceDataId<?>,​java.lang.Object> values
The typed reference data values by identifier.
• ### Class com.opengamma.strata.basics.ReferenceDataNotFoundException extends java.lang.RuntimeException implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.basics.StandardId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### scheme

java.lang.String scheme
The scheme that categorizes the identifier value.

This provides the universe within which the identifier value has meaning.

• #### value

java.lang.String value
The value of the identifier within the scheme.
• ## Package com.opengamma.strata.basics.currency

• ### Class com.opengamma.strata.basics.currency.AdjustablePayment extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

AdjustableDate date
The date that the payment is made.

This date should normally be a valid business day.

• #### value

CurrencyAmount value
The amount of the payment.

The amount is signed. A negative value indicates the amount is to be paid while a positive value indicates the amount is received.

• ### Class com.opengamma.strata.basics.currency.Currency extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
Ensure singleton on deserialization.
• ### Serialized Fields

• #### code

java.lang.String code
The currency code.
• ### Class com.opengamma.strata.basics.currency.CurrencyAmount extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amount

double amount
The amount of the currency.

For example, in the value 'GBP 12.34' the amount is 12.34.

• #### currency

Currency currency
The currency.

For example, in the value 'GBP 12.34' the currency is 'GBP'.

• ### Class com.opengamma.strata.basics.currency.CurrencyAmountArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency. All amounts have the same currency.
• #### values

DoubleArray values
The values.
• ### Class com.opengamma.strata.basics.currency.CurrencyPair extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### base

Currency base
The base currency of the pair. In the pair 'AAA/BBB' the base is 'AAA'.
• #### counter

Currency counter
The counter currency of the pair. In the pair 'AAA/BBB' the counter is 'BBB'.
• ### Class com.opengamma.strata.basics.currency.FxMatrix extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencies

com.google.common.collect.ImmutableMap<Currency,​java.lang.Integer> currencies
The map between the currencies and their position within the rates array. Generally the position reflects the order in which the currencies were added, so the first currency added will be assigned 0, the second 1 etc.

An ImmutableMap is used so that the currencies are correctly ordered when the FxMatrix.toString() method is called.

• #### rates

DoubleMatrix rates
The matrix with all the exchange rates. Each row represents the rates required to convert a unit of particular currency to all other currencies in the matrix.

If currencies c1 and c2 are assigned indexes i and j respectively in the currencies map, then the entry [i][j] is such that 1 unit of currency c1 is worth rates[i][j] units of currency c2.

If currencies.get(EUR) = 0 and currencies.get(USD) = 1, then the element rates[0][1] is likely to be around 1.40 and rates[1][0] around 0.7142. The rate rates[1][0] will be computed from fxRate[0][1] when the object is constructed by the builder. All the element of the matrix are meaningful and coherent.

• ### Class com.opengamma.strata.basics.currency.FxRate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### pair

CurrencyPair pair
The currency pair. The pair is formed of two parts, the base and the counter. In the pair 'AAA/BBB' the base is 'AAA' and the counter is 'BBB'.
• #### rate

double rate
The rate applicable to the currency pair. One unit of the base currency is exchanged for this amount of the counter currency.
• ### Class com.opengamma.strata.basics.currency.Money extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amount

java.math.BigDecimal amount
The amount of the currency.

For example, in the value 'GBP 12.34' the amount is 12.34.

• #### currency

Currency currency
The currency.

For example, in the value 'GBP 12.34' the currency is 'GBP'.

• ### Class com.opengamma.strata.basics.currency.MultiCurrencyAmount extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amounts

com.google.common.collect.ImmutableSortedSet<CurrencyAmount> amounts
The set of currency amounts. Each currency will occur only once, as per a map keyed by currency.
• ### Class com.opengamma.strata.basics.currency.MultiCurrencyAmountArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### size

int size
The size of this array.
• #### values

com.google.common.collect.ImmutableSortedMap<Currency,​DoubleArray> values
The currency values, keyed by currency.
• ### Class com.opengamma.strata.basics.currency.Payment extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

java.time.LocalDate date
The date that the payment is made.

This date should normally be a valid business day.

• #### value

CurrencyAmount value
The amount of the payment.

The amount is signed. A negative value indicates the amount is to be paid while a positive value indicates the amount is received.

• ## Package com.opengamma.strata.basics.date

• ### Class com.opengamma.strata.basics.date.AdjustableDate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment adjustment

This is used to adjust the date if it is not a business day.

java.time.LocalDate unadjusted

serialVersionUID:
1L
• ### Serialized Fields

• #### calendar

HolidayCalendarId calendar
The calendar that defines holidays and business days.

When the adjustment is made, this calendar is used to skip holidays.

• #### convention

BusinessDayConvention convention
The convention used to the adjust the date if it does not fall on a business day.

The convention determines whether to move forwards or backwards when it is a holiday.

• ### Class com.opengamma.strata.basics.date.DaysAdjustment extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment adjustment

This adjustment is applied to the result of the period addition calculation. If the addition is performed using business days then any adjustment here is expected to have a different holiday calendar to that used during addition.

• #### calendar

HolidayCalendarId calendar
The holiday calendar that defines the meaning of a day when performing the addition.

When the adjustment is performed, this calendar is used to determine which days are business days.

If the holiday calendar is 'None' then addition uses simple date addition arithmetic without considering any days as holidays or weekends. If the holiday calendar is anything other than 'None' then addition uses that calendar, effectively repeatedly finding the next business day.

• #### days

int days
The number of days to be added.

When the adjustment is performed, this amount will be added to the input date using the calendar to determine the addition type.

• ### Class com.opengamma.strata.basics.date.HolidayCalendarId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### name

java.lang.String name
The identifier, expressed as a normalized unique name.
• ### Class com.opengamma.strata.basics.date.ImmutableHolidayCalendar extends java.lang.Object implements Serializable

serialVersionUID:
2L
• ### Serialized Fields

• #### id

HolidayCalendarId id
The identifier, such as 'GBLO'.
• #### lookup

int[] lookup
The lookup table, where each item represents a month from January of startYear onwards. Bits 0 to 31 are used for each day-of-month, where 0 is a holiday and 1 is a business day. Trailing bits are set to 0 so they act as holidays, avoiding month length logic.
• #### startYear

int startYear
The start year. Used as the base year for the lookup table.
• #### weekends

int weekends
The set of weekend days.

Each date that has a day-of-week matching one of these days is not a business day.

• ### Class com.opengamma.strata.basics.date.PeriodAdjustment extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

PeriodAdditionConvention additionConvention

When the adjustment is performed, this convention is used to refine the adjusted date. The most common convention is to move the end date to the last business day of the month if the start date is the last business day of the month.

BusinessDayAdjustment adjustment

• #### period

java.time.Period period

When the adjustment is performed, this period will be added to the input date.

• ### Class com.opengamma.strata.basics.date.Tenor extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### name

java.lang.String name
The name of the tenor.
• #### period

java.time.Period period
The period of the tenor.
• ### Class com.opengamma.strata.basics.date.TenorAdjustment extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

PeriodAdditionConvention additionConvention

When the adjustment is performed, this convention is used to refine the adjusted date. The most common convention is to move the end date to the last business day of the month if the start date is the last business day of the month.

BusinessDayAdjustment adjustment

• #### tenor

Tenor tenor

When the adjustment is performed, this tenor will be added to the input date.

• ## Package com.opengamma.strata.basics.index

• ### Class com.opengamma.strata.basics.index.FxIndexObservation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixingDate

java.time.LocalDate fixingDate
The date of the index fixing.

This is an adjusted date with any business day rule applied. Valid business days are defined by FxIndex.getFixingCalendar().

• #### index

FxIndex index
The FX index.

The rate will be queried from this index.

• #### maturityDate

java.time.LocalDate maturityDate
The date of the transfer implied by the fixing date.

This is an adjusted date with any business day rule applied. This must be equal to FxIndex.calculateMaturityFromFixing(LocalDate, ReferenceData).

• ### Class com.opengamma.strata.basics.index.IborIndexObservation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### effectiveDate

java.time.LocalDate effectiveDate
The effective date of the investment implied by the fixing date.

This is an adjusted date with any business day rule applied. This must be equal to IborIndex.calculateEffectiveFromFixing(LocalDate, ReferenceData).

• #### fixingDate

java.time.LocalDate fixingDate
The date of the index fixing.

This is an adjusted date with any business day rule applied. Valid business days are defined by RateIndex.getFixingCalendar().

• #### index

IborIndex index
The Ibor index.

The rate to be paid is based on this index. It will be a well known market index such as 'GBP-LIBOR-3M'.

• #### maturityDate

java.time.LocalDate maturityDate
The maturity date of the investment implied by the fixing date.

This is an adjusted date with any business day rule applied. This must be equal to IborIndex.calculateMaturityFromEffective(LocalDate, ReferenceData).

• #### yearFraction

double yearFraction
The year fraction of the investment implied by the fixing date.

This is calculated using the day count of the index. It represents the fraction of the year between the effective date and the maturity date. Typically the value will be close to 1 for one year and close to 0.5 for six months.

• ### Class com.opengamma.strata.basics.index.ImmutableFloatingRateName extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### externalName

java.lang.String externalName
The external name, typically from FpML, such as 'GBP-LIBOR-BBA'.
• #### fixingDateOffsetDays

java.lang.Integer fixingDateOffsetDays
The fixing date offset, in days, optional. This is used when a floating rate name implies a non-standard fixing date offset. This is only used for Ibor Indices, and currently only for DKK CIBOR.
• #### indexName

java.lang.String indexName
The root of the name of the index, such as 'GBP-LIBOR', to which the tenor is appended. This name matches that used by IborIndex or OvernightIndex. Typically, multiple FloatingRateName names map to one Ibor or Overnight index.
• #### type

FloatingRateType type
The type of the index.
• ### Class com.opengamma.strata.basics.index.ImmutableFxIndex extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencyPair

CurrencyPair currencyPair
The currency pair.

An index defines an FX rate in a single direction, such as from EUR to USD. This currency pair defines that direction.

In most cases, the same index can be used to convert in both directions by taking the rate or the reciprocal as necessary.

• #### fixingCalendar

HolidayCalendarId fixingCalendar
The calendar that determines which dates are fixing dates.

The fixing date is when the rate is determined.

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The adjustment applied to the maturity date to obtain the fixing date.

The maturity date is the start date of the indexed deposit. In most cases, the fixing date is 2 days before the maturity date.

• #### maturityDateOffset

DaysAdjustment maturityDateOffset
The adjustment applied to the fixing date to obtain the maturity date.

The maturity date is the start date of the indexed deposit. In most cases, the maturity date is 2 days after the fixing date.

• #### name

java.lang.String name
The index name, such as 'EUR/GBP-ECB'.
• ### Class com.opengamma.strata.basics.index.ImmutableIborIndex extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### active

boolean active
Whether the index is active, defaulted to true.

Over time some indices become inactive and are no longer produced. If this occurs, this flag will be set to false.

• #### currency

Currency currency
The currency of the index.
• #### dayCount

DayCount dayCount
The day count convention.
• #### defaultFixedLegDayCount

DayCount defaultFixedLegDayCount
The default day count convention for the associated fixed leg.

A rate index is often paid against a fixed leg, such as in a vanilla Swap. The day count convention of the fixed leg often differs from that of the index, and the default is value is available here.

• #### effectiveDateOffset

DaysAdjustment effectiveDateOffset
The adjustment applied to the fixing date to obtain the effective date.

The effective date is the start date of the indexed deposit. In most cases, the effective date is 0 or 2 days after the fixing date. This data structure allows the complex rules of some indices to be represented.

• #### fixingCalendar

HolidayCalendarId fixingCalendar
The calendar that determines which dates are fixing dates.

The fixing date is when the rate is determined.

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The adjustment applied to the effective date to obtain the fixing date.

The fixing date is the date on which the index is to be observed. In most cases, the fixing date is 0 or 2 days before the effective date. This data structure allows the complex rules of some indices to be represented.

• #### fixingTime

java.time.LocalTime fixingTime
The fixing time.

The rate is fixed at the fixing time of the fixing date.

• #### fixingZone

java.time.ZoneId fixingZone
The fixing time-zone.

The time-zone of the fixing time.

• #### maturityDateOffset

TenorAdjustment maturityDateOffset
The adjustment applied to the effective date to obtain the maturity date.

The maturity date is the end date of the indexed deposit and is relative to the effective date. This data structure allows the complex rules of some indices to be represented.

• #### name

java.lang.String name
The index name, such as 'GBP-LIBOR-3M'.
• ### Class com.opengamma.strata.basics.index.ImmutableOvernightIndex extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### active

boolean active
Whether the index is active, defaulted to true.

Over time some indices become inactive and are no longer produced. If this occurs, this flag will be set to false.

• #### currency

Currency currency
The currency of the index.
• #### dayCount

DayCount dayCount
The day count convention.
• #### defaultFixedLegDayCount

DayCount defaultFixedLegDayCount
The default day count convention for the associated fixed leg.

A rate index is often paid against a fixed leg, such as in a vanilla Swap. The day count convention of the fixed leg often differs from that of the index, and the default is value is available here.

• #### effectiveDateOffset

int effectiveDateOffset
The number of days to add to the fixing date to obtain the effective date.

In most cases, the settlement date and start of the implied deposit is on the fixing date. In a few cases, the settlement date is the following business day. This property is zero if settlement is on the fixing date, or one if it is the next day. Maturity is always one business day after the settlement date.

• #### fixingCalendar

HolidayCalendarId fixingCalendar
The calendar that the index uses.

All dates are calculated with reference to the same calendar.

• #### name

java.lang.String name
The index name, such as 'GBP-SONIA'.
• #### publicationDateOffset

int publicationDateOffset
The number of days to add to the fixing date to obtain the publication date.

In most cases, the fixing rate is available on the fixing date. In a few cases, publication of the fixing rate is delayed until the following business day. This property is zero if publication is on the fixing date, or one if it is the next day.

• ### Class com.opengamma.strata.basics.index.ImmutablePriceIndex extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### active

boolean active
Whether the index is active, defaulted to true.

Over time some indices become inactive and are no longer produced. If this occurs, this flag will be set to false.

• #### currency

Currency currency
The currency of the index.
• #### name

java.lang.String name
The index name, such as 'GB-HICP'.
• #### publicationFrequency

Frequency publicationFrequency
The publication frequency of the index. Most price indices are published monthly, but some are published quarterly.
• #### region

Country region
The region of the index.
• ### Class com.opengamma.strata.basics.index.OvernightIndexObservation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### effectiveDate

java.time.LocalDate effectiveDate
The effective date of the investment implied by the fixing date.

This is an adjusted date with any business day rule applied. This must be equal to OvernightIndex.calculateEffectiveFromFixing(LocalDate, ReferenceData).

• #### fixingDate

java.time.LocalDate fixingDate
The date of the index fixing.

This is an adjusted date with any business day rule applied. Valid business days are defined by RateIndex.getFixingCalendar().

• #### index

OvernightIndex index
The Overnight index.

The rate will be queried from this index.

• #### maturityDate

java.time.LocalDate maturityDate
The maturity date of the investment implied by the fixing date.

This is an adjusted date with any business day rule applied. This must be equal to OvernightIndex.calculateMaturityFromEffective(LocalDate, ReferenceData).

• #### publicationDate

java.time.LocalDate publicationDate
The date that the rate implied by the fixing date is published.

This is an adjusted date with any business day rule applied. This must be equal to OvernightIndex.calculatePublicationFromFixing(LocalDate, ReferenceData).

• #### yearFraction

double yearFraction
The year fraction of the investment implied by the fixing date.

This is calculated using the day count of the index. It represents the fraction of the year between the effective date and the maturity date. Typically the value will be close to 1 for one year and close to 0.5 for six months.

• ### Class com.opengamma.strata.basics.index.PriceIndexObservation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixingMonth

java.time.YearMonth fixingMonth
The fixing month.

The index will be observed for this month.

• #### index

PriceIndex index
The FX index.

The rate will be queried from this index.

• ## Package com.opengamma.strata.basics.location

• ### Class com.opengamma.strata.basics.location.Country extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
Ensure singleton on deserialization.
• ### Serialized Fields

• #### code

java.lang.String code
The country code.
• ## Package com.opengamma.strata.basics.schedule

• ### Class com.opengamma.strata.basics.schedule.Frequency extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### name

java.lang.String name
The name of the frequency.
• #### period

java.time.Period period
The period of the frequency.
• ### Class com.opengamma.strata.basics.schedule.PeriodicSchedule extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

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.

• #### endDate

java.time.LocalDate endDate
The end date, which is the end of the last schedule period.

This is the end date of the schedule. It is is unadjusted and as such might be a weekend or holiday. Any applicable business day adjustment will be applied when creating the schedule. This is also known as the unadjusted maturity date or unadjusted termination date. This date must be after the start date.

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.

If this property is not present, the standard businessDayAdjustment property is used instead.

• #### firstRegularStartDate

java.time.LocalDate firstRegularStartDate
The optional start date of the first regular schedule period, which is the end date of the initial stub.

This is used to identify the boundary date between the initial stub and the first regular schedule period.

This is an unadjusted date, and as such it might not be a valid business day. This date must be on or after 'startDate'.

During schedule generation, if this is present it will be used to determine the schedule. If not present, then the overall schedule start date will be used instead, resulting in no initial stub.

• #### frequency

Frequency frequency
The regular periodic frequency to use.

Most dates are calculated using a regular periodic frequency, such as every 3 months. The actual day-of-month or day-of-week is selected using the roll and stub conventions.

• #### lastRegularEndDate

java.time.LocalDate lastRegularEndDate
The optional end date of the last regular schedule period, which is the start date of the final stub.

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 'startDate' and on or after 'firstRegularStartDate'. This date must be on or before 'endDate'.

During schedule generation, if this is present it will be used to determine the schedule. If not present, then the overall schedule end date will be used instead, resulting in no final stub.

• #### overrideStartDate

AdjustableDate overrideStartDate
The optional start date of the first schedule period, overriding normal schedule generation.

This property is rarely used, and is generally needed when accrual starts before the effective date. If specified, it overrides the start date of the first period once schedule generation has been completed. Note that all schedule generation rules apply to 'startDate', with this applied as a final step. This field primarily exists to support the FpML 'firstPeriodStartDate' concept.

If a roll convention is explicitly specified and the regular start date does not match it, then the override will be used when generating regular periods.

If set, it should be different to the start date, although this is not validated. Validation does check that it is before the 'firstRegularStartDate'.

During schedule generation, if this is present it will be used to override the start date of the first generated schedule period. If not present, then the start of the first period will be the normal start date.

• #### rollConvention

RollConvention rollConvention
The optional convention defining how to roll dates.

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.

During schedule generation, if this is present it will be used to determine the schedule. If not present, then the roll convention will be implied.

• #### startDate

java.time.LocalDate startDate
The start date, which is the start of the first schedule period.

This is the start date of the schedule. It is is unadjusted and as such might be a weekend or holiday. Any applicable business day adjustment will be applied when creating the schedule. This is also known as the unadjusted effective date.

In most cases, the start date of a financial instrument is just after the trade date, such as two business days later. However, the start date of a schedule is permitted to be any date, which includes dates before or after the trade date.

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.

If this property is not present, the standard businessDayAdjustment property is used instead.

• #### stubConvention

StubConvention stubConvention
The optional convention defining how to handle stubs.

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 property interacts with the "explicit dates" of PeriodicSchedule.getFirstRegularStartDate() and PeriodicSchedule.getLastRegularEndDate().

The convention 'None' may be used to explicitly indicate there are no stubs. There must be no explicit dates. This will be validated during schedule construction.

The convention 'Both' may be used to explicitly indicate there is both an initial and final stub. The stubs themselves must be specified using explicit dates. This will be validated during schedule construction.

The conventions 'ShortInitial', 'LongInitial', 'SmartInitial', 'ShortFinal', 'LongFinal' and 'SmartFinal' are used to indicate the type of stub to be generated. The exact behavior varies depending on whether there are explicit dates or not:

If explicit dates are specified, then the combination of stub convention an explicit date will be validated during schedule construction. For example, the combination of an explicit dated initial stub and a stub convention of 'ShortInitial', 'LongInitial' or 'SmartInitial' is valid, but other stub conventions, such as 'ShortFinal' or 'None' would be invalid.

If explicit dates are not specified, then it is not required that a stub is generated. The convention determines whether to generate dates from the start date forward, or the end date backwards. Date generation may or may not result in a stub, but if it does then the stub will be of the correct type.

When the stub convention is not present, the generation of stubs is based entirely on the presence or absence of the explicit dates.

• ### Class com.opengamma.strata.basics.schedule.Schedule extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### frequency

Frequency frequency
The periodic frequency used when building the schedule.

If the schedule was not built from a regular periodic frequency, then the frequency should be a suitable estimate.

• #### periods

com.google.common.collect.ImmutableList<SchedulePeriod> periods
The schedule periods.

There will be at least one period. The periods are ordered from earliest to latest. It is intended that each period is adjacent to the next one, however each period is independent and non-adjacent periods are allowed.

• #### rollConvention

RollConvention rollConvention
The roll convention used when building the schedule.

If the schedule was not built from a regular periodic frequency, then the convention should be 'None'.

• ### Class com.opengamma.strata.basics.schedule.ScheduleException extends java.lang.IllegalArgumentException implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### definition

PeriodicSchedule definition
The invalid schedule definition.
• ### Class com.opengamma.strata.basics.schedule.SchedulePeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The end date of this period, used for financial calculations such as interest accrual.

The last date in the schedule period, typically treated as exclusive. If the schedule adjusts for business days, then this is the adjusted date.

• #### startDate

java.time.LocalDate startDate
The start date of this period, used for financial calculations such as interest accrual.

The first date in the schedule period, typically treated as inclusive. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

The end date before any business day adjustment. If the schedule adjusts for business days, then this is typically the regular periodic date. If the schedule does not adjust for business days, then this is the same as the end date.

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

The start date before any business day adjustment. If the schedule adjusts for business days, then this is typically the regular periodic date. If the schedule does not adjust for business days, then this is the same as the start date.

When building, this will default to the start date if not specified.

• ## Package com.opengamma.strata.basics.value

• ### Class com.opengamma.strata.basics.value.ValueAdjustment extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### modifyingValue

double modifyingValue
The value used to modify the base value. This value is given meaning by the associated type.
• #### type

ValueAdjustmentType type
The type of adjustment to make.
• ### Class com.opengamma.strata.basics.value.ValueDerivatives extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### derivatives

DoubleArray derivatives
The derivatives of the variable with respect to some inputs.
• #### value

double value
The value of the variable.
• ### Class com.opengamma.strata.basics.value.ValueSchedule extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### initialValue

double initialValue
The initial value.

This is used for the lifetime of the trade unless specifically varied.

• #### steps

java.util.List<ValueStep> steps
The steps defining the change in the value.

Each step consists of a key locating the date of the change and the adjustment that occurs.

• #### stepSequence

ValueStepSequence stepSequence
The sequence of steps changing the value.

This allows a regular pattern of steps to be encoded. All step dates must be unique, thus the list of steps must not contain any date implied by this sequence.

• ### Class com.opengamma.strata.basics.value.ValueStep extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

java.time.LocalDate date
The date of the schedule period boundary at which the change occurs.

This property is used to define the date that the step occurs in absolute terms. This must be one of the unadjusted dates in the schedule period schedule. This is an unadjusted date and calculation period business day adjustments will apply.

For example, consider a 5 year swap from 2012-02-01 to 2017-02-01 with 6 month frequency. The date '2013-02-01' is an unadjusted schedule period boundary, and so may be specified here.

• #### periodIndex

java.lang.Integer periodIndex
The index of the schedule period boundary at which the change occurs.

This property is used to define the date that the step occurs in relative terms. The date is identified by specifying the zero-based index of the schedule period boundary. The change will occur at the start of the specified period. Thus an index of zero is the start of the first period or initial stub. The index must be one or greater, as a change is not permitted at the start of the first period.

For example, consider a 5 year swap from 2012-02-01 to 2017-02-01 with 6 month frequency. A zero-based index of '2' would refer to start of the 3rd period, which would be 2013-02-01.

• #### value

ValueAdjustment value
The value representing the change that occurs.

The adjustment can be an absolute value, or various kinds of relative values.

• ### Class com.opengamma.strata.basics.value.ValueStepSequence extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

ValueAdjustment adjustment
The adjustment representing the change that occurs at each step.

The adjustment type must not be 'Replace'.

• #### firstStepDate

java.time.LocalDate firstStepDate
The first date in the sequence.

This sequence will change the value on this date, but not before. This must be one of the unadjusted dates in the schedule period schedule.

For example, consider a 5 year swap from 2012-02-01 to 2017-02-01 with 6 month frequency. The date '2013-02-01' is an unadjusted schedule period boundary, and so may be specified here.

• #### frequency

Frequency frequency
The frequency of the sequence.

This sequence will change the value on each date between the start and end defined by this frequency. The frequency is interpreted relative to the frequency of a Schedule. It must be equal or greater than the related schedule.

• #### lastStepDate

java.time.LocalDate lastStepDate
The last date in the sequence.

This sequence will change the value on this date, but not after. This must be one of the unadjusted dates in the schedule period schedule.

For example, consider a 5 year swap from 2012-02-01 to 2017-02-01 with 6 month frequency. The date '2015-02-01' is an unadjusted schedule period boundary, and so may be specified here.

• ## Package com.opengamma.strata.calc

• ### Class com.opengamma.strata.calc.ColumnName extends TypedString<ColumnName> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.calc.ImmutableMeasure extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencyConvertible

boolean currencyConvertible
Flag indicating whether measure values should be automatically converted to the reporting currency.
• #### name

java.lang.String name
The measure name.

Measure names must only contains the characters A-Z, a-z, 0-9 and -.

• ### Class com.opengamma.strata.calc.ReportingCurrency extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The reporting currency.

This property will be set only if the type is 'Specific'.

• #### type

ReportingCurrencyType type
The type of reporting currency.
• ## Package com.opengamma.strata.calc.marketdata

• ### Class com.opengamma.strata.calc.marketdata.MarketDataConfig extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### configs

com.google.common.collect.ImmutableMap<java.lang.Class<?>,​com.opengamma.strata.calc.marketdata.SingleTypeMarketDataConfig> configs
The configuration objects, keyed by their type and name.
• #### defaultConfigs

com.google.common.collect.ImmutableMap<java.lang.Class<?>,​java.lang.Object> defaultConfigs
The configuration objects where there is only one instance per type.
• ## Package com.opengamma.strata.calc.runner

• ### Class com.opengamma.strata.calc.runner.CalculationParameters extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### aliases

com.google.common.collect.ImmutableMap<java.lang.Class<? extends CalculationParameter>,​java.lang.Class<? extends CalculationParameter>> aliases
The aliases.
• #### parameters

com.google.common.collect.ImmutableMap<java.lang.Class<? extends CalculationParameter>,​CalculationParameter> parameters
The parameters, keyed by query type.
• ### Class com.opengamma.strata.calc.runner.CalculationResult extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### columnIndex

int columnIndex
The column index of the value in the results grid.
• #### result

Result<?> result
The result of the calculation.

The result may be a single value or a multi-scenario value. A multi-scenario value will implement ScenarioArray unless it has been aggregated.

If the calculation did not complete successfully, a failure result will be returned explaining the problem. Callers must check whether the result is a success or failure before examining the result value.

• #### rowIndex

int rowIndex
The row index of the value in the results grid.
• ### Class com.opengamma.strata.calc.runner.CalculationResults extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### cells

com.google.common.collect.ImmutableList<CalculationResult> cells
The calculated cells. Each entry contains a calculation result for a single cell.
• #### target

CalculationTarget target
The target of the calculation, often a trade.
• ## Package com.opengamma.strata.collect

• ### Class com.opengamma.strata.collect.TypedString extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The name.
• ### Class com.opengamma.strata.collect.UncheckedReflectiveOperationException extends java.lang.RuntimeException implements Serializable

serialVersionUID:
1L
• ## Package com.opengamma.strata.collect.array

• ### Class com.opengamma.strata.collect.array.DoubleArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### array

double[] array
The underlying array of doubles.
• ### Class com.opengamma.strata.collect.array.DoubleMatrix extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### array

double[][] array
The underlying array of doubles.
• ### Class com.opengamma.strata.collect.array.IntArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### array

int[] array
The underlying array of ints.
• ## Package com.opengamma.strata.collect.result

• ### Class com.opengamma.strata.collect.result.Failure extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### items

com.google.common.collect.ImmutableSet<FailureItem> items
The set of failure items. There will be at least one failure item.
• #### message

java.lang.String message
The error message associated with the failure.
• #### reason

FailureReason reason
The reason associated with the failure.
• ### Class com.opengamma.strata.collect.result.FailureException extends java.lang.RuntimeException implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### failure

Failure failure
The details of the failure.
• ### Class com.opengamma.strata.collect.result.FailureItem extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### attributes

com.google.common.collect.ImmutableMap<java.lang.String,​java.lang.String> attributes
The attributes associated with this failure. Attributes can contain additional information about the failure. For example, a line number in a file or the ID of a trade.
• #### causeType

java.lang.Class<? extends java.lang.Throwable> causeType
The type of the throwable that caused the failure, not present if it wasn't caused by a throwable.
• #### message

java.lang.String message
The error message associated with the failure.
• #### reason

FailureReason reason
The reason associated with the failure.
• #### stackTrace

java.lang.String stackTrace
Stack trace where the failure occurred. If the failure was caused by an Exception its stack trace is used, otherwise it's the location where the failure was created.
• ### Class com.opengamma.strata.collect.result.FailureItems extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### failures

com.google.common.collect.ImmutableList<FailureItem> failures
The failures.
• ### Class com.opengamma.strata.collect.result.Result extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### failure

Failure failure
The failure. This is only present if the result is a failure.
• #### value

T value
The value. This is only present if the result is a success.
• ### Class com.opengamma.strata.collect.result.ValueWithFailures extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### failures

com.google.common.collect.ImmutableList<FailureItem> failures
The failure items.
• #### value

T value
The success value.
• ## Package com.opengamma.strata.collect.tuple

• ### Class com.opengamma.strata.collect.tuple.DoublesPair extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### first

double first
The first element in this pair.
• #### second

double second
The second element in this pair.
• ### Class com.opengamma.strata.collect.tuple.IntDoublePair extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### first

int first
The first element in this pair.
• #### second

double second
The second element in this pair.
• ### Class com.opengamma.strata.collect.tuple.LongDoublePair extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### first

long first
The first element in this pair.
• #### second

double second
The second element in this pair.
• ### Class com.opengamma.strata.collect.tuple.ObjDoublePair extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### first

A first
The first element in this pair.
• #### second

double second
The second element in this pair.
• ### Class com.opengamma.strata.collect.tuple.ObjIntPair extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### first

A first
The first element in this pair.
• #### second

int second
The second element in this pair.
• ### Class com.opengamma.strata.collect.tuple.Pair extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### first

A first
The first element in this pair.
• #### second

B second
The second element in this pair.
• ### Class com.opengamma.strata.collect.tuple.Triple extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### first

A first
The first element in this pair.
• #### second

B second
The second element in this pair.
• #### third

C third
The third element in this pair.
• ## Package com.opengamma.strata.data

• ### Class com.opengamma.strata.data.FieldName extends TypedString<FieldName> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.data.FxMatrixId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### observableSource

ObservableSource observableSource
The source of observable market data. This is used when looking up the underlying market quotes for the rate.
• ### Class com.opengamma.strata.data.FxRateId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### observableSource

ObservableSource observableSource
The source of observable market data. This is used when looking up the underlying market quotes for the rate.
• #### pair

CurrencyPair pair
The currency pair that is required. For example, 'GBP/USD'.
• ### Class com.opengamma.strata.data.ImmutableMarketData extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### timeSeries

com.google.common.collect.ImmutableMap<ObservableId,​LocalDateDoubleTimeSeries> timeSeries
The time-series.

If a request is made for a time-series that is not in the map, an empty series will be returned.

• #### valuationDate

java.time.LocalDate valuationDate
The valuation date associated with the market data.
• #### values

com.google.common.collect.ImmutableMap<MarketDataId<?>,​java.lang.Object> values
The market data values.
• ### Class com.opengamma.strata.data.MarketDataFxRateProvider extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fxRatesSource

ObservableSource fxRatesSource
The source of market data for FX rates.
• #### marketData

MarketData marketData
The market data that provides the FX rates.
• #### triangulationCurrency

Currency triangulationCurrency
The triangulation currency to use.

If specified, this currency is used to triangulate FX rates in preference to the standard approach. This would be useful if all FX rates are supplied relative to a currency other than USD.

• ### Class com.opengamma.strata.data.MarketDataNotFoundException extends java.lang.IllegalArgumentException implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.data.ObservableSource extends TypedString<ObservableSource> implements Serializable

serialVersionUID:
1L
• ## Package com.opengamma.strata.data.scenario

• ### Class com.opengamma.strata.data.scenario.CurrencyScenarioArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amounts

CurrencyAmountArray amounts
The currency amounts, one per scenario.
• ### Class com.opengamma.strata.data.scenario.DoubleScenarioArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### values

DoubleArray values
The calculated values, one per scenario.
• ### Class com.opengamma.strata.data.scenario.FxRateScenarioArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### pair

CurrencyPair pair
The currency pair. The pair is formed of two parts, the base and the counter. In the pair 'AAA/BBB' the base is 'AAA' and the counter is 'BBB'.
• #### rates

DoubleArray rates
The rates applicable to the currency pair. One unit of the base currency is exchanged for this amount of the counter currency.
• ### Class com.opengamma.strata.data.scenario.ImmutableScenarioMarketData extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### scenarioCount

int scenarioCount
The number of scenarios.
• #### timeSeries

com.google.common.collect.ImmutableMap<ObservableId,​LocalDateDoubleTimeSeries> timeSeries
The time-series of market data values.

If a request is made for a time-series that is not in the map, an empty series will be returned.

• #### valuationDate

MarketDataBox<java.time.LocalDate> valuationDate
The valuation date associated with each scenario.
• #### values

com.google.common.collect.ImmutableMap<MarketDataId<?>,​MarketDataBox<?>> values
The individual items of market data.
• ### Class com.opengamma.strata.data.scenario.MultiCurrencyScenarioArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amounts

MultiCurrencyAmountArray amounts
The multi-currency amounts, one per scenario.

• ### Class com.opengamma.strata.loader.fpml.FpmlParseException extends java.lang.RuntimeException implements Serializable

serialVersionUID:
1L
• ## Package com.opengamma.strata.market

• ### Class com.opengamma.strata.market.FxRateShifts extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencyPair

CurrencyPair currencyPair
The currency pair for which the shifts are applied.

This also defines the direction of the FX rate to be shifted.

• #### shiftAmount

DoubleArray shiftAmount
The shifts to apply to FxRate.

Each element in the array corresponds to each scenario.

• #### shiftType

ShiftType shiftType
The type of shift applied to the FX rate.
• ### Class com.opengamma.strata.market.GenericDoubleShifts extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### shiftAmount

DoubleArray shiftAmount
The shifts to apply to a Double value.

Each element in the array corresponds to each scenario.

• #### shiftType

ShiftType shiftType
The type of shift applied to a Double value.

double spread
• ### Class com.opengamma.strata.market.ValueType extends TypedString<ValueType> implements Serializable

serialVersionUID:
1L
• ## Package com.opengamma.strata.market.amount

• ### Class com.opengamma.strata.market.amount.CashFlow extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### discountFactor

double discountFactor
The discount factor.

This is the discount factor between valuation date and the payment date. Thus present value is the forecast value multiplied by the discount factor.

• #### forecastValue

CurrencyAmount forecastValue
The forecast value of the cash flow.

The forecast value is signed. A negative value indicates a payment while a positive value indicates receipt.

• #### paymentDate

java.time.LocalDate paymentDate
The payment date.

This is the date on which the cash flow occurs.

• #### presentValue

CurrencyAmount presentValue
The present value of the cash flow.

The present value is signed. A negative value indicates a payment while a positive value indicates receipt.

• ### Class com.opengamma.strata.market.amount.CashFlows extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### cashFlows

com.google.common.collect.ImmutableList<CashFlow> cashFlows
The cash flows.

Each entry includes details of a single cash flow.

• ### Class com.opengamma.strata.market.amount.LegAmounts extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amounts

com.google.common.collect.ImmutableList<LegAmount> amounts
The leg amounts.
• ### Class com.opengamma.strata.market.amount.SwapLegAmount extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amount

CurrencyAmount amount
The amount associated with the leg. The meaning associated with this amount is implied by the context. This amount may have been currency converted.
• #### currency

Currency currency
The currency of the leg. This is not be affected by any currency conversion applied to the amount.

PayReceive payReceive
Whether the leg is pay or receive.
• #### type

SwapLegType type
The type of the leg, such as Fixed or Ibor.
• ## Package com.opengamma.strata.market.curve

• ### Class com.opengamma.strata.market.curve.AddFixedCurve extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixedCurve

Curve fixedCurve
The fixed curve. Also called base or shape curve.

Curve spreadCurve
The spread curve. Also called the variable curve.
• ### Class com.opengamma.strata.market.curve.CombinedCurve extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### baseCurve

Curve baseCurve
The base curve.

CurveMetadata metadata

Curve spreadCurve
• ### Class com.opengamma.strata.market.curve.ConstantCurve extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

CurveMetadata metadata

• #### yValue

double yValue
The single y-value.
• ### Class com.opengamma.strata.market.curve.ConstantNodalCurve extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

CurveMetadata metadata

• #### xValue

double xValue
The single x-value.
• #### yValue

double yValue
The single y-value.
• ### Class com.opengamma.strata.market.curve.CurveGroupName extends TypedString<CurveGroupName> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.market.curve.CurveId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curveGroupName

CurveGroupName curveGroupName
The curve group name.
• #### curveName

CurveName curveName
The curve name.
• #### observableSource

ObservableSource observableSource
The source of observable market data.
• ### Class com.opengamma.strata.market.curve.CurveInfoType extends TypedString<CurveInfoType<T>> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.market.curve.CurveName extends MarketDataName<Curve> implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The name.
• ### Class com.opengamma.strata.market.curve.CurveNodeDate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

java.time.LocalDate date
The fixed date to be used on the node, only used when the type is 'Fixed'.
• #### type

CurveNodeDateType type
The method by which the date of the node is calculated, defaulted to 'End'.
• ### Class com.opengamma.strata.market.curve.CurveNodeDateOrder extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### action

CurveNodeClashAction action
The action to perform if a clash occurs.
• #### minGapInDays

int minGapInDays
The minimum gap between two curve nodes, measured in calendar days. A gap of one day is the smallest allowed. A clash occurs if the period between the two nodes is less than the minimum. The gap applies to the node before this one and the node after this one.
• ### Class com.opengamma.strata.market.curve.CurveParallelShifts extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### shiftAmounts

DoubleArray shiftAmounts
The amount by which the y-values are shifted.
• #### shiftType

ShiftType shiftType
The type of shift to apply to the y-values of the curve.
• ### Class com.opengamma.strata.market.curve.CurveParameterSize extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

CurveName name
The curve name.
• #### parameterCount

int parameterCount
The number of parameters.
• ### Class com.opengamma.strata.market.curve.DefaultCurveMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curveName

CurveName curveName
The curve name.
• #### info

com.google.common.collect.ImmutableMap<CurveInfoType<?>,​java.lang.Object> info

This stores additional information for the curve.

The most common information is the day count and curve calibration Jacobian.

com.google.common.collect.ImmutableList<ParameterMetadata> parameterMetadata

If present, the parameter metadata will match the number of parameters on the curve.

• #### xValueType

ValueType xValueType
The x-value type, providing meaning to the x-values of the curve.

This type provides meaning to the x-values. For example, the x-value might represent a year fraction, as represented using ValueType.YEAR_FRACTION.

If using the builder, this defaults to ValueType.UNKNOWN.

• #### yValueType

ValueType yValueType
The y-value type, providing meaning to the y-values of the curve.

This type provides meaning to the y-values. For example, the y-value might represent a zero rate, as represented using ValueType.ZERO_RATE.

If using the builder, this defaults to ValueType.UNKNOWN.

• ### Class com.opengamma.strata.market.curve.DepositIsdaCreditCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start and end date.

The start and end date will be adjusted as defined here.

• #### dayCount

DayCount dayCount
The day count convention.

This defines the term year fraction.

• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

• #### observableId

ObservableId observableId
The identifier of the market data value that provides the rate.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the start date from the trade date.

The offset is applied to the trade date and is typically plus 2 business days.

• #### tenor

Tenor tenor
The period between the start date and the end date.
• ### Class com.opengamma.strata.market.curve.InflationNodalCurve extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

ShiftType adjustmentType
• #### seasonality

DoubleArray seasonality
Describes the monthly seasonal adjustments. The array has a dimension of 12, one element for each month. The adjustments are described as a perturbation to the existing values. No adjustment to the fixing value.
• #### underlying

NodalCurve underlying
The underlying curve, before the seasonality adjustment. This includes the fixed initial value, which is not treated as a parameter.
• ### Class com.opengamma.strata.market.curve.InterpolatedNodalCurve extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### extrapolatorLeft

CurveExtrapolator extrapolatorLeft
The extrapolator for x-values on the left, defaulted to 'Flat". This is used for x-values smaller than the smallest known x-value.
• #### extrapolatorRight

CurveExtrapolator extrapolatorRight
The extrapolator for x-values on the right, defaulted to 'Flat". This is used for x-values larger than the largest known x-value.
• #### interpolator

CurveInterpolator interpolator
The interpolator. This is used for x-values between the smallest and largest known x-value.

CurveMetadata metadata

The metadata includes an optional list of parameter metadata. If present, the size of the parameter metadata list will match the number of parameters of this curve.

• #### xValues

DoubleArray xValues
The array of x-values, one for each point.

This array will contains at least two elements and be of the same length as y-values.

• #### yValues

DoubleArray yValues
The array of y-values, one for each point.

This array will contains at least two elements and be of the same length as x-values.

• ### Class com.opengamma.strata.market.curve.InterpolatedNodalCurveDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count, optional.

If the x-value of the curve represents time as a year fraction, the day count can be specified to define how the year fraction is calculated.

• #### extrapolatorLeft

CurveExtrapolator extrapolatorLeft
The extrapolator used to find points to the left of the leftmost point on the curve.
• #### extrapolatorRight

CurveExtrapolator extrapolatorRight
The extrapolator used to find points to the right of the rightmost point on the curve.
• #### interpolator

CurveInterpolator interpolator
The interpolator used to find points on the curve.
• #### name

CurveName name
The curve name.
• #### nodes

com.google.common.collect.ImmutableList<CurveNode> nodes
The nodes in the curve.

The nodes are used to find the par rates and calibrate the curve. There must be at least two nodes in the curve.

• #### xValueType

ValueType xValueType
The x-value type, providing meaning to the x-values of the curve.

This type provides meaning to the x-values. For example, the x-value might represent a year fraction, as represented using ValueType.YEAR_FRACTION.

If using the builder, this defaults to ValueType.UNKNOWN.

• #### yValueType

ValueType yValueType
The y-value type, providing meaning to the y-values of the curve.

This type provides meaning to the y-values. For example, the y-value might represent a zero rate, as represented using ValueType.ZERO_RATE.

If using the builder, this defaults to ValueType.UNKNOWN.

• ### Class com.opengamma.strata.market.curve.IsdaCreditCurveDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### computeJacobian

boolean computeJacobian
The flag indicating if the Jacobian matrices should be computed and stored in metadata or not.
• #### currency

Currency currency
The curve currency.

The resultant curve will be used for discounting based on this currency. This is typically the same as the currency of the curve node instruments in curveNodes.

• #### curveNodes

com.google.common.collect.ImmutableList<IsdaCreditCurveNode> curveNodes
The curve nodes.

The nodes are used to find the par rates and calibrate the curve.

• #### curveValuationDate

java.time.LocalDate curveValuationDate
The curve valuation date.

The date on which the resultant curve is used for pricing. This date is not necessarily the same as the valuationDate of MarketData on which the market data was snapped.

• #### dayCount

DayCount dayCount
The day count.

If the x-value of the curve represents time as a year fraction, the day count can be specified to define how the year fraction is calculated.

• #### name

CurveName name
The curve name.

boolean storeNodeTrade
The flag indicating if the node trade should be stored or not.

This property is used only for credit curve calibration.

• ### Class com.opengamma.strata.market.curve.IssuerCurveInputsId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curveGroupName

CurveGroupName curveGroupName
The curve group name.
• #### curveName

CurveName curveName
The curve name.
• #### observableSource

ObservableSource observableSource
The source of observable market data.
• ### Class com.opengamma.strata.market.curve.JacobianCalibrationMatrix extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### jacobianMatrix

DoubleMatrix jacobianMatrix
The inverse Jacobian matrix produced during curve calibration. This is the derivative of the curve parameters with respect to the market quotes.
• #### order

com.google.common.collect.ImmutableList<CurveParameterSize> order
The curve order. This defines the order of the curves during calibration, which can be used as a key to interpret the Jacobian matrix.
• ### Class com.opengamma.strata.market.curve.LegalEntityCurveGroup extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### issuerCurves

com.google.common.collect.ImmutableMap<Pair<LegalEntityGroup,​Currency>,​Curve> issuerCurves
The issuer curves in the curve group, keyed by legal entity group and currency.
• #### name

CurveGroupName name
The name of the curve group.
• #### repoCurves

com.google.common.collect.ImmutableMap<Pair<RepoGroup,​Currency>,​Curve> repoCurves
The repo curves in the curve group, keyed by repo group and currency.
• ### Class com.opengamma.strata.market.curve.LegalEntityCurveGroupId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curveGroupName

CurveGroupName curveGroupName
The curve group name.
• #### observableSource

ObservableSource observableSource
The source of observable market data.
• ### Class com.opengamma.strata.market.curve.LegalEntityGroup extends TypedString<LegalEntityGroup> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.market.curve.ParallelShiftedCurve extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### shiftAmount

double shiftAmount
The amount by which y-values are shifted. The meaning of this amount is determined by #getShiftType().
• #### shiftType

ShiftType shiftType
The type of shift to apply to the y-values of the curve. The amount of the shift is determined by #getShiftAmount().
• #### underlyingCurve

Curve underlyingCurve
The underlying curve.
• ### Class com.opengamma.strata.market.curve.RatesCurveGroup extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### discountCurves

com.google.common.collect.ImmutableMap<Currency,​Curve> discountCurves
The discount curves in the group, keyed by currency.
• #### forwardCurves

com.google.common.collect.ImmutableMap<Index,​Curve> forwardCurves
The forward curves in the group, keyed by index.
• #### name

CurveGroupName name
The name of the curve group.
• ### Class com.opengamma.strata.market.curve.RatesCurveGroupDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### computeJacobian

boolean computeJacobian
The flag indicating if the Jacobian matrices should be computed and stored in metadata or not.
• #### computePvSensitivityToMarketQuote

boolean computePvSensitivityToMarketQuote
The flag indicating if present value sensitivity to market quotes should be computed and stored in metadata or not.
• #### curveDefinitions

com.google.common.collect.ImmutableList<CurveDefinition> curveDefinitions
Definitions which specify how the curves are calibrated.

Curve definitions are required for curves that need to be calibrated. A definition is not necessary if the curve is not built by the Strata curve calibrator.

• #### entries

com.google.common.collect.ImmutableList<RatesCurveGroupEntry> entries
The configuration for building the curves in the group.
• #### name

CurveGroupName name
The name of the curve group.
• #### seasonalityDefinitions

com.google.common.collect.ImmutableMap<CurveName,​SeasonalityDefinition> seasonalityDefinitions
Definitions which specify which seasonality should be used for some price index curves.

If a curve linked to a price index does not have an entry in the map, no seasonality is used for that curve.

• ### Class com.opengamma.strata.market.curve.RatesCurveGroupEntry extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curveName

CurveName curveName
The curve name.
• #### discountCurrencies

com.google.common.collect.ImmutableSet<Currency> discountCurrencies
The currencies for which the curve provides discount rates. This is empty if the curve is not used for Ibor rates.
• #### indices

com.google.common.collect.ImmutableSet<Index> indices
The indices for which the curve provides forward rates. This is empty if the curve is not used for forward rates.
• ### Class com.opengamma.strata.market.curve.RatesCurveGroupId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curveGroupName

CurveGroupName curveGroupName
The curve group name.
• #### observableSource

ObservableSource observableSource
The source of observable market data.
• ### Class com.opengamma.strata.market.curve.RatesCurveInputs extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

CurveMetadata curveMetadata

This is used to identify the curve and the necessary pieces of market data.

• #### marketData

com.google.common.collect.ImmutableMap<? extends MarketDataId<?>,​?> marketData
The market data.

There will typically be at least one entry for each node on the curve.

• ### Class com.opengamma.strata.market.curve.RatesCurveInputsId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curveGroupName

CurveGroupName curveGroupName
The curve group name.
• #### curveName

CurveName curveName
The curve name.
• #### observableSource

ObservableSource observableSource
The source of observable market data.
• ### Class com.opengamma.strata.market.curve.RepoCurveInputsId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curveGroupName

CurveGroupName curveGroupName
The curve group name.
• #### curveName

CurveName curveName
The curve name.
• #### observableSource

ObservableSource observableSource
The source of observable market data.
• ### Class com.opengamma.strata.market.curve.RepoGroup extends TypedString<RepoGroup> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.market.curve.SeasonalityDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

ShiftType adjustmentType
• #### seasonalityMonthOnMonth

DoubleArray seasonalityMonthOnMonth

This is an array of length 12, with the first element being the adjustment from January to February, the second element being the adjustment from February to March, and so on to the 12th element being the adjustment from December to January.

• ### Class com.opengamma.strata.market.curve.SimpleCurveParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### xValue

double xValue
The x-value.
• #### xValueType

ValueType xValueType
The type of the x-value.
• ### Class com.opengamma.strata.market.curve.SwapIsdaCreditCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start date, end date and accrual schedule.

The date property is an unadjusted date and as such might be a weekend or holiday. The adjustment specified here is used to convert a relevant date to a valid business day.

• #### dayCount

DayCount dayCount
The day count convention applicable.

This is used to convert schedule period dates to a numerical value.

• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

• #### observableId

ObservableId observableId
The identifier of the market data value that provides the rate.
• #### paymentFrequency

Frequency paymentFrequency
The periodic frequency of payments, optional with defaulting getter.

Regular payments will be made at the specified periodic frequency. The compounding is not allowed in this node. Thus the frequency is the same as the accrual periodic frequency.

• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the start date from the trade date.

The offset is applied to the trade date and is typically plus 2 business days.

• #### tenor

Tenor tenor
The tenor of the swap.

This is the period from the first accrual date to the last accrual date.

• ## Package com.opengamma.strata.market.curve.node

• ### Class com.opengamma.strata.market.curve.node.CdsIndexIsdaCreditCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### cdsIndexId

StandardId cdsIndexId
The CDS index identifier.

This identifier is used to refer this CDS index product.

• #### fixedRate

java.lang.Double fixedRate
The fixed coupon rate.

This must be represented in decimal form.

• #### label

java.lang.String label
The label to use for the node.

When building, this will default based on template if not specified.

• #### legalEntityIds

com.google.common.collect.ImmutableList<StandardId> legalEntityIds
The legal entity identifiers.

These identifiers refer to the reference legal entities of the CDS index.

• #### observableId

ObservableId observableId
The identifier of the market data value that provides the quoted value.
• #### quoteConvention

CdsQuoteConvention quoteConvention
The market quote convention.

The CDS index is quoted in par spread, points upfront or quoted spread. See CdsQuoteConvention for detail.

• #### template

CdsTemplate template
The template for the single names associated with this node.
• ### Class com.opengamma.strata.market.curve.node.CdsIsdaCreditCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixedRate

java.lang.Double fixedRate
The fixed coupon rate.

This must be represented in decimal form.

• #### label

java.lang.String label
The label to use for the node.

When building, this will default based on template if not specified.

• #### legalEntityId

StandardId legalEntityId
The legal entity identifier.

This identifier is used for the reference legal entity of the CDS.

• #### observableId

ObservableId observableId
The identifier of the market data value that provides the quoted value.
• #### quoteConvention

CdsQuoteConvention quoteConvention
The market quote convention.

The CDS is quoted in par spread, points upfront or quoted spread. See CdsQuoteConvention for detail.

• #### template

CdsTemplate template
The template for the CDS associated with this node.
• ### Class com.opengamma.strata.market.curve.node.FixedIborSwapCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

FixedIborSwapTemplate template
The template for the swap associated with this node.
• ### Class com.opengamma.strata.market.curve.node.FixedInflationSwapCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

FixedInflationSwapTemplate template
The template for the swap associated with this node.
• ### Class com.opengamma.strata.market.curve.node.FixedOvernightSwapCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

FixedOvernightSwapTemplate template
The template for the swap associated with this node.
• ### Class com.opengamma.strata.market.curve.node.FraCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the period to end if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

FraTemplate template
The template for the FRA associated with this node.
• ### Class com.opengamma.strata.market.curve.node.FxSwapCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### farForwardPointsId

ObservableId farForwardPointsId
The identifier of the market data value which provides the FX forward points.
• #### fxRateId

FxRateId fxRateId
The identifier used to obtain the FX rate market value, defaulted from the template. This only needs to be specified if using multiple market data sources.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the far period if not specified.

• #### template

FxSwapTemplate template
The template for the FX Swap associated with this node.
• ### Class com.opengamma.strata.market.curve.node.IborFixingDepositCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the deposit period if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

IborFixingDepositTemplate template
The template for the Ibor fixing deposit associated with this node.
• ### Class com.opengamma.strata.market.curve.node.IborFutureCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, may be empty.

If empty, a default label will be created when the metadata is built. The default label depends on the valuation date, so cannot be created in the node.

• #### rateId

QuoteId rateId
The identifier of the market data value which provides the price.
• #### template

IborFutureTemplate template
The template for the Ibor Futures associated with this node.
• ### Class com.opengamma.strata.market.curve.node.IborIborSwapCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

IborIborSwapTemplate template
The template for the swap associated with this node.
• ### Class com.opengamma.strata.market.curve.node.OvernightIborSwapCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

OvernightIborSwapTemplate template
The template for the swap associated with this node.
• ### Class com.opengamma.strata.market.curve.node.TermDepositCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the deposit period if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

TermDepositTemplate template
The template for the term deposit associated with this node.
• ### Class com.opengamma.strata.market.curve.node.ThreeLegBasisSwapCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

• #### rateId

ObservableId rateId
The identifier of the market data value that provides the rate.
• #### template

ThreeLegBasisSwapTemplate template
The template for the swap associated with this node.
• ### Class com.opengamma.strata.market.curve.node.XCcyIborIborSwapCurveNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

double additionalSpread
• #### date

CurveNodeDate date
The method by which the date of the node is calculated, defaulted to 'End'.
• #### dateOrder

CurveNodeDateOrder dateOrder
The date order rules, used to ensure that the dates in the curve are in order. If not specified, this will default to CurveNodeDateOrder.DEFAULT.
• #### fxRateId

FxRateId fxRateId
The identifier used to obtain the FX rate market value, defaulted from the template. This only needs to be specified if using multiple market data sources.
• #### label

java.lang.String label
The label to use for the node, defaulted.

When building, this will default based on the tenor if not specified.

ObservableId spreadId
The identifier of the market data value which provides the spread.
• #### template

XCcyIborIborSwapTemplate template
The template for the swap associated with this node.
• ## Package com.opengamma.strata.market.explain

• ### Class com.opengamma.strata.market.explain.ExplainKey extends TypedString<ExplainKey<T>> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.market.explain.ExplainMap extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### map

com.google.common.collect.ImmutableMap<ExplainKey<?>,​java.lang.Object> map
The map of explanatory values.
• ## Package com.opengamma.strata.market.observable

• ### Class com.opengamma.strata.market.observable.IndexQuoteId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fieldName

FieldName fieldName
The field name in the market data record that contains the market data item. The most common field name is market value.
• #### index

Index index
The index.
• #### observableSource

ObservableSource observableSource
The source of observable market data.
• ### Class com.opengamma.strata.market.observable.LegalEntityInformation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### defaulted

boolean defaulted
Whether the legal entity has defaulted or not.

True if defaulted, false otherwise.

• #### legalEntityId

StandardId legalEntityId
The legal entity identifier.
• ### Class com.opengamma.strata.market.observable.LegalEntityInformationId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### legalEntityId

StandardId legalEntityId
The legal entity identifier.
• ### Class com.opengamma.strata.market.observable.QuoteId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fieldName

FieldName fieldName
The field name in the market data record that contains the market data item. The most common field name is market value.
• #### observableSource

ObservableSource observableSource
The source of observable market data.
• #### standardId

StandardId standardId
The identifier of the data. This is typically an identifier from an external data provider.
• ### Class com.opengamma.strata.market.observable.QuoteScenarioArray extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### quotes

DoubleArray quotes
The values of the quotes.
• ### Class com.opengamma.strata.market.observable.QuoteScenarioArrayId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### id

QuoteId id
The market data key identifying the quote.
• ## Package com.opengamma.strata.market.option

• ### Class com.opengamma.strata.market.option.DeltaStrike extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### value

double value
The value of absolute delta.
• ### Class com.opengamma.strata.market.option.LogMoneynessStrike extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### value

double value
The value of log-moneyness.
• ### Class com.opengamma.strata.market.option.MoneynessStrike extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### value

double value
The value of moneyness.
• ### Class com.opengamma.strata.market.option.SimpleStrike extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### value

double value
The value of strike.
• ### Class com.opengamma.strata.market.option.StrikeType extends TypedString<StrikeType> implements Serializable

serialVersionUID:
1L
• ## Package com.opengamma.strata.market.param

• ### Class com.opengamma.strata.market.param.CrossGammaParameterSensitivities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### sensitivities

com.google.common.collect.ImmutableList<CrossGammaParameterSensitivity> sensitivities
The parameter sensitivities.

Each entry includes details of the ParameterizedData it relates to.

• ### Class com.opengamma.strata.market.param.CrossGammaParameterSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### marketDataName

MarketDataName<?> marketDataName
The market data name.

This name is used in the market data system to identify the data that the sensitivities refer to.

• #### order

com.google.common.collect.ImmutableList<Pair<MarketDataName<?>,​java.util.List<? extends ParameterMetadata>>> order
The sensitivity order.

This defines the order of sensitivity values, which can be used as a key to interpret sensitivity.

com.google.common.collect.ImmutableList<ParameterMetadata> parameterMetadata

There is one entry for each parameter.

• #### sensitivity

DoubleMatrix sensitivity
The parameter sensitivity values.

The curve delta sensitivities to parameterized market data. This is a n x m matrix, where n must agree with the size of parameterMetadata and m must be the sum of parameter count in order.

• ### Class com.opengamma.strata.market.param.CurrencyParameterSensitivities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### sensitivities

com.google.common.collect.ImmutableList<CurrencyParameterSensitivity> sensitivities
The parameter sensitivities.

Each entry includes details of the ParameterizedData it relates to.

• ### Class com.opengamma.strata.market.param.CurrencyParameterSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### marketDataName

MarketDataName<?> marketDataName
The market data name.

This name is used in the market data system to identify the data that the sensitivities refer to.

com.google.common.collect.ImmutableList<ParameterMetadata> parameterMetadata

There is one entry for each parameter.

• #### parameterSplit

com.google.common.collect.ImmutableList<ParameterSize> parameterSplit
The split of parameters between the underlying parameterized data.

A single CurrencyParameterSensitivity represents the sensitivity to a single ParameterizedData instance. However, a ParameterizedData instance can itself be backed by more than one underlying instance. For example, a curve formed from two underlying curves. If this list is present, it represents how to split this sensitivity between the underlying instances.

• #### sensitivity

DoubleArray sensitivity
The parameter sensitivity values.

There is one sensitivity value for each parameter.

• ### Class com.opengamma.strata.market.param.LabelDateParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

java.time.LocalDate date
The date associated with the parameter.

This is the date that is most closely associated with the parameter. The actual parameter is typically a year fraction based on a day count.

• #### label

java.lang.String label
The label that describes the parameter.
• ### Class com.opengamma.strata.market.param.LabelParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### label

java.lang.String label
The label that describes the parameter.
• ### Class com.opengamma.strata.market.param.ParameterSize extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

MarketDataName<?> name
The name of the market data.
• #### parameterCount

int parameterCount
The number of parameters.
• ### Class com.opengamma.strata.market.param.PointShifts extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### nodeIndices

com.google.common.collect.ImmutableMap<java.lang.Object,​java.lang.Integer> nodeIndices
Indices of each parameter, keyed by an object identifying the node.

The key is typically the node identifier. The key may also be the node label.

• #### shifts

DoubleMatrix shifts
The shift to apply to the rates.

There is one row in the matrix for each scenario and one column for each parameter in the data. Node indices are found using nodeIndices.

• #### shiftType

ShiftType shiftType
The type of shift applied to the parameters.

serialVersionUID:
1L
• ### Serialized Fields

• #### label

java.lang.String label
The label that describes the parameter.

ResolvedTrade trade
The trade that describes the parameter.
• ### Class com.opengamma.strata.market.param.TenorDateParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

java.time.LocalDate date
The date associated with the parameter.

This is the date that is most closely associated with the parameter. The actual parameter is typically a year fraction based on a day count.

• #### label

java.lang.String label
The label that describes the parameter, defaulted to the tenor.
• #### tenor

Tenor tenor
The tenor associated with the parameter.
• ### Class com.opengamma.strata.market.param.TenorParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### label

java.lang.String label
The label that describes the parameter, defaulted to the tenor.
• #### tenor

Tenor tenor
The tenor associated with the parameter.
• ### Class com.opengamma.strata.market.param.UnitParameterSensitivities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### sensitivities

com.google.common.collect.ImmutableList<UnitParameterSensitivity> sensitivities
The parameter sensitivities.

Each entry includes details of the ParameterizedData it relates to.

• ### Class com.opengamma.strata.market.param.UnitParameterSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### marketDataName

MarketDataName<?> marketDataName
The market data name.

This name is used in the market data system to identify the data that the sensitivities refer to.

com.google.common.collect.ImmutableList<ParameterMetadata> parameterMetadata

There is one entry for each parameter.

• #### parameterSplit

com.google.common.collect.ImmutableList<ParameterSize> parameterSplit
The split of parameters between the underlying parameterized data.

A single UnitParameterSensitivity represents the sensitivity to a single ParameterizedData instance. However, a ParameterizedData instance can itself be backed by more than one underlying instance. For example, a curve formed from two underlying curves. This list is present, it represents how to split this sensitivity between the underlying instances.

• #### sensitivity

DoubleArray sensitivity
The parameter sensitivity values.

There is one sensitivity value for each parameter.

• ### Class com.opengamma.strata.market.param.YearMonthDateParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

java.time.LocalDate date
The date associated with the parameter.

This is the date that is most closely associated with the parameter. The actual parameter is typically a year fraction based on a day count.

• #### label

java.lang.String label
The label that describes the parameter, defaulted to the year-month.
• #### yearMonth

java.time.YearMonth yearMonth
The year-month associated with the parameter.
• ## Package com.opengamma.strata.market.sensitivity

• ### Class com.opengamma.strata.market.sensitivity.CurveSensitivities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info

This allows additional information to be attached to the sensitivities.

• #### typedSensitivities

com.google.common.collect.ImmutableMap<CurveSensitivitiesType,​CurrencyParameterSensitivities> typedSensitivities
The sensitivities, keyed by type.

The map allows sensitivity to different types to be expressed. For example, there might be both delta and gamma sensitivity.

• ### Class com.opengamma.strata.market.sensitivity.CurveSensitivitiesType extends TypedString<CurveSensitivitiesType> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.market.sensitivity.PointSensitivities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### sensitivities

com.google.common.collect.ImmutableList<PointSensitivity> sensitivities
The point sensitivities.

Each entry includes details of the market data query it relates to.

• ## Package com.opengamma.strata.market.surface

• ### Class com.opengamma.strata.market.surface.ConstantSurface extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

SurfaceMetadata metadata

• #### zValue

double zValue
The single z-value.
• ### Class com.opengamma.strata.market.surface.DefaultSurfaceMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

com.google.common.collect.ImmutableMap<SurfaceInfoType<?>,​java.lang.Object> info

This stores additional information for the surface.

com.google.common.collect.ImmutableList<ParameterMetadata> parameterMetadata

If present, the parameter metadata should match the number of parameters on the surface.

• #### surfaceName

SurfaceName surfaceName
The surface name.
• #### xValueType

ValueType xValueType
The x-value type, providing meaning to the x-values of the curve.

This type provides meaning to the x-values. For example, the x-value might represent a year fraction, as represented using ValueType.YEAR_FRACTION.

If using the builder, this defaults to ValueType.UNKNOWN.

• #### yValueType

ValueType yValueType
The y-value type, providing meaning to the y-values of the curve.

This type provides meaning to the y-values.

If using the builder, this defaults to ValueType.UNKNOWN.

• #### zValueType

ValueType zValueType
The x-value type, providing meaning to the z-values of the curve.

This type provides meaning to the z-values.

If using the builder, this defaults to ValueType.UNKNOWN.

• ### Class com.opengamma.strata.market.surface.DeformedSurface extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### deformationFunction

java.util.function.Function<DoublesPair,​ValueDerivatives> deformationFunction
The deformation function.

The deformation to the original surface is define by this function. The function takes DoublesPair of x-value and y-value, then returns ValueDerivatives which contains z-value for the specified x,y values, and node sensitivities to the original surface.

SurfaceMetadata metadata

• #### originalSurface

Surface originalSurface
The original surface.

The underlying surface which receives the deformation defined by deformationFunction.

• ### Class com.opengamma.strata.market.surface.InterpolatedNodalSurface extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### interpolator

SurfaceInterpolator interpolator
The underlying interpolator.

SurfaceMetadata metadata

The metadata includes an optional list of parameter metadata. If present, the size of the parameter metadata list will match the number of parameters of this surface.

• #### xValues

DoubleArray xValues
The array of x-values, one for each point.

This array will contains at least two elements.

• #### yValues

DoubleArray yValues
The array of y-values, one for each point.

This array will contains at least two elements and be of the same length as x-values.

• #### zValues

DoubleArray zValues
The array of z-values, one for each point.

This array will contains at least two elements and be of the same length as x-values.

• ### Class com.opengamma.strata.market.surface.SimpleSurfaceParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### xValue

double xValue
The x-value.
• #### xValueType

ValueType xValueType
The type of the x-value.
• #### yValue

double yValue
The y-value.
• #### yValueType

ValueType yValueType
The type of the y-value.
• ### Class com.opengamma.strata.market.surface.SurfaceInfoType extends TypedString<SurfaceInfoType<T>> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.market.surface.SurfaceName extends MarketDataName<Surface> implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The name.
• ## Package com.opengamma.strata.market.surface.interpolator

• ### Class com.opengamma.strata.market.surface.interpolator.GridSurfaceInterpolator extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### xExtrapolatorLeft

CurveExtrapolator xExtrapolatorLeft
The x-value left extrapolator.
• #### xExtrapolatorRight

CurveExtrapolator xExtrapolatorRight
The x-value right extrapolator.
• #### xInterpolator

CurveInterpolator xInterpolator
The x-value interpolator.
• #### yExtrapolatorLeft

CurveExtrapolator yExtrapolatorLeft
The y-value left extrapolator.
• #### yExtrapolatorRight

CurveExtrapolator yExtrapolatorRight
The y-value right extrapolator.
• #### yInterpolator

CurveInterpolator yInterpolator
The y-value interpolator.
• ## Package com.opengamma.strata.math

• ### Class com.opengamma.strata.math.MathException extends java.lang.RuntimeException implements Serializable

serialVersionUID:
1L
• ## Package com.opengamma.strata.measure

• ### Class com.opengamma.strata.measure.ValuationZoneTimeDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### defaultLocalTime

java.time.LocalTime defaultLocalTime
The default local time.

The default local time will be used if the input date is not scenario value or if the scenario size of the input date exceeds the size of localTimes.

• #### localTimes

com.google.common.collect.ImmutableList<java.time.LocalTime> localTimes
The local time.

The local time in zoneId. The size is not necessarily the same as the scenario size. defaultLocalTime will be used if extra LocalTime is required.

• #### zoneId

java.time.ZoneId zoneId
The zone ID.
• ## Package com.opengamma.strata.measure.calc

• ### Class com.opengamma.strata.measure.calc.TargetTypeCalculationParameter extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### defaultParameter

CalculationParameter defaultParameter
The default underlying parameter.
• #### parameters

com.google.common.collect.ImmutableMap<java.lang.Class<?>,​CalculationParameter> parameters
The underlying parameters, keyed by target type.
• #### queryType

java.lang.Class<? extends CalculationParameter> queryType
The parameter query type.
• ### Class com.opengamma.strata.measure.calc.TradeCounterpartyCalculationParameter extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### defaultParameter

CalculationParameter defaultParameter
The default underlying parameter.
• #### parameters

com.google.common.collect.ImmutableMap<StandardId,​CalculationParameter> parameters
The underlying parameters, keyed by counterparty ID.
• #### queryType

java.lang.Class<? extends CalculationParameter> queryType
The parameter query type.
• ## Package com.opengamma.strata.measure.cms

• ### Class com.opengamma.strata.measure.cms.CmsSabrExtrapolationParams extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### cutOffStrike

double cutOffStrike
The cut-off strike.

The smile is extrapolated above that level.

• #### mu

double mu
The tail thickness parameter.

This must be greater than 0 in order to ensure that the call price converges to 0 for infinite strike.

• ## Package com.opengamma.strata.measure.curve

• ### Class com.opengamma.strata.measure.curve.RootFinderConfig extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### absoluteTolerance

double absoluteTolerance
The absolute tolerance for the root finder.
• #### maximumSteps

int maximumSteps
The maximum number of steps for the root finder.
• #### relativeTolerance

double relativeTolerance
The relative tolerance for the root finder.
• ## Package com.opengamma.strata.measure.fxopt

• ### Class com.opengamma.strata.measure.fxopt.BlackFxOptionInterpolatedNodalSurfaceVolatilitiesSpecification extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencyPair

CurrencyPair currencyPair
• #### dayCount

DayCount dayCount
• #### name

FxOptionVolatilitiesName name
• #### nodes

com.google.common.collect.ImmutableList<FxOptionVolatilitiesNode> nodes
• #### strikeExtrapolatorLeft

CurveExtrapolator strikeExtrapolatorLeft
The left extrapolator used in the strike dimension.
• #### strikeExtrapolatorRight

CurveExtrapolator strikeExtrapolatorRight
The right extrapolator used in the strike dimension.
• #### strikeInterpolator

CurveInterpolator strikeInterpolator
The interpolator used in the strike dimension.
• #### timeExtrapolatorLeft

CurveExtrapolator timeExtrapolatorLeft
The left extrapolator used in the time dimension.
• #### timeExtrapolatorRight

CurveExtrapolator timeExtrapolatorRight
The right extrapolator used in the time dimension.
• #### timeInterpolator

CurveInterpolator timeInterpolator
The interpolator used in the time dimension.
• ### Class com.opengamma.strata.measure.fxopt.BlackFxOptionSmileVolatilitiesSpecification extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencyPair

CurrencyPair currencyPair
The currency pair that the volatilities are for.
• #### dayCount

DayCount dayCount
The day count convention used for the expiry.
• #### name

FxOptionVolatilitiesName name
The name of the volatilities.
• #### nodes

com.google.common.collect.ImmutableList<FxOptionVolatilitiesNode> nodes
The nodes in the FX option volatilities.

The nodes are used to find the quotes and build the volatilities.

• #### strikeExtrapolatorLeft

CurveExtrapolator strikeExtrapolatorLeft
The left extrapolator used in the strike dimension.
• #### strikeExtrapolatorRight

CurveExtrapolator strikeExtrapolatorRight
The right extrapolator used in the strike dimension.
• #### strikeInterpolator

CurveInterpolator strikeInterpolator
The interpolator used in the strike dimension.
• #### timeExtrapolatorLeft

CurveExtrapolator timeExtrapolatorLeft
The left extrapolator used in the time dimension.
• #### timeExtrapolatorRight

CurveExtrapolator timeExtrapolatorRight
The right extrapolator used in the time dimension.
• #### timeInterpolator

CurveInterpolator timeInterpolator
The interpolator used in the time dimension.
• ### Class com.opengamma.strata.measure.fxopt.FxOptionVolatilitiesDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### specification

FxOptionVolatilitiesSpecification specification
The FX option volatility specification.
• ### Class com.opengamma.strata.measure.fxopt.FxOptionVolatilitiesNode extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment

Typically this is the same as the standard convention of the business day adjustment applied to the delivery date of the underlying FX forward.

• #### currencyPair

CurrencyPair currencyPair
The currency pair.

The quote must be based on this currency pair and direction.

• #### expiryDateOffset

DaysAdjustment expiryDateOffset
The offset of the expiry date from the delivery date.

By default the expiry date offset is the inverse of spotDateOffset. In this case BusinessDayAdjustment in spotDateOffset must be NONE.

• #### label

java.lang.String label
The label to use for the node.
• #### quoteId

QuoteId quoteId
The quote ID.
• #### quoteValueType

ValueType quoteValueType
The value type of the quote.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the valuation date.

Typically this is the same as the standard convention of the spot date offset of the underlying FX forward.

• #### strike

Strike strike
The strike.
• #### tenor

Tenor tenor
The tenor.

Typically the tenor is coherent to that of the underlying FX forward. Thus it spans the period between spot date to delivery date.

• ## Package com.opengamma.strata.pricer

• ### Class com.opengamma.strata.pricer.PricingException extends java.lang.RuntimeException implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.pricer.SimpleDiscountFactors extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### currency

Currency currency
The currency that the discount factors are for.
• #### curve

Curve curve
The underlying curve. The metadata of the curve must define a day count.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.ZeroRateDiscountFactors extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### currency

Currency currency
The currency that the discount factors are for.
• #### curve

Curve curve
The underlying curve. The metadata of the curve must define a day count.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.ZeroRatePeriodicDiscountFactors extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### currency

Currency currency
The currency that the discount factors are for.
• #### curve

Curve curve
The underlying curve. The metadata of the curve must define a day count.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.ZeroRateSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### curveCurrency

Currency curveCurrency
The currency of the curve for which the sensitivity is computed.
• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### yearFraction

double yearFraction
The time that was queried, expressed as a year fraction.
• ## Package com.opengamma.strata.pricer.bond

• ### Class com.opengamma.strata.pricer.bond.BlackBondFutureExpiryLogMoneynessVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### surface

Surface surface
The Black volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the log-moneyness.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.bond.BondFutureOptionSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### expiry

double expiry
The expiry date-time of the option.
• #### futureExpiryDate

java.time.LocalDate futureExpiryDate
The expiry date of the underlying future.
• #### futurePrice

double futurePrice
The underlying future price.
• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### strikePrice

double strikePrice
The option strike price.
• #### volatilitiesName

BondFutureVolatilitiesName volatilitiesName
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.bond.BondFutureVolatilitiesId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

BondFutureVolatilitiesName name
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.bond.BondFutureVolatilitiesName extends MarketDataName<BondFutureVolatilities> implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The name.
• ### Class com.opengamma.strata.pricer.bond.ImmutableLegalEntityDiscountingProvider extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### issuerCurveGroups

com.google.common.collect.ImmutableMap<LegalEntityId,​LegalEntityGroup> issuerCurveGroups
The groups used to find an issuer curve by legal entity.

This maps the legal entity ID to a group. The group is used to find the curve in issuerCurves.

This property was renamed in version 1.1 of Strata from legalEntityMap.

• #### issuerCurves

com.google.common.collect.ImmutableMap<Pair<LegalEntityGroup,​Currency>,​DiscountFactors> issuerCurves
The issuer curves, keyed by group and currency. The curve data, predicting the future, associated with each legal entity group and currency.
• #### repoCurveGroups

com.google.common.collect.ImmutableMap<LegalEntityId,​RepoGroup> repoCurveGroups
The groups used to find a repo curve by legal entity.

This maps the legal entity ID to a group. The group is used to find the curve in repoCurves.

• #### repoCurves

com.google.common.collect.ImmutableMap<Pair<RepoGroup,​Currency>,​DiscountFactors> repoCurves
The repo curves, keyed by group and currency. The curve data, predicting the future, associated with each repo group and currency.
• #### repoCurveSecurityGroups

com.google.common.collect.ImmutableMap<SecurityId,​RepoGroup> repoCurveSecurityGroups
The groups used to find a repo curve by security.

This maps the security ID to a group. The group is used to find the curve in repoCurves.

• #### valuationDate

java.time.LocalDate valuationDate
The valuation date. All curves and other data items in this provider are calibrated for this date.
• ### Class com.opengamma.strata.pricer.bond.IssuerCurveDiscountFactors extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### discountFactors

DiscountFactors discountFactors
The underlying discount factors for a single currency.

This contains curve, curve currency, valuation date and day count convention. The discount factor, its point sensitivity and curve sensitivity are computed by this DiscountFactors.

• #### legalEntityGroup

LegalEntityGroup legalEntityGroup
The legal entity group.

The group defines the legal entity that the discount factors are for.

• ### Class com.opengamma.strata.pricer.bond.IssuerCurveZeroRateSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### curveCurrency

Currency curveCurrency
The currency of the curve for which the sensitivity is computed.
• #### legalEntityGroup

LegalEntityGroup legalEntityGroup
The legal entity group.

The group defines the legal entity that the discount factors are for.

• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### yearFraction

double yearFraction
The time that was queried, expressed as a year fraction.
• ### Class com.opengamma.strata.pricer.bond.RepoCurveDiscountFactors extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### discountFactors

DiscountFactors discountFactors
The underlying discount factors for a single currency.

This contains curve, curve currency, valuation date and day count convention. The discount factor, its point sensitivity and curve sensitivity are computed by this DiscountFactors.

• #### repoGroup

RepoGroup repoGroup
The repo group.

This defines the group that the discount factors are for.

• ### Class com.opengamma.strata.pricer.bond.RepoCurveZeroRateSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### curveCurrency

Currency curveCurrency
The currency of the curve for which the sensitivity is computed.
• #### repoGroup

RepoGroup repoGroup
The repo group.

This defines the group that the discount factors are for.

• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### yearFraction

double yearFraction
The time that was queried, expressed as a year fraction.
• ## Package com.opengamma.strata.pricer.capfloor

• ### Class com.opengamma.strata.pricer.capfloor.BlackIborCapletFloorletExpiryStrikeVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### index

IborIndex index
The Ibor index.

The data must valid in terms of this Ibor index.

• #### surface

Surface surface
The Black volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the strike.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.capfloor.DirectIborCapletFloorletVolatilityDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count to measure the time in the expiry dimension.
• #### index

IborIndex index
The Ibor index for which the data is valid.
• #### interpolator

GridSurfaceInterpolator interpolator
The interpolator for the caplet volatilities.
• #### lambdaExpiry

double lambdaExpiry
Penalty intensity parameter for expiry dimension.
• #### lambdaStrike

double lambdaStrike
Penalty intensity parameter for strike dimension.
• #### name

IborCapletFloorletVolatilitiesName name
The name of the volatilities.
• #### shiftCurve

Curve shiftCurve
The shift parameter of shifted Black model.

The x value of the curve is the expiry. The market volatilities are calibrated to shifted Black model if this field is not null.

• ### Class com.opengamma.strata.pricer.capfloor.IborCapletFloorletSabrSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### expiry

double expiry
The time to expiry of the option as a year fraction.
• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### sensitivityType

SabrParameterType sensitivityType
The type of the sensitivity.
• #### volatilitiesName

IborCapletFloorletVolatilitiesName volatilitiesName
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.capfloor.IborCapletFloorletSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### expiry

double expiry
The time to expiry of the option as a year fraction.
• #### forward

double forward
The forward rate.
• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### strike

double strike
The strike rate.
• #### volatilitiesName

IborCapletFloorletVolatilitiesName volatilitiesName
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.capfloor.IborCapletFloorletVolatilitiesId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

IborCapletFloorletVolatilitiesName name
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.capfloor.IborCapletFloorletVolatilitiesName extends MarketDataName<IborCapletFloorletVolatilities> implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The name.
• ### Class com.opengamma.strata.pricer.capfloor.IborCapletFloorletVolatilityCalibrationResult extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### chiSquare

double chiSquare
The chi-square value.

The chi square is 0 if the volatilities are computed by root-finding. The chi square is generally non-zero if the volatilities are computed by least square method.

• #### volatilities

IborCapletFloorletVolatilities volatilities
The caplet volatilities.
• ### Class com.opengamma.strata.pricer.capfloor.NormalIborCapletFloorletExpiryStrikeVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### index

IborIndex index
The Ibor index.

The data must valid in terms of this Ibor index.

• #### surface

Surface surface
The normal volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the strike.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.capfloor.SabrIborCapletFloorletVolatilityBootstrapDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### betaCurve

Curve betaCurve
The beta (elasticity) curve.

This represents the beta parameter of SABR model.

The beta will be treated as one of the calibration parameters if this field is not specified.

• #### dayCount

DayCount dayCount
The day count to measure the time in the expiry dimension.
• #### extrapolatorLeft

CurveExtrapolator extrapolatorLeft
The left extrapolator for the SABR parameter curves.

The x value of the interpolated curves is the expiry.

• #### extrapolatorRight

CurveExtrapolator extrapolatorRight
The right extrapolator for the SABR parameter curves.

The x value of the interpolated curves is the expiry.

• #### index

IborIndex index
The Ibor index for which the data is valid.
• #### interpolator

CurveInterpolator interpolator
The interpolator for the SABR parameter curves.

The x value of the interpolated curves is the expiry.

• #### name

IborCapletFloorletVolatilitiesName name
The name of the volatilities.
• #### rhoCurve

Curve rhoCurve
The rho (correlation) curve.

This represents the rho parameter of SABR model.

The rho will be treated as one of the calibration parameters if this field is not specified.

• #### sabrVolatilityFormula

SabrVolatilityFormula sabrVolatilityFormula
The SABR formula.
• #### shiftCurve

Curve shiftCurve
The shift curve.

This represents the shift parameter of shifted SABR model. The x value of the curve is the expiry.

The shift is set to be zero if this field is not specified.

• ### Class com.opengamma.strata.pricer.capfloor.SabrIborCapletFloorletVolatilityCalibrationDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### betaCurve

Curve betaCurve
The beta (elasticity) curve.

This represents the beta parameter of SABR model.

The beta will be treated as one of the calibration parameters if this field is not specified. Either betaCurve or rhoCurve must be present.

• #### dayCount

DayCount dayCount
The day count to measure the time in the expiry dimension.
• #### extrapolatorLeft

CurveExtrapolator extrapolatorLeft
The left extrapolator for the SABR parameters.

The flat extrapolation is used if not specified.

• #### extrapolatorRight

CurveExtrapolator extrapolatorRight
The right extrapolator for the SABR parameters.

The flat extrapolation is used if not specified.

• #### index

IborIndex index
The Ibor index for which the data is valid.
• #### initialParameters

DoubleArray initialParameters
The initial parameter values used in calibration.

Default values will be used if not specified. The size of this field must be 4, ordered as alpha, beta, rho and nu.

• #### interpolator

CurveInterpolator interpolator
The interpolator for the SABR parameters.
• #### name

IborCapletFloorletVolatilitiesName name
The name of the volatilities.
• #### parameterCurveNodes

com.google.common.collect.ImmutableList<DoubleArray> parameterCurveNodes
The nodes of SABR parameter curves.

The size of the list must be 4, ordered as alpha, beta, rho and nu.

If the number of nodes is greater than 1, the curve will be created with CurveInterpolator and CurveExtrapolator specified below. Otherwise, ConstantNodalCurve will be created.

• #### rhoCurve

Curve rhoCurve
The rho (correlation) curve.

This represents the rho parameter of SABR model.

The rho will be treated as one of the calibration parameters if this field is not specified. Either betaCurve or rhoCurve must be present.

• #### sabrVolatilityFormula

SabrVolatilityFormula sabrVolatilityFormula
The SABR formula.
• #### shiftCurve

Curve shiftCurve
The shift curve.

This represents the shift parameter of shifted SABR model.

The shift is set to be zero if this field is not specified.

• ### Class com.opengamma.strata.pricer.capfloor.SabrParametersIborCapletFloorletVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dataSensitivityAlpha

com.google.common.collect.ImmutableList<DoubleArray> dataSensitivityAlpha
The sensitivity of the Alpha parameters to the raw data used for calibration.

The order of the sensitivities have to be coherent with the curve parameter metadata.

• #### dataSensitivityBeta

com.google.common.collect.ImmutableList<DoubleArray> dataSensitivityBeta
The sensitivity of the Beta parameters to the raw data used for calibration.

The order of the sensitivities have to be coherent with the curve parameter metadata.

• #### dataSensitivityNu

com.google.common.collect.ImmutableList<DoubleArray> dataSensitivityNu
The sensitivity of the Nu parameters to the raw data used for calibration.

The order of the sensitivities have to be coherent with the curve parameter metadata.

• #### dataSensitivityRho

com.google.common.collect.ImmutableList<DoubleArray> dataSensitivityRho
The sensitivity of the Rho parameters to the raw data used for calibration.

The order of the sensitivities have to be coherent with the curve parameter metadata.

• #### index

IborIndex index
The Ibor index.

The data must valid in terms of this Ibor index.

• #### name

IborCapletFloorletVolatilitiesName name
The name.
• #### parameters

SabrParameters parameters
The SABR model parameters.

Each model parameter of SABR model is a curve. The x-value of the curve is the expiry, as a year fraction.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.capfloor.ShiftedBlackIborCapletFloorletExpiryStrikeVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### index

IborIndex index
The Ibor index.

The data must valid in terms of this Ibor index.

• #### shiftCurve

Curve shiftCurve
The shift parameter of shifted Black model.

The x value of the curve is the expiry. Use BlackIborCapletFloorletExpiryStrikeVolatilities for zero shift.

• #### surface

Surface surface
The Black volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the strike.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.capfloor.SurfaceIborCapletFloorletVolatilityBootstrapDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count to measure the time in the expiry dimension.
• #### index

IborIndex index
The Ibor index.
• #### interpolator

GridSurfaceInterpolator interpolator
The interpolator for the caplet volatilities.
• #### name

IborCapletFloorletVolatilitiesName name
The name of the volatilities.
• #### shiftCurve

Curve shiftCurve
The shift parameter of shifted Black model.

The market volatilities are calibrated to shifted Black model if this field is not null.

• ## Package com.opengamma.strata.pricer.common

• ### Class com.opengamma.strata.pricer.common.GenericVolatilitySurfacePeriodParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### label

java.lang.String label
The label that describes the node.
• #### period

java.time.Period period
The period of the surface node.

This is the period to expiry that the node on the surface is defined as. There is not necessarily a direct relationship with a date from an underlying instrument.

• #### strike

Strike strike
The strike of the surface node.

This is the strike that the node on the surface is defined as.

• ### Class com.opengamma.strata.pricer.common.GenericVolatilitySurfaceYearFractionParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### label

java.lang.String label
The label that describes the node.
• #### strike

Strike strike
The strike of the surface node.

This is the strike that the node on the surface is defined as.

• #### yearFraction

double yearFraction
The year fraction of the surface node.

This is the time to expiry that the node on the surface is defined as. There is not necessarily a direct relationship with a date from an underlying instrument.

• ## Package com.opengamma.strata.pricer.credit

• ### Class com.opengamma.strata.pricer.credit.ConstantRecoveryRates extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### legalEntityId

StandardId legalEntityId
The legal entity identifier.

This identifier is used for the reference legal entity of a credit derivative.

• #### recoveryRate

double recoveryRate
The recovery rate.

The recovery rate is represented in decimal form, and must be between 0 and 1 inclusive.

• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.credit.CreditCurveZeroRateSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### legalEntityId

StandardId legalEntityId
The legal entity identifier.

This identifier is used for the reference legal entity of a credit derivative.

• #### zeroRateSensitivity

ZeroRateSensitivity zeroRateSensitivity
The zero rate sensitivity.

This stores curve currency, year fraction, sensitivity currency and sensitivity value.

• ### Class com.opengamma.strata.pricer.credit.ImmutableCreditRatesProvider extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### creditCurves

com.google.common.collect.ImmutableMap<Pair<StandardId,​Currency>,​LegalEntitySurvivalProbabilities> creditCurves
The credit curves.

The curve data, predicting the survival probability, associated with each legal entity and currency.

• #### discountCurves

com.google.common.collect.ImmutableMap<Currency,​CreditDiscountFactors> discountCurves
The discounting curves.

The curve data, predicting the discount factor, associated with each currency.

• #### recoveryRateCurves

com.google.common.collect.ImmutableMap<StandardId,​RecoveryRates> recoveryRateCurves
The credit rate curves.

The curve date, predicting the recovery rate, associated with each legal entity.

• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.

All curves and other data items in this provider are calibrated for this date.

• ### Class com.opengamma.strata.pricer.credit.IsdaCreditDiscountFactors extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency that the discount factors are for.
• #### curve

NodalCurve curve
The underlying curve.

The metadata of the curve must define a day count.

• #### dayCount

DayCount dayCount
The day count convention of the curve.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.credit.JumpToDefault extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amounts

com.google.common.collect.ImmutableMap<StandardId,​java.lang.Double> amounts
The amounts, identified by legal entity ID.
• #### currency

Currency currency
The currency of the amounts.
• ### Class com.opengamma.strata.pricer.credit.LegalEntitySurvivalProbabilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### legalEntityId

StandardId legalEntityId
The legal entity identifier.

This identifier is used for the reference legal entity of a credit derivative.

• #### survivalProbabilities

CreditDiscountFactors survivalProbabilities
The underlying curve.

The metadata of the curve must define a day count.

• ## Package com.opengamma.strata.pricer.fx

• ### Class com.opengamma.strata.pricer.fx.DiscountFxForwardRates extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### baseCurrencyDiscountFactors

DiscountFactors baseCurrencyDiscountFactors
The discount factors for the base currency of the currency pair.
• #### counterCurrencyDiscountFactors

DiscountFactors counterCurrencyDiscountFactors
The discount factors for the counter currency of the currency pair.
• #### currencyPair

CurrencyPair currencyPair
The currency pair that the rates are for.
• #### fxRateProvider

FxRateProvider fxRateProvider
The provider of FX rates.
• ### Class com.opengamma.strata.pricer.fx.ForwardFxIndexRates extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixings

LocalDateDoubleTimeSeries fixings
The time-series of fixings, defaulted to an empty time-series. This includes the known historical fixings and may be empty.
• #### fxForwardRates

FxForwardRates fxForwardRates
The underlying FX forward rates.
• #### index

FxIndex index
The index that the rates are for.
• ### Class com.opengamma.strata.pricer.fx.FxForwardSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### currencyPair

CurrencyPair currencyPair
The currency pair for which the sensitivity is computed.
• #### referenceCurrency

Currency referenceCurrency
The reference currency.

This is the base currency of the FX conversion that occurs using the currency pair. The reference currency must be one of the two currencies of the currency pair.

• #### referenceDate

java.time.LocalDate referenceDate
The date to query the rate for.
• #### sensitivity

double sensitivity
The value of the sensitivity. This is the amount that is converted from the base currency to the counter currency.
• ### Class com.opengamma.strata.pricer.fx.FxIndexSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### observation

FxIndexObservation observation
The FX rate observation.

This includes the index and fixing date.

• #### referenceCurrency

Currency referenceCurrency
The reference currency.

This is the base currency of the FX conversion that occurs using the index. The reference currency must be one of the two currencies of the index.

• #### sensitivity

double sensitivity
The value of the sensitivity.
• ## Package com.opengamma.strata.pricer.fxopt

• ### Class com.opengamma.strata.pricer.fxopt.BlackFxOptionFlatVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### currencyPair

CurrencyPair currencyPair
The currency pair that the volatilities are for.
• #### curve

Curve curve
The Black volatility curve.

The x-values represent the expiry year-fraction. The metadata of the curve must define a day count.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time. All data items in this provider is calibrated for this date-time.
• ### Class com.opengamma.strata.pricer.fxopt.BlackFxOptionSmileVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencyPair

CurrencyPair currencyPair
The currency pair that the volatilities are for.
• #### name

FxOptionVolatilitiesName name
The name of the volatilities.
• #### smile

SmileDeltaTermStructure smile
The volatility model.

This represents expiry dependent smile which consists of ATM, risk reversal and strangle as used in FX market.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time. All data items in this provider is calibrated for this date-time.
• ### Class com.opengamma.strata.pricer.fxopt.BlackFxOptionSurfaceVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### currencyPair

CurrencyPair currencyPair
The currency pair that the volatilities are for.
• #### name

FxOptionVolatilitiesName name
The name of the volatilities.
• #### surface

Surface surface
The Black volatility surface.

The x-values represent the expiry year-fraction. The y-values represent the strike. The metadata of the surface must define a day count.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time. All data items in this provider is calibrated for this date-time.
• ### Class com.opengamma.strata.pricer.fxopt.FxOptionSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### currencyPair

CurrencyPair currencyPair
The currency pair for which the sensitivity is presented.
• #### expiry

double expiry
The time to expiry of the option as a year fraction.
• #### forward

double forward
The forward rate.
• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### strike

double strike
The strike rate.
• #### volatilitiesName

FxOptionVolatilitiesName volatilitiesName
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.fxopt.FxOptionVolatilitiesId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

FxOptionVolatilitiesName name
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.fxopt.FxOptionVolatilitiesName extends MarketDataName<FxOptionVolatilities> implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The name.
• ### Class com.opengamma.strata.pricer.fxopt.FxVolatilitySurfaceYearFractionParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencyPair

CurrencyPair currencyPair
The currency pair that describes the node.
• #### label

java.lang.String label
The label that describes the node.
• #### strike

Strike strike
The strike of the surface node.

This is the strike that the node on the surface is defined as.

• #### yearFraction

double yearFraction
The year fraction of the surface node.

This is the time to expiry that the node on the surface is defined as. There is not necessarily a direct relationship with a date from an underlying instrument.

• ### Class com.opengamma.strata.pricer.fxopt.InterpolatedStrikeSmileDeltaTermStructure extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count convention used for the expiry.
• #### strikeExtrapolatorLeft

CurveExtrapolator strikeExtrapolatorLeft
The left extrapolator used in the strike dimension.
• #### strikeExtrapolatorRight

CurveExtrapolator strikeExtrapolatorRight
The right extrapolator used in the strike dimension.
• #### strikeInterpolator

CurveInterpolator strikeInterpolator
The interpolator used in the strike dimension.
• #### timeExtrapolatorLeft

CurveExtrapolator timeExtrapolatorLeft
The left extrapolator used in the time dimension.
• #### timeExtrapolatorRight

CurveExtrapolator timeExtrapolatorRight
The right extrapolator used in the time dimension.
• #### timeInterpolator

CurveInterpolator timeInterpolator
The interpolator used in the time dimension.
• #### volatilityTerm

com.google.common.collect.ImmutableList<SmileDeltaParameters> volatilityTerm
The smile description at the different time to expiry. All item should have the same deltas.
• ### Class com.opengamma.strata.pricer.fxopt.RecombiningTrinomialTreeData extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### discountFactor

DoubleArray discountFactor
The discount factor.

The i-th element is the discount factor between the i-th layer and the (i+1)-th layer.

• #### stateValue

DoubleMatrix stateValue
The state value.

The (i,j) component of this matrix represents the underlying asset price at the j-th lowest node at the i-th time layer.

• #### time

DoubleArray time
The time.

The i-th element is the year fraction between the 0-th time layer and the i-th layer.

• #### transitionProbability

com.google.common.collect.ImmutableList<DoubleMatrix> transitionProbability
The transition probability.

The i-th element of the list represents the transition probability values for the nodes at the i-th time layer. The matrix is (2*i+1) times 3, and its j-th row involves [0] down probability, [1] middle probability and [2] up probability for the j-th lowest node.

• ### Class com.opengamma.strata.pricer.fxopt.SmileAndBucketedSensitivities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### sensitivities

DoubleMatrix sensitivities
The sensitivities.
• #### smile

SmileDeltaParameters smile
The smile.
• ### Class com.opengamma.strata.pricer.fxopt.SmileDeltaParameters extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### delta

DoubleArray delta
The delta of the different data points. Must be positive and sorted in ascending order. The put will have as delta the opposite of the numbers.
• #### expiry

double expiry
The time to expiry associated with the data.

com.google.common.collect.ImmutableList<ParameterMetadata> parameterMetadata
• #### volatility

DoubleArray volatility
The volatilities associated with the strikes.
• ### Class com.opengamma.strata.pricer.fxopt.VolatilityAndBucketedSensitivities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### sensitivities

DoubleMatrix sensitivities
The sensitivities.
• #### volatility

double volatility
The volatility.
• ## Package com.opengamma.strata.pricer.index

• ### Class com.opengamma.strata.pricer.index.IborFutureOptionSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### expiry

double expiry
The time to expiry of the option as a year fraction.
• #### fixingDate

java.time.LocalDate fixingDate
The fixing date of the underlying future.
• #### futurePrice

double futurePrice
The underlying future price.
• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### strikePrice

double strikePrice
The option strike price.
• #### volatilitiesName

IborFutureOptionVolatilitiesName volatilitiesName
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.index.IborFutureOptionVolatilitiesId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

IborFutureOptionVolatilitiesName name
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.index.IborFutureOptionVolatilitiesName extends MarketDataName<IborFutureOptionVolatilities> implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The name.
• ### Class com.opengamma.strata.pricer.index.NormalIborFutureOptionExpirySimpleMoneynessVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### index

IborIndex index
The index of the underlying future.
• #### surface

Surface surface
The normal volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the simple moneyness.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ## Package com.opengamma.strata.pricer.model

• ### Class com.opengamma.strata.pricer.model.HullWhiteOneFactorPiecewiseConstantParameters extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### meanReversion

double meanReversion
The mean reversion speed parameter.
• #### volatility

DoubleArray volatility
The volatility parameters.

The volatility is constant between the volatility times, i.e., volatility value at t is volatility.get(i) for any t between volatilityTime.get(i) and volatilityTime.get(i+1).

• #### volatilityTime

DoubleArray volatilityTime
The times separating the constant volatility periods.

The time should be sorted by increasing order. The first time is 0 and the last time is 1000 (represents infinity). These extra times are added in HullWhiteOneFactorPiecewiseConstantParameters.of(double, DoubleArray, DoubleArray).

• ### Class com.opengamma.strata.pricer.model.HullWhiteOneFactorPiecewiseConstantParametersProvider extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count applicable to the model.
• #### parameters

HullWhiteOneFactorPiecewiseConstantParameters parameters
The Hull-White model parameters.
• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.model.SabrInterestRateParameters extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### alphaSurface

Surface alphaSurface
The alpha (volatility level) surface.

The first dimension is the expiry and the second the tenor.

• #### betaSurface

Surface betaSurface
The beta (elasticity) surface.

The first dimension is the expiry and the second the tenor.

• #### nuSurface

Surface nuSurface
The nu (volatility of volatility) surface.

The first dimension is the expiry and the second the tenor.

• #### rhoSurface

Surface rhoSurface
The rho (correlation) surface.

The first dimension is the expiry and the second the tenor.

• #### sabrVolatilityFormula

SabrVolatilityFormula sabrVolatilityFormula
The SABR volatility formula.
• #### shiftSurface

Surface shiftSurface
The shift parameter of shifted SABR model.

The first dimension is the expiry and the second the tenor. The shift is set to be 0 unless specified.

• ### Class com.opengamma.strata.pricer.model.SabrParameters extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### alphaCurve

Curve alphaCurve
The alpha (volatility level) curve.

The x value of the curve is the expiry.

• #### betaCurve

Curve betaCurve
The beta (elasticity) curve.

The x value of the curve is the expiry.

• #### nuCurve

Curve nuCurve
The nu (volatility of volatility) curve.

The x value of the curve is the expiry.

• #### rhoCurve

Curve rhoCurve
The rho (correlation) curve.

The x value of the curve is the expiry.

• #### sabrVolatilityFormula

SabrVolatilityFormula sabrVolatilityFormula
The SABR volatility formula.
• #### shiftCurve

Curve shiftCurve
The shift parameter of shifted SABR model.

The x value of the curve is the expiry. The shift is set to be 0 unless specified.

• ## Package com.opengamma.strata.pricer.option

• ### Class com.opengamma.strata.pricer.option.RawOptionData extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### data

DoubleMatrix data
The data. The values can be model parameters (like Black or normal volatilities) or direct option prices. The first (outer) dimension is the expiry, the second dimension is the strike. A 'NaN' value indicates that the data is not available.
• #### dataType

ValueType dataType
The type of the raw data.
• #### error

DoubleMatrix error
The measurement error of the option data.

These will be used if the option data is calibrated by a least square method. data and error must have the same number of elements.

• #### expiries

com.google.common.collect.ImmutableList<java.time.Period> expiries
The expiry values.
• #### shift

java.lang.Double shift
The shift for which the raw data is valid. Used only if the dataType is 'BlackVolatility'.
• #### strikes

DoubleArray strikes
The strike values. Can be directly strike or moneyness (simple or log)
• #### strikeType

ValueType strikeType
The value type of the strike-like dimension.
• ### Class com.opengamma.strata.pricer.option.TenorRawOptionData extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### data

com.google.common.collect.ImmutableSortedMap<Tenor,​RawOptionData> data
The map of tenor to option data.
• ## Package com.opengamma.strata.pricer.rate

• ### Class com.opengamma.strata.pricer.rate.DiscountIborIndexRates extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### discountFactors

DiscountFactors discountFactors
The underlying discount factor curve.
• #### fixings

LocalDateDoubleTimeSeries fixings
The time-series of fixings, defaulted to an empty time-series. This includes the known historical fixings and may be empty.
• #### index

IborIndex index
The index that the rates are for.
• ### Class com.opengamma.strata.pricer.rate.DiscountOvernightIndexRates extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### discountFactors

DiscountFactors discountFactors
The underlying discount factor curve.
• #### fixings

LocalDateDoubleTimeSeries fixings
The time-series of fixings, defaulted to an empty time-series. This includes the known historical fixings and may be empty.
• #### index

OvernightIndex index
The index that the rates are for.
• ### Class com.opengamma.strata.pricer.rate.HistoricIborIndexRates extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixings

LocalDateDoubleTimeSeries fixings
The time-series of fixings, defaulted to an empty time-series. This includes the known historical fixings and may be empty.
• #### index

IborIndex index
The index that the rates are for.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.rate.HistoricOvernightIndexRates extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixings

LocalDateDoubleTimeSeries fixings
The time-series of fixings, defaulted to an empty time-series. This includes the known historical fixings and may be empty.
• #### index

OvernightIndex index
The index that the rates are for.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.rate.HistoricPriceIndexValues extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixings

LocalDateDoubleTimeSeries fixings
The monthly time-series of fixings. This includes the known historical fixings and must not be empty.

Only one value is stored per month. The value is stored in the time-series on the last date of each month (which may be a non-working day).

• #### index

PriceIndex index
The index that the values are for.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.rate.IborRateSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### observation

IborIndexObservation observation
The Ibor index observation.

This includes the index and fixing date.

• #### sensitivity

double sensitivity
The value of the sensitivity.
• ### Class com.opengamma.strata.pricer.rate.ImmutableRatesProvider extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### discountCurves

com.google.common.collect.ImmutableMap<Currency,​Curve> discountCurves
The discount curves, defaulted to an empty map. The curve data, predicting the future, associated with each currency.
• #### fxRateProvider

FxRateProvider fxRateProvider
The provider of foreign exchange rates. Conversions where both currencies are the same always succeed.
• #### indexCurves

com.google.common.collect.ImmutableMap<Index,​Curve> indexCurves
The forward curves, defaulted to an empty map. The curve data, predicting the future, associated with each index. This is used for Ibor, Overnight and Price indices.
• #### timeSeries

com.google.common.collect.ImmutableMap<Index,​LocalDateDoubleTimeSeries> timeSeries
The time-series, defaulted to an empty map. The historic data associated with each index.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date. All curves and other data items in this provider are calibrated for this date.
• ### Class com.opengamma.strata.pricer.rate.InflationRateSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### observation

PriceIndexObservation observation
The Price index observation.

This includes the index and fixing month.

• #### sensitivity

double sensitivity
The value of the sensitivity.
• ### Class com.opengamma.strata.pricer.rate.OvernightRateSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### endDate

java.time.LocalDate endDate
The end date of the period. This must be after the fixing date. It may be the maturity date implied by the fixing date, but it may also be later.
• #### observation

OvernightIndexObservation observation
The Overnight rate observation.

This includes the index and fixing date.

• #### sensitivity

double sensitivity
The value of the sensitivity.
• ### Class com.opengamma.strata.pricer.rate.SimpleIborIndexRates extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### curve

Curve curve
The underlying forward curve.
• #### fixings

LocalDateDoubleTimeSeries fixings
The time-series of fixings, defaulted to an empty time-series. This includes the known historical fixings and may be empty.
• #### index

IborIndex index
The index that the rates are for.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ### Class com.opengamma.strata.pricer.rate.SimplePriceIndexValues extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### curve

NodalCurve curve
The underlying curve. Each x-value on the curve is the number of months between the valuation month and the estimation month. For example, zero represents the valuation month, one the next month and so on.
• #### fixings

LocalDateDoubleTimeSeries fixings
The monthly time-series of fixings. This includes the known historical fixings and must not be empty.

Only one value is stored per month. The value is stored in the time-series on the last date of each month (which may be a non-working day).

• #### index

PriceIndex index
The index that the values are for.
• #### valuationDate

java.time.LocalDate valuationDate
The valuation date.
• ## Package com.opengamma.strata.pricer.swaption

• ### Class com.opengamma.strata.pricer.swaption.BlackSwaptionExpiryTenorVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### convention

FixedIborSwapConvention convention
The swap convention that the volatilities are to be used for.
• #### surface

Surface surface
The Black volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the swap tenor, as a year fraction rounded to the month.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.swaption.NormalSwaptionExpirySimpleMoneynessVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### convention

FixedIborSwapConvention convention
The swap convention that the volatilities are to be used for.
• #### surface

Surface surface
The normal volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the simple moneyness, i.e. strike - forward, as a rate.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.swaption.NormalSwaptionExpiryStrikeVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### convention

FixedIborSwapConvention convention
The swap convention that the volatilities are to be used for.
• #### surface

Surface surface
The normal volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the strike, as a rate.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.swaption.NormalSwaptionExpiryTenorVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### convention

FixedIborSwapConvention convention
The swap convention that the volatilities are to be used for.
• #### surface

Surface surface
The normal volatility surface.

The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the swap tenor, as a year fraction rounded to the month.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.swaption.SabrParametersSwaptionVolatilities extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

FixedIborSwapConvention convention
The swap convention that the volatilities are to be used for.
• #### dataSensitivityAlpha

com.google.common.collect.ImmutableList<DoubleArray> dataSensitivityAlpha
The sensitivity of the Alpha parameters to the raw data used for calibration.

The order of the sensitivities have to be coherent with the surface parameter metadata.

• #### dataSensitivityBeta

com.google.common.collect.ImmutableList<DoubleArray> dataSensitivityBeta
The sensitivity of the Beta parameters to the raw data used for calibration.

The order of the sensitivities have to be coherent with the surface parameter metadata.

• #### dataSensitivityNu

com.google.common.collect.ImmutableList<DoubleArray> dataSensitivityNu
The sensitivity of the Nu parameters to the raw data used for calibration.

The order of the sensitivities have to be coherent with the surface parameter metadata.

• #### dataSensitivityRho

com.google.common.collect.ImmutableList<DoubleArray> dataSensitivityRho
The sensitivity of the Rho parameters to the raw data used for calibration.

The order of the sensitivities have to be coherent with the surface parameter metadata.

• #### name

SwaptionVolatilitiesName name
The name.
• #### parameters

SabrInterestRateParameters parameters
The SABR model parameters.

Each model parameter of SABR model is a surface. The x-value of the surface is the expiry, as a year fraction. The y-value of the surface is the swap tenor, as a year fraction rounded to the month.

• #### valuationDateTime

java.time.ZonedDateTime valuationDateTime
The valuation date-time.

The volatilities are calibrated for this date-time.

• ### Class com.opengamma.strata.pricer.swaption.SabrSwaptionDefinition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

FixedIborSwapConvention convention
The swap convention that the volatilities are to be used for.
• #### dayCount

DayCount dayCount
The day count to use.
• #### interpolator

SurfaceInterpolator interpolator
The interpolator for the alpha, rho and nu surfaces.
• #### name

SwaptionVolatilitiesName name
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.swaption.SwaptionSabrSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### expiry

double expiry
The time to expiry of the option as a year fraction.
• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### sensitivityType

SabrParameterType sensitivityType
The type of the sensitivity.
• #### tenor

double tenor
The underlying swap tenor.
• #### volatilitiesName

SwaptionVolatilitiesName volatilitiesName
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.swaption.SwaptionSensitivity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency of the sensitivity.
• #### expiry

double expiry
The time to expiry of the option as a year fraction.
• #### forward

double forward
The underlying swap forward rate.
• #### sensitivity

double sensitivity
The value of the sensitivity.
• #### strike

double strike
The swaption strike rate.
• #### tenor

double tenor
The underlying swap tenor.
• #### volatilitiesName

SwaptionVolatilitiesName volatilitiesName
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.swaption.SwaptionSurfaceExpirySimpleMoneynessParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### label

java.lang.String label
The label that describes the node.
• #### simpleMoneyness

double simpleMoneyness
The simple moneyness of the surface node.

This is defined as strike - forward.

• #### yearFraction

double yearFraction
The year fraction of the surface node.

This is the time to expiry that the node on the surface is defined as. There is not necessarily a direct relationship with a date from an underlying instrument.

• ### Class com.opengamma.strata.pricer.swaption.SwaptionSurfaceExpiryStrikeParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### label

java.lang.String label
The label that describes the node.
• #### strike

double strike
The strike of the surface node.
• #### yearFraction

double yearFraction
The year fraction of the surface node.

This is the time to expiry that the node on the surface is defined as. There is not necessarily a direct relationship with a date from an underlying instrument.

• ### Class com.opengamma.strata.pricer.swaption.SwaptionSurfaceExpiryTenorParameterMetadata extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### label

java.lang.String label
The label that describes the node.
• #### tenor

double tenor
The tenor of the surface node.

This is the tenor of the underlying swap that the node on the surface is defined as.

• #### yearFraction

double yearFraction
The year fraction of the surface node.

This is the time to expiry that the node on the surface is defined as. There is not necessarily a direct relationship with a date from an underlying instrument.

• ### Class com.opengamma.strata.pricer.swaption.SwaptionVolatilitiesId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

SwaptionVolatilitiesName name
The name of the volatilities.
• ### Class com.opengamma.strata.pricer.swaption.SwaptionVolatilitiesName extends MarketDataName<SwaptionVolatilities> implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The name.
• ## Package com.opengamma.strata.product

• ### Class com.opengamma.strata.product.AttributeType extends TypedString<AttributeType<T>> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.product.GenericSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

• ### Class com.opengamma.strata.product.GenericSecurityPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### security

GenericSecurity security
The underlying security.
• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.GenericSecurityTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### price

double price
The price that was traded, in decimal form.

This is the price agreed when the trade occurred.

• #### quantity

double quantity

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

• #### security

GenericSecurity security
• ### Class com.opengamma.strata.product.LegalEntityId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### standardId

StandardId standardId
The identifier, expressed as a standard two-part identifier.
• ### Class com.opengamma.strata.product.PortfolioItemSummary extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currencies

com.google.common.collect.ImmutableSet<Currency> currencies
The currencies of the item.

This should include the primary currencies the item is based on, not just the payment currencies.

• #### description

java.lang.String description
The description of the item.
• #### id

StandardId id
The identifier of the item, optional.
• #### portfolioItemType

PortfolioItemType portfolioItemType
The type of the item.
• #### productType

ProductType productType
The type of the product.
• ### Class com.opengamma.strata.product.PositionInfo extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### attributes

com.google.common.collect.ImmutableMap<AttributeType<?>,​java.lang.Object> attributes
The position attributes.

Position attributes provide the ability to associate arbitrary information in a key-value map.

• #### id

StandardId id
The primary identifier for the position, optional.

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.

• ### Class com.opengamma.strata.product.ProductType extends TypedString<ProductType> implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### description

java.lang.String description
The description.
• ### Class com.opengamma.strata.product.SecurityId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### standardId

StandardId standardId
The identifier, expressed as a standard two-part identifier.
• ### Class com.opengamma.strata.product.SecurityInfo extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### attributes

com.google.common.collect.ImmutableMap<AttributeType<?>,​java.lang.Object> attributes
The security attributes.

Security attributes provide the ability to associate arbitrary information in a key-value map.

• #### id

SecurityId id
The security identifier.

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.

• #### priceInfo

SecurityPriceInfo priceInfo
The information about the security price.

This provides information about the security price. This can be used to convert the price into a monetary value.

• ### Class com.opengamma.strata.product.SecurityPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### securityId

SecurityId securityId
The identifier of the underlying security.

This identifier uniquely identifies the security within the system.

• #### shortQuantity

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.

• ### Class com.opengamma.strata.product.SecurityPriceInfo extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### contractSize

double contractSize
The size of each contract.

Contract size is the quantity of the underlying present in each derivative contract. For example, an equity option typically consists of 100 shares.

• #### tickSize

double tickSize
The size of each tick.

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.

• #### tickValue

CurrencyAmount tickValue
The monetary value of one tick.

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.

• ### Class com.opengamma.strata.product.SecurityTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### price

double price
The price agreed when the trade occurred.

This is the price agreed when the trade occurred.

• #### quantity

double quantity

This will be positive if buying and negative if selling.

• #### securityId

SecurityId securityId
The identifier of the security that was traded.

This identifier uniquely identifies the security within the system.

• ### Class com.opengamma.strata.product.SimpleLegalEntity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### country

Country country
The country that the legal entity is based in.
• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.
• #### name

java.lang.String name
The legal entity name.
• ### Class com.opengamma.strata.product.TradedPrice extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### price

double price
The price at which the trade was agreed.

See the security type for more details on the meaning of the price.

java.time.LocalDate tradeDate

The date that the trade occurred.

• ### Class com.opengamma.strata.product.TradeInfo extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### attributes

com.google.common.collect.ImmutableMap<AttributeType<?>,​java.lang.Object> attributes

Trade attributes provide the ability to associate arbitrary information in a key-value map.

• #### counterparty

StandardId counterparty
The counterparty identifier, optional.

An identifier used to specify the counterparty of the trade.

• #### id

StandardId id
The primary identifier for the trade, optional.

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.

• #### settlementDate

java.time.LocalDate settlementDate
The settlement date, optional.

java.time.LocalDate tradeDate

java.time.LocalTime tradeTime
• #### zone

java.time.ZoneId zone
• ## Package com.opengamma.strata.product.bond

• ### Class com.opengamma.strata.product.bond.Bill extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count convention applicable.

The conversion from dates to a numerical value is made based on this day count.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bill.

• #### notional

AdjustablePayment notional
The adjustable notional payment of the bill notional, the amount must be positive.
• #### securityId

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

It is usually one business day for US and UK bills and two days for Euroland government bills.

• #### yieldConvention

BillYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.BillPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

Bill product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.bond.BillSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count convention applicable.

The conversion from dates to a numerical value is made based on this day count.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bill.

• #### notional

AdjustablePayment notional
The adjustable notional payment of the bill notional, the amount must be positive.
• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

It is usually one business day for US and UK bills and two days for Euroland government bills.

• #### yieldConvention

BillYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.BillTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### price

double price
The price at which the bill was traded, in decimal form.
• #### product

Bill product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

This will be positive if buying and negative if selling.

• ### Class com.opengamma.strata.product.bond.BondFuture extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### conversionFactors

com.google.common.collect.ImmutableList<java.lang.Double> conversionFactors
The conversion factor for each bond in the basket.

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.

com.google.common.collect.ImmutableList<FixedCouponBond> 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.

• #### firstDeliveryDate

java.time.LocalDate firstDeliveryDate
The first delivery date.

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.

• #### firstNoticeDate

java.time.LocalDate firstNoticeDate
The first notice date.

The first date on which the delivery of the underlying is authorized.

• #### lastDeliveryDate

java.time.LocalDate lastDeliveryDate
The last delivery date.

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.

• #### lastNoticeDate

java.time.LocalDate lastNoticeDate
The last notice date.

The last date on which the delivery of the underlying is authorized.

java.time.LocalDate lastTradeDate

The future security is traded until this date.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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 securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• ### Class com.opengamma.strata.product.bond.BondFutureOption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### expiryDate

java.time.LocalDate expiryDate
The expiry date of the option.

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.

• #### expiryTime

java.time.LocalTime expiryTime
The expiry time of the option.

The expiry time is related to the expiry date and time-zone.

• #### expiryZone

java.time.ZoneId expiryZone
The time-zone of the expiry time.

The expiry time-zone is related to the expiry date and time.

FutureOptionPremiumStyle premiumStyle
The style of the option premium.

The two options are daily margining and upfront premium.

• #### putCall

PutCall putCall
Whether the option is put or call.

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.

• #### rounding

Rounding rounding
The definition of how to round the option price, defaulted to no 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

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### strikePrice

double strikePrice
The strike price, represented in decimal form.

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.

• #### underlyingFuture

BondFuture underlyingFuture
The underlying future.
• ### Class com.opengamma.strata.product.bond.BondFutureOptionPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

BondFutureOption product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.bond.BondFutureOptionSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency that the future is traded in.
• #### expiryDate

java.time.LocalDate expiryDate
The expiry date of the option.

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.

• #### expiryTime

java.time.LocalTime expiryTime
The expiry time of the option.

The expiry time is related to the expiry date and time-zone.

• #### expiryZone

java.time.ZoneId expiryZone
The time-zone of the expiry time.

The expiry time-zone is related to the expiry date and time.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

FutureOptionPremiumStyle premiumStyle
The style of the option premium.

The two options are daily margining and upfront premium.

• #### putCall

PutCall putCall
Whether the option is put or call.

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.

• #### rounding

Rounding rounding
The definition of how to round the option price, defaulted to no 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.

• #### strikePrice

double strikePrice
The strike price, represented in decimal form.

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.

• #### underlyingFutureId

SecurityId underlyingFutureId
The identifier of the underlying future.
• ### Class com.opengamma.strata.product.bond.BondFutureOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

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

• #### price

double price
The price that was traded, in decimal form.

This is the price agreed when the trade occurred.

• #### product

BondFutureOption product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

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

• ### Class com.opengamma.strata.product.bond.BondFuturePosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

BondFuture product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.bond.BondFutureSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### conversionFactors

com.google.common.collect.ImmutableList<java.lang.Double> conversionFactors
The conversion factor for each bond in the basket.

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.

• #### currency

Currency currency
The currency that the future is traded in.

com.google.common.collect.ImmutableList<SecurityId> 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.

• #### firstDeliveryDate

java.time.LocalDate firstDeliveryDate
The first delivery date.

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.

• #### firstNoticeDate

java.time.LocalDate firstNoticeDate
The first notice date.

The first date on which the delivery of the underlying is authorized.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

• #### lastDeliveryDate

java.time.LocalDate lastDeliveryDate
The last delivery date.

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.

• #### lastNoticeDate

java.time.LocalDate lastNoticeDate
The last notice date.

The last date on which the delivery of the underlying is authorized.

java.time.LocalDate lastTradeDate

The future security is traded until this date.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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.

• ### Class com.opengamma.strata.product.bond.BondFutureTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

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

• #### price

double price
The price that was traded, in decimal form.

This is the price agreed when the trade occurred.

• #### product

BondFuture product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

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

• ### Class com.opengamma.strata.product.bond.CapitalIndexedBond extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualSchedule

PeriodicSchedule accrualSchedule
The accrual schedule.

This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the product.

• #### currency

Currency currency
The currency that the bond is traded in.
• #### dayCount

DayCount dayCount
The day count convention applicable.

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.

• #### exCouponPeriod

DaysAdjustment exCouponPeriod
Ex-coupon period.

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.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bond.

• #### notional

double notional
The notional amount, must be positive.

The notional expressed here must be positive. The currency of the notional is specified by currency.

• #### rateCalculation

InflationRateCalculation rateCalculation
The inflation rate calculation.

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.

• #### securityId

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

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.

• #### yieldConvention

CapitalIndexedBondYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.CapitalIndexedBondPaymentPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The primary currency of the payment period.

The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.

• #### detachmentDate

java.time.LocalDate detachmentDate
The detachment date.

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.

• #### endDate

java.time.LocalDate endDate
The end date of the payment period.

This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### notional

double notional
The notional amount, must be non-zero.

The notional amount applicable during the period. The currency of the notional is specified by currency.

• #### rateComputation

RateComputation rateComputation
The rate to be computed.

The value of the period is based on this rate. This must be an inflation rate observation, specifically InflationEndInterpolatedRateComputation or InflationEndMonthRateComputation.

• #### realCoupon

double realCoupon
The rate of real coupon.

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.

• #### startDate

java.time.LocalDate startDate
The start date of the payment period.

This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• ### Class com.opengamma.strata.product.bond.CapitalIndexedBondPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

CapitalIndexedBond product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.bond.CapitalIndexedBondSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualSchedule

PeriodicSchedule accrualSchedule
The accrual schedule.

This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the product.

• #### currency

Currency currency
The currency that the bond is traded in.
• #### dayCount

DayCount dayCount
The day count convention applicable.

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.

• #### exCouponPeriod

DaysAdjustment exCouponPeriod
Ex-coupon period.

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.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bond.

• #### notional

double notional
The notional amount, must be positive.

The notional expressed here must be positive. The currency of the notional is specified by currency.

• #### rateCalculation

InflationRateCalculation rateCalculation
The inflation rate calculation.

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.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

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.

• #### yieldConvention

CapitalIndexedBondYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.CapitalIndexedBondTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

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).

• #### price

double price
The clean price at which the bond was traded.

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.

• #### product

CapitalIndexedBond product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

This will be positive if buying and negative if selling.

• ### Class com.opengamma.strata.product.bond.FixedCouponBond extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualSchedule

PeriodicSchedule accrualSchedule
The accrual schedule.

This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the product.

• #### currency

Currency currency
The currency that the bond is traded in.
• #### dayCount

DayCount dayCount
The day count convention applicable.

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.

• #### exCouponPeriod

DaysAdjustment exCouponPeriod
Ex-coupon period.

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.

• #### fixedRate

double fixedRate
The fixed coupon rate.

The periodic payments are based on this fixed coupon rate.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bond.

• #### notional

double notional
The notional amount, must be positive.

The notional expressed here must be positive. The currency of the notional is specified by currency.

• #### securityId

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

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.

• #### yieldConvention

FixedCouponBondYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.FixedCouponBondPaymentPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The primary currency of the payment period.

The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.

• #### detachmentDate

java.time.LocalDate detachmentDate
The detachment date.

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.

• #### endDate

java.time.LocalDate endDate
The end date of the payment period.

This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### fixedRate

double fixedRate
The fixed coupon rate.

The single payment is based on this fixed coupon rate.

• #### notional

double notional
The notional amount, must be positive.

The notional amount applicable during the period. The currency of the notional is specified by currency.

• #### startDate

java.time.LocalDate startDate
The start date of the payment period.

This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• #### yearFraction

double yearFraction
The year fraction that the accrual period represents.

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.

• ### Class com.opengamma.strata.product.bond.FixedCouponBondPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

FixedCouponBond product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.bond.FixedCouponBondSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualSchedule

PeriodicSchedule accrualSchedule
The accrual schedule.

This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the product.

• #### currency

Currency currency
The currency that the bond is traded in.
• #### dayCount

DayCount dayCount
The day count convention applicable.

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.

• #### exCouponPeriod

DaysAdjustment exCouponPeriod
Ex-coupon period.

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.

• #### fixedRate

double fixedRate
The fixed coupon rate.

The periodic payments are based on this fixed coupon rate.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bond.

• #### notional

double notional
The notional amount, must be positive.

The notional expressed here must be positive. The currency of the notional is specified by currency.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

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.

• #### yieldConvention

FixedCouponBondYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.FixedCouponBondTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

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).

• #### price

double price
The clean price at which the bond was traded, in decimal form.

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.

• #### product

FixedCouponBond product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

This will be positive if buying and negative if selling.

• ### Class com.opengamma.strata.product.bond.KnownAmountBondPaymentPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The end date of the payment period.

This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### payment

Payment payment
The payment.

This includes the payment date and amount. If the schedule adjusts for business days, then the date is the adjusted date.

• #### startDate

java.time.LocalDate startDate
The start date of the payment period.

This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• ### Class com.opengamma.strata.product.bond.ResolvedBill extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count convention applicable.

The conversion from dates to a numerical value is made based on this day count.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bill.

• #### notional

Payment notional
The notional payment of the bill notional, the amount must be positive.
• #### securityId

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

It is usually one business day for US and UK bills and two days for Euroland government bills.

• #### yieldConvention

BillYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.ResolvedBillTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedBill product
The resolved bill product.

The product captures the contracted financial details of the trade.

• #### quantity

double quantity
The quantity, indicating the number of bond contracts in the trade.

This will be positive if buying and negative if selling.

• #### settlement

Payment settlement
The settlement details of the bill trade.

When this class is used to represent a position, this property will be empty.

• ### Class com.opengamma.strata.product.bond.ResolvedBondFuture extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### conversionFactors

com.google.common.collect.ImmutableList<java.lang.Double> conversionFactors
The conversion factor for each bond in the basket.

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.

com.google.common.collect.ImmutableList<ResolvedFixedCouponBond> 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.

• #### firstDeliveryDate

java.time.LocalDate firstDeliveryDate
The first delivery date.

The first date on which the underlying is delivered.

• #### firstNoticeDate

java.time.LocalDate firstNoticeDate
The first notice date.

The first date on which the delivery of the underlying is authorized.

• #### lastDeliveryDate

java.time.LocalDate lastDeliveryDate
The last delivery date.

The last date on which the underlying is delivered.

• #### lastNoticeDate

java.time.LocalDate lastNoticeDate
The last notice date.

The last date on which the delivery of the underlying is authorized.

java.time.LocalDate lastTradeDate

The future security is traded until this date.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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 securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• ### Class com.opengamma.strata.product.bond.ResolvedBondFutureOption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### expiry

java.time.ZonedDateTime expiry
The expiry of the option.

The date must not be after last trade date of the underlying future.

FutureOptionPremiumStyle premiumStyle
The style of the option premium.

The two options are daily margining and upfront premium.

• #### putCall

PutCall putCall
Whether the option is put or call.

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.

• #### rounding

Rounding rounding
The definition of how to round the option price, defaulted to no 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

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### strikePrice

double strikePrice
The strike price, represented in decimal form.

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.

• #### underlyingFuture

ResolvedBondFuture underlyingFuture
The underlying future.
• ### Class com.opengamma.strata.product.bond.ResolvedBondFutureOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedBondFutureOption product

The product captures the contracted financial details of the trade.

• #### quantity

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.

• ### Class com.opengamma.strata.product.bond.ResolvedBondFutureTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedBondFuture product

The product captures the contracted financial details of the trade.

• #### quantity

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.

• ### Class com.opengamma.strata.product.bond.ResolvedCapitalIndexedBond extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count convention applicable.

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.

• #### frequency

Frequency frequency
The frequency of the bond payments.

This must match the frequency used to generate the payment schedule.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bond.

• #### nominalPayment

CapitalIndexedBondPaymentPeriod nominalPayment
The nominal payment of the product.

The payment date of the nominal payment agrees with the final coupon payment date of the periodic payments.

• #### periodicPayments

com.google.common.collect.ImmutableList<CapitalIndexedBondPaymentPeriod> periodicPayments
The periodic payments of the product.

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.

• #### rateCalculation

InflationRateCalculation rateCalculation
The inflation rate calculation.

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.

• #### rollConvention

RollConvention rollConvention
The roll convention of the bond payments.

This must match the convention used to generate the payment schedule.

• #### securityId

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

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.

• #### yieldConvention

CapitalIndexedBondYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.ResolvedCapitalIndexedBondSettlement extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### payment

BondPaymentPeriod payment
The payment of the settlement.

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.

• #### price

double price
The clean price at which the bond was traded.

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.

• #### settlementDate

java.time.LocalDate settlementDate
The settlement date.
• ### Class com.opengamma.strata.product.bond.ResolvedCapitalIndexedBondTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedCapitalIndexedBond product
The resolved capital indexed bond product.

The product captures the contracted financial details of the trade.

• #### quantity

double quantity
The quantity, indicating the number of bond contracts in the trade.

This will be positive if buying and negative if selling.

• #### settlement

ResolvedCapitalIndexedBondSettlement settlement
The settlement details of the bond trade.

When this class is used to represent a position, this property will be empty.

• ### Class com.opengamma.strata.product.bond.ResolvedFixedCouponBond extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count convention applicable.

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.

• #### fixedRate

double fixedRate
The fixed coupon rate.

The periodic payments are based on this fixed coupon rate.

• #### frequency

Frequency frequency
The frequency of the bond payments.

This must match the frequency used to generate the payment schedule.

• #### legalEntityId

LegalEntityId legalEntityId
The legal entity identifier.

This identifier is used for the legal entity that issues the bond.

• #### nominalPayment

Payment nominalPayment
The nominal payment of the product.

The payment date of the nominal payment agrees with the final coupon payment date of the periodic payments.

• #### periodicPayments

com.google.common.collect.ImmutableList<FixedCouponBondPaymentPeriod> periodicPayments
The periodic payments of the product.

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.

• #### rollConvention

RollConvention rollConvention
The roll convention of the bond payments.

This must match the convention used to generate the payment schedule.

• #### securityId

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

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.

• #### yieldConvention

FixedCouponBondYieldConvention yieldConvention
Yield convention.

The convention defines how to convert from yield to price and inversely.

• ### Class com.opengamma.strata.product.bond.ResolvedFixedCouponBondSettlement extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### price

double price
The clean price at which the bond was traded.

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.

• #### settlementDate

java.time.LocalDate settlementDate
The settlement date.
• ### Class com.opengamma.strata.product.bond.ResolvedFixedCouponBondTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedFixedCouponBond product
The resolved fixed coupon bond product.

The product captures the contracted financial details of the trade.

• #### quantity

double quantity
The quantity, indicating the number of bond contracts in the trade.

This will be positive if buying and negative if selling.

• #### settlement

ResolvedFixedCouponBondSettlement settlement
The settlement details of the bond trade.

When this class is used to represent a position, this property will be empty.

• ## Package com.opengamma.strata.product.capfloor

• ### Class com.opengamma.strata.product.capfloor.IborCapFloor extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### capFloorLeg

IborCapFloorLeg capFloorLeg
The Ibor cap/floor leg of the product.

This is associated with periodic payments based on Ibor rate. The payments are Ibor caplets or Ibor floorlets.

• #### payLeg

SwapLeg payLeg
The optional pay leg of the product.

• ### Class com.opengamma.strata.product.capfloor.IborCapFloorLeg extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### calculation

IborRateCalculation calculation
The interest rate accrual calculation.

The interest rate accrual is based on Ibor index.

• #### capSchedule

ValueSchedule capSchedule
The cap schedule, optional.

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.

• #### currency

Currency currency
The currency of the leg associated with the notional.

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.

• #### floorSchedule

ValueSchedule floorSchedule
The floor schedule, optional.

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.

• #### notional

ValueSchedule notional
The notional amount, must be non-negative.

The notional amount applicable during the period. The currency of the notional is specified by currency.

• #### paymentDateOffset

DaysAdjustment paymentDateOffset
The offset of payment from the base calculation period date, defaulted to 'None'.

The offset is applied to the adjusted end date of each payment period. Offset can be based on calendar days or business days.

• #### paymentSchedule

PeriodicSchedule paymentSchedule
The periodic payment schedule.

This is used to define the periodic payment periods. These are used directly or indirectly to determine other dates in the leg.

PayReceive payReceive
Whether the leg is pay or receive.

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.

• ### Class com.opengamma.strata.product.capfloor.IborCapFloorTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

AdjustablePayment premium
The optional premium of the product.

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.

• #### product

IborCapFloor product
The cap/floor product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.capfloor.IborCapletFloorletPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### caplet

java.lang.Double caplet
The optional caplet strike.

This defines the strike value of a caplet.

If the period is not a caplet, this field will be absent.

• #### currency

Currency currency
The primary currency of the payment period.

The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.

• #### endDate

java.time.LocalDate endDate
The end date of the payment period.

This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### floorlet

java.lang.Double floorlet
The optional floorlet strike.

This defines the strike value of a floorlet.

If the period is not a floorlet, this field will be absent.

• #### iborRate

IborRateComputation iborRate
The rate to be observed.

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'.

• #### notional

double notional
The notional amount, positive if receiving, negative if paying.

The notional amount applicable during the period. The currency of the notional is specified by currency.

• #### paymentDate

java.time.LocalDate paymentDate
The date that payment occurs.

• #### startDate

java.time.LocalDate startDate
The start date of the payment period.

This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• #### yearFraction

double yearFraction
The year fraction that the accrual period represents.

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.

• ### Class com.opengamma.strata.product.capfloor.ResolvedIborCapFloor extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### capFloorLeg

ResolvedIborCapFloorLeg capFloorLeg
The Ibor cap/floor leg of the product.

This is associated with periodic payments based on Ibor rate. The payments are Ibor caplets or Ibor floorlets.

• #### payLeg

ResolvedSwapLeg payLeg
The optional pay leg of the product.

• ### Class com.opengamma.strata.product.capfloor.ResolvedIborCapFloorLeg extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### capletFloorletPeriods

com.google.common.collect.ImmutableList<IborCapletFloorletPeriod> capletFloorletPeriods
The periodic payments based on the successive observed values of an Ibor index.

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.

PayReceive payReceive
Whether the leg is pay or receive.

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.

• ### Class com.opengamma.strata.product.capfloor.ResolvedIborCapFloorTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

Payment premium
The optional premium of the product.

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.

• #### product

ResolvedIborCapFloor product
The resolved Ibor cap/floor product.

The product captures the contracted financial details of the trade.

• ## Package com.opengamma.strata.product.cms

• ### Class com.opengamma.strata.product.cms.Cms extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### cmsLeg

CmsLeg cmsLeg
The CMS leg of the product.

This is associated with periodic payments based on swap rate. The payments are CMS coupons, CMS caplets or CMS floors.

• #### payLeg

SwapLeg payLeg
The optional pay leg of the product.

Typically this is associated with periodic fixed or Ibor rate payments without compounding or notional exchange.

• ### Class com.opengamma.strata.product.cms.CmsLeg extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### capSchedule

ValueSchedule capSchedule
The cap schedule, optional.

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.

• #### currency

Currency currency
The currency of the leg associated with the notional.

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.

• #### dayCount

DayCount dayCount
The day count convention.

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.

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The offset of the fixing date from each adjusted reset date.

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.

• #### fixingRelativeTo

FixingRelativeTo fixingRelativeTo
The base date that each fixing is made relative to, defaulted to 'PeriodStart'.

The fixing date is relative to either the start or end of each period.

• #### floorSchedule

ValueSchedule floorSchedule
The floor schedule, optional.

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.

• #### index

SwapIndex index
The swap index.

The swap rate to be paid is the observed value of this index.

• #### notional

ValueSchedule notional
The notional amount, must be non-negative.

The notional amount applicable during the period. The currency of the notional is specified by currency.

• #### paymentDateOffset

DaysAdjustment paymentDateOffset
The offset of payment from the base calculation period date.

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.

• #### paymentSchedule

PeriodicSchedule paymentSchedule
The periodic payment schedule.

This is used to define the periodic payment periods. These are used directly or indirectly to determine other dates in the leg.

PayReceive payReceive
Whether the leg is pay or receive.

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.

• ### Class com.opengamma.strata.product.cms.CmsPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### caplet

java.lang.Double caplet
The optional caplet strike.

This defines the strike value of a caplet.

If the period is not a caplet, this field will be absent.

• #### currency

Currency currency
The primary currency of the payment period.

The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.

• #### dayCount

DayCount dayCount
The day count of the period.
• #### endDate

java.time.LocalDate endDate
The end date of the payment period.

This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### fixingDate

java.time.LocalDate fixingDate
The date of the index fixing.

• #### floorlet

java.lang.Double floorlet
The optional floorlet strike.

This defines the strike value of a floorlet.

If the period is not a floorlet, this field will be absent.

• #### index

SwapIndex index
The swap index.

The swap rate to be paid is the observed value of this index.

• #### notional

double notional
The notional amount, positive if receiving, negative if paying.

The notional amount applicable during the period. The currency of the notional is specified by currency.

• #### paymentDate

java.time.LocalDate paymentDate
The date that payment occurs.

• #### startDate

java.time.LocalDate startDate
The start date of the payment period.

This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• #### underlyingSwap

ResolvedSwap underlyingSwap
The underlying swap.

The interest rate swap for which the swap rate is referred.

• #### yearFraction

double yearFraction
The year fraction that the accrual period represents.

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.

• ### Class com.opengamma.strata.product.cms.CmsTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

AdjustablePayment premium
The optional premium of the product.

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.

• #### product

Cms product
The CMS product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.cms.ResolvedCms extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### cmsLeg

ResolvedCmsLeg cmsLeg
The CMS leg of the product.

This is associated with periodic payments based on swap rate. The payments are CMS coupons, CMS caplets or CMS floors.

• #### payLeg

ResolvedSwapLeg payLeg
The optional pay leg of the product.

Typically this is associated with periodic fixed or Ibor rate payments without compounding or notional exchange.

• ### Class com.opengamma.strata.product.cms.ResolvedCmsLeg extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### cmsPeriods

com.google.common.collect.ImmutableList<CmsPeriod> cmsPeriods
The periodic payments based on the successive observed values of a swap index.

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.

PayReceive payReceive
Whether the leg is pay or receive.

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.

• ### Class com.opengamma.strata.product.cms.ResolvedCmsTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

Payment premium
The optional premium of the product.

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.

• #### product

ResolvedCms product
The resolved CMS product.

The product captures the contracted financial details of the trade.

• ## Package com.opengamma.strata.product.common

• ### Class com.opengamma.strata.product.common.ExchangeId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### name

java.lang.String name
The Market Identifier Code (MIC) identifying the exchange.
• ## Package com.opengamma.strata.product.credit

• ### Class com.opengamma.strata.product.credit.Cds extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BuySell buySell
Whether the CDS is buy or sell.

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.

• #### currency

Currency currency
The currency of the CDS.

The amounts of the notional are expressed in terms of this currency.

• #### dayCount

DayCount dayCount
The day count convention.

This is used to convert dates to a numerical value.

When building, this will default to 'Act/360'.

• #### fixedRate

double fixedRate
The fixed coupon rate.

This must be represented in decimal form.

• #### legalEntityId

StandardId legalEntityId
The legal entity identifier.

This identifier is used for the reference legal entity of the CDS.

• #### notional

double notional
The notional amount, must be non-negative.

The fixed notional amount applicable during the lifetime of the CDS. The currency of the notional is specified by currency.

• #### paymentOnDefault

PaymentOnDefault paymentOnDefault
The payment on default.

Whether the accrued premium is paid in the event of a default.

When building, this will default to 'AccruedPremium'.

• #### paymentSchedule

PeriodicSchedule paymentSchedule
The payment schedule.

This is used to define the payment periods.

• #### protectionStart

ProtectionStartOfDay protectionStart
The protection start of the day.

When the protection starts on the start date.

When building, this will default to 'Beginning'.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

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.

• #### stepinDateOffset

DaysAdjustment stepinDateOffset
The number of days between valuation date and step-in date.

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.

• ### Class com.opengamma.strata.product.credit.CdsCalibrationTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### quote

CdsQuote quote
The CDS quote.

CdsTrade underlyingTrade
• ### Class com.opengamma.strata.product.credit.CdsIndex extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BuySell buySell
Whether the CDS index is buy or sell.

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.

• #### cdsIndexId

StandardId cdsIndexId
The CDS index identifier.

This identifier is used to refer this CDS index product.

• #### currency

Currency currency
The currency of the CDS index.

The amounts of the notional are expressed in terms of this currency.

• #### dayCount

DayCount dayCount
The day count convention.

This is used to convert dates to a numerical value.

When building, this will default to 'Act/360'.

• #### fixedRate

double fixedRate
The fixed coupon rate.

This must be represented in decimal form.

• #### legalEntityIds

com.google.common.collect.ImmutableList<StandardId> legalEntityIds
The legal entity identifiers.

These identifiers refer to the reference legal entities of the CDS index.

• #### notional

double notional
The notional amount, must be non-negative.

The fixed notional amount applicable during the lifetime of the CDS. The currency of the notional is specified by currency.

• #### paymentOnDefault

PaymentOnDefault paymentOnDefault
The payment on default.

Whether the accrued premium is paid in the event of a default.

When building, this will default to 'AccruedPremium'.

• #### paymentSchedule

PeriodicSchedule paymentSchedule
The payment schedule.

This is used to define the payment periods.

• #### protectionStart

ProtectionStartOfDay protectionStart
The protection start of the day.

When the protection starts on the start date.

When building, this will default to 'Beginning'.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

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.

• #### stepinDateOffset

DaysAdjustment stepinDateOffset
The number of days between valuation date and step-in date.

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.

• ### Class com.opengamma.strata.product.credit.CdsIndexCalibrationTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### quote

CdsQuote quote
The CDS index quote.

CdsIndexTrade underlyingTrade
• ### Class com.opengamma.strata.product.credit.CdsIndexTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

CdsIndex product
The CDS index product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• #### upfrontFee

AdjustablePayment upfrontFee
The upfront fee of the product.

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.

• ### Class com.opengamma.strata.product.credit.CdsQuote extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### quoteConvention

CdsQuoteConvention quoteConvention
The CDS quote convention.
• #### quotedValue

double quotedValue
The quoted value.

This value must be represented in decimal form.

• ### Class com.opengamma.strata.product.credit.CdsTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

Cds product
The CDS product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• #### upfrontFee

AdjustablePayment upfrontFee
The upfront fee of the product.

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.

• ### Class com.opengamma.strata.product.credit.CreditCouponPaymentPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The primary currency of the payment period.

The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.

• #### effectiveEndDate

java.time.LocalDate effectiveEndDate
The effective protection end date of the period.

This is the last date in the protection period associated with the payment period.

• #### effectiveStartDate

java.time.LocalDate effectiveStartDate
The effective protection start date of the period.

This is the first date in the protection period associated with the payment period.

• #### endDate

java.time.LocalDate endDate
The end date of the accrual period.

This is the last accrual date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### fixedRate

double fixedRate
The fixed coupon rate.

The single payment is based on this fixed coupon rate. The coupon must be represented in fraction.

• #### notional

double notional
The notional amount, must be positive.

The notional amount applicable during the period. The currency of the notional is specified by currency.

• #### paymentDate

java.time.LocalDate paymentDate
The payment date.

The fixed rate is paid on this date. This is not necessarily the same as endDate.

• #### startDate

java.time.LocalDate startDate
The start date of the accrual period.

This is the first accrual date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• #### yearFraction

double yearFraction
The year fraction that the accrual period represents.

The year fraction of a period is based on startDate and endDate. The value is usually calculated using a specific DayCount.

• ### Class com.opengamma.strata.product.credit.ResolvedCds extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BuySell buySell
Whether the CDS is buy or sell.

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.

• #### dayCount

DayCount dayCount
The day count convention.

This is used to convert dates to a numerical value.

• #### legalEntityId

StandardId legalEntityId
The legal entity identifier.

This identifier is used for the reference legal entity of the CDS.

• #### paymentOnDefault

PaymentOnDefault paymentOnDefault
The payment on default.

Whether the accrued premium is paid in the event of a default.

• #### paymentPeriods

com.google.common.collect.ImmutableList<CreditCouponPaymentPeriod> paymentPeriods
The periodic payments based on the fixed rate.

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.

• #### protectionEndDate

java.time.LocalDate protectionEndDate
The protection end date.

This may be different from the accrual end date of the last payment period in periodicPayments.

• #### protectionStart

ProtectionStartOfDay protectionStart
The protection start of the day.

When the protection starts on the start date.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

It is usually 3 business days for standardized CDS contracts.

• #### stepinDateOffset

DaysAdjustment stepinDateOffset
The number of days between valuation date and step-in date.

The step-in date is also called protection effective date. It is usually 1 calendar day for standardized CDS contracts.

• ### Class com.opengamma.strata.product.credit.ResolvedCdsIndex extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BuySell buySell
Whether the CDS index is buy or sell.

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.

• #### cdsIndexId

StandardId cdsIndexId
The CDS index identifier.

This identifier is used to refer this CDS index product.

• #### dayCount

DayCount dayCount
The day count convention.

This is used to convert dates to a numerical value.

• #### legalEntityIds

com.google.common.collect.ImmutableList<StandardId> legalEntityIds
The legal entity identifiers.

These identifiers refer to the reference legal entities of the CDS index.

• #### paymentOnDefault

PaymentOnDefault paymentOnDefault
The payment on default.

Whether the accrued premium is paid in the event of a default.

• #### paymentPeriods

com.google.common.collect.ImmutableList<CreditCouponPaymentPeriod> paymentPeriods
The periodic payments based on the fixed rate.

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.

• #### protectionEndDate

java.time.LocalDate protectionEndDate
The protection end date.

This may be different from the accrual end date of the last payment period in periodicPayments.

• #### protectionStart

ProtectionStartOfDay protectionStart
The protection start of the day.

When the protection starts on the start date.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

It is usually 3 business days for standardized CDS index contracts.

• #### stepinDateOffset

DaysAdjustment stepinDateOffset
The number of days between valuation date and step-in date.

The step-in date is also called protection effective date. It is usually 1 calendar day for standardized CDS index contracts.

• ### Class com.opengamma.strata.product.credit.ResolvedCdsIndexTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedCdsIndex product
The resolved CDS index product.

The product captures the contracted financial details of the trade.

• #### upfrontFee

Payment upfrontFee
The upfront fee of the product.

This specifies a single amount payable by the buyer to the seller Thus the sign must be compatible with the product Pay/Receive flag.

• ### Class com.opengamma.strata.product.credit.ResolvedCdsTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedCds product
The resolved CDS product.

The product captures the contracted financial details of the trade.

• #### upfrontFee

Payment upfrontFee
The upfront fee of the product.

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.

• ## Package com.opengamma.strata.product.credit.type

• ### Class com.opengamma.strata.product.credit.type.DatesCdsTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

CdsConvention convention
The market convention of the credit default swap.
• #### endDate

java.time.LocalDate endDate
The end date.

The end date of the underling CDS product. This date can be modified following the rule in convention.

• #### startDate

java.time.LocalDate startDate
The start date.

The start date of the underling CDS product. This date can be modified following the rule in convention.

• ### Class com.opengamma.strata.product.credit.type.ImmutableCdsConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

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.

• #### currency

Currency currency
The currency of the CDS.

The amounts of the notional are expressed in terms of this currency.

• #### dayCount

DayCount dayCount
The day count convention applicable.

This is used to convert schedule period dates to a numerical value.

BusinessDayAdjustment endDateBusinessDayAdjustment
The business day adjustment to apply to the end date, optional with defaulting getter.

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.

• #### name

java.lang.String name
The convention name.
• #### paymentFrequency

Frequency paymentFrequency
The periodic frequency of payments.

Regular payments will be made at the specified periodic frequency. This also defines the accrual periodic frequency.

• #### paymentOnDefault

PaymentOnDefault paymentOnDefault
The payment on default.

Whether the accrued premium is paid in the event of a default.

This will default to 'accrued premium' if not specified.

• #### protectionStart

ProtectionStartOfDay protectionStart
The protection start of the day.

When the protection starts on the start date.

This will default to 'beginning of the start day' if not specified.

• #### rollConvention

RollConvention rollConvention
The convention defining how to roll dates, optional with defaulting getter.

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.

• #### settlementDateOffset

DaysAdjustment settlementDateOffset
The number of days between valuation date and settlement date.

It is usually 3 business days for standardised CDS contracts.

BusinessDayAdjustment startDateBusinessDayAdjustment
The business day adjustment to apply to the start date, optional with defaulting getter.

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.

• #### stepinDateOffset

DaysAdjustment stepinDateOffset
The number of days between valuation date and step-in date.

The step-in date is also called protection effective date.

This will default to '1 calendar day' if not specified.

• #### stubConvention

StubConvention stubConvention
The convention defining how to handle stubs, optional with defaulting getter.

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.

• ### Class com.opengamma.strata.product.credit.type.TenorCdsTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualStart

AccrualStart accrualStart
The accrual start.

Whether the accrual start is the next day or the previous IMM date.

• #### convention

CdsConvention convention
The market convention of the credit default swap.
• #### tenor

Tenor tenor
The tenor of the credit default swap.

This is the period to the protection end.

• ## Package com.opengamma.strata.product.deposit

• ### Class com.opengamma.strata.product.deposit.IborFixingDeposit extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start and end date, optional.

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.

BuySell buySell
Whether the Ibor fixing deposit is 'Buy' or 'Sell'.

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 currency
The primary currency, defaulted to the currency of the index.

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.

• #### dayCount

DayCount dayCount
The day count convention applicable, defaulted to the day count of the index.

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.

• #### endDate

java.time.LocalDate endDate
The end date of the deposit.

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.

• #### fixedRate

double fixedRate
The fixed interest rate to be paid. A 5% rate will be expressed as 0.05.
• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The offset of the fixing date from the start date.

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.

• #### index

IborIndex index
The Ibor 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.

• #### notional

double notional
The notional amount.

The notional expressed here must be non-negative. The currency of the notional is specified by currency.

• #### startDate

java.time.LocalDate startDate
The start date of the deposit.

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.

• ### Class com.opengamma.strata.product.deposit.IborFixingDepositTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

IborFixingDeposit product
The Ibor fixing deposit product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.deposit.ResolvedIborFixingDeposit extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The primary 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.

• #### endDate

java.time.LocalDate endDate
The end date of the deposit.

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

• #### fixedRate

double fixedRate
The fixed rate of interest. A 5% rate will be expressed as 0.05.
• #### floatingRate

IborRateComputation floatingRate
The floating rate of interest.

The floating rate to be paid is based on this index. It will be a well known market index such as 'GBP-LIBOR-3M'.

• #### notional

double notional
The notional amount.

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.

• #### startDate

java.time.LocalDate startDate
The start date of the deposit.

This is the first date that interest accrues.

This is an adjusted date, which should be a valid business day

• #### yearFraction

double yearFraction
The year fraction between the start and end date.

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.

• ### Class com.opengamma.strata.product.deposit.ResolvedIborFixingDepositTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedIborFixingDeposit product
The resolved Ibor Fixing Deposit product.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.deposit.ResolvedTermDeposit extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### currency

Currency currency
The primary currency.

This is the currency of the deposit and the currency that payment is made in.

• #### endDate

java.time.LocalDate endDate
The end date of the deposit.

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

• #### notional

double notional
The notional amount.

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.

• #### rate

double rate
The fixed rate of interest. A 5% rate will be expressed as 0.05.
• #### startDate

java.time.LocalDate startDate
The start date of the deposit.

This is the first date that interest accrues.

This is an adjusted date, which should be a valid business day

• #### yearFraction

double yearFraction
The year fraction between the start and end date.

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.

• ### Class com.opengamma.strata.product.deposit.ResolvedTermDepositTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedTermDeposit product
The resolved Term Deposit product.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.deposit.TermDeposit extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start and end date, optional.

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.

BuySell buySell
Whether the term deposit is 'Buy' or 'Sell'.

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 currency
The primary currency.

This is the currency of the term deposit and the currency that payment is made in.

• #### dayCount

DayCount dayCount
The day count convention.

This is used to convert dates to a numerical value.

• #### endDate

java.time.LocalDate endDate
The end date of the deposit.

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.

• #### notional

double notional
The notional amount.

The notional represents the principal amount, and must be non-negative. The currency of the notional is specified by currency.

• #### rate

double rate
The fixed interest rate to be paid. A 5% rate will be expressed as 0.05.
• #### startDate

java.time.LocalDate startDate
The start date of the deposit.

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.

• ### Class com.opengamma.strata.product.deposit.TermDepositTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

TermDeposit product
The term deposit product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ## Package com.opengamma.strata.product.deposit.type

• ### Class com.opengamma.strata.product.deposit.type.IborFixingDepositTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

IborFixingDepositConvention convention
The underlying Ibor fixing deposit convention.

This specifies the standard convention of the Ibor fixing deposit to be created.

• #### depositPeriod

java.time.Period depositPeriod
The period between the start date and the end date.

The difference between the start date and the end date typically matches the tenor of the index, however this is not validated.

• ### Class com.opengamma.strata.product.deposit.type.ImmutableIborFixingDepositConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start and end date, optional with defaulting getter.

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.

• #### currency

Currency currency
The primary currency, optional with defaulting getter.

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 dayCount
The day count convention applicable, optional with defaulting getter.

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.

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The offset of the fixing date from the start date, optional with defaulting getter.

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.

• #### index

IborIndex index
The Ibor 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'.

• #### name

java.lang.String name
The convention name, such as 'GBP-LIBOR-3M', optional with defaulting getter.

This will default to the name of the index if not specified.

• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date, optional with defaulting getter.

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.

• ### Class com.opengamma.strata.product.deposit.type.ImmutableTermDepositConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start and end date.

The start and end date will be adjusted as defined here.

• #### currency

Currency currency
The primary currency.

This is the currency of the term deposit and the currency that payment is made in.

• #### dayCount

DayCount dayCount
The day count convention.

This is used to convert dates to a numerical value.

• #### name

java.lang.String name
The convention name, such as 'GBP-Deposit-ON'.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

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.

• ### Class com.opengamma.strata.product.deposit.type.TermDepositTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

TermDepositConvention convention
The underlying term deposit convention.

This specifies the standard convention of the term deposit to be created.

• #### depositPeriod

java.time.Period depositPeriod
The period between the start date and the end date.
• ## Package com.opengamma.strata.product.dsf

• ### Class com.opengamma.strata.product.dsf.Dsf extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### deliveryDate

java.time.LocalDate deliveryDate
The delivery date.

The underlying swap is delivered on this date.

java.time.LocalDate lastTradeDate

This date must be before the delivery date of the underlying swap.

• #### notional

double notional
The notional of the futures.

This is also called face value or contract value.

• #### securityId

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### underlyingSwap

Swap underlyingSwap
The underlying swap.

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.

• ### Class com.opengamma.strata.product.dsf.DsfPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

Dsf product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.dsf.DsfSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

java.time.LocalDate lastTradeDate

This date must be before the delivery date of the underlying swap.

• #### notional

double notional
The notional.

This is also called face value or contract value.

• #### underlyingSwap

Swap underlyingSwap
The underlying swap.

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.

• ### Class com.opengamma.strata.product.dsf.DsfTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

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

• #### price

double price
The price that was traded, in decimal form.

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.

• #### product

Dsf product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

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

• ### Class com.opengamma.strata.product.dsf.ResolvedDsf extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### deliveryDate

java.time.LocalDate deliveryDate
The delivery date.

The underlying swap is delivered on this date.

java.time.LocalDate lastTradeDate

This date must be before the delivery date of the underlying swap.

• #### notional

double notional
The notional of the futures.

This is also called face value or contract value.

• #### securityId

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### underlyingSwap

ResolvedSwap underlyingSwap
The underlying swap.

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.

• ### Class com.opengamma.strata.product.dsf.ResolvedDsfTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedDsf product

The product captures the contracted financial details of the trade.

• #### quantity

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.

• ## Package com.opengamma.strata.product.etd

• ### Class com.opengamma.strata.product.etd.EtdContractCode extends TypedString<EtdContractCode> implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.product.etd.EtdContractSpec extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### attributes

com.google.common.collect.ImmutableMap<AttributeType<?>,​java.lang.Object> attributes
The attributes.

Attributes provide the ability to associate arbitrary information with a security contract specification in a key-value map.

• #### contractCode

EtdContractCode contractCode
The code supplied by the exchange for use in clearing and margining, such as in SPAN.
• #### description

java.lang.String description
The human readable description of the product.
• #### exchangeId

ExchangeId exchangeId
The ID of the exchange where the instruments derived from the product are traded.
• #### id

EtdContractSpecId id
The ID of this contract specification.

When building, this will be defaulted using EtdIdUtils.

• #### priceInfo

SecurityPriceInfo priceInfo
The information about the security price. This includes details of the currency, tick size, tick value, contract size.
• #### type

EtdType type
The type of the contract - future or option.
• ### Class com.opengamma.strata.product.etd.EtdContractSpecId extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### standardId

StandardId standardId
The identifier, expressed as a standard two-part identifier.
• ### Class com.opengamma.strata.product.etd.EtdFuturePosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### security

EtdFutureSecurity security
The underlying security.
• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.etd.EtdFutureSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### contractSpecId

EtdContractSpecId contractSpecId
The ID of the contract specification from which this security is derived.
• #### expiry

java.time.YearMonth expiry
The year-month of the expiry.

Expiry will occur on a date implied by the variant of the ETD.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

• #### variant

EtdVariant variant
The variant of ETD.

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'.

• ### Class com.opengamma.strata.product.etd.EtdFutureTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### price

double price
The price that was traded, in decimal form.

This is the price agreed when the trade occurred.

• #### quantity

double quantity

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

• #### security

EtdFutureSecurity security
• ### Class com.opengamma.strata.product.etd.EtdOptionPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### security

EtdOptionSecurity security
The underlying security.
• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.etd.EtdOptionSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### contractSpecId

EtdContractSpecId contractSpecId
The ID of the contract specification from which this security is derived.
• #### expiry

java.time.YearMonth expiry
The year-month of the expiry.

Expiry will occur on a date implied by the variant of the ETD.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

• #### putCall

PutCall putCall
Whether the option is a put or call.
• #### strikePrice

double strikePrice
The strike price, in decimal form, may be negative.
• #### underlyingExpiryMonth

java.time.YearMonth underlyingExpiryMonth
The expiry year-month of the underlying instrument.

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.

• #### variant

EtdVariant variant
The variant of ETD.

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'.

• #### version

int version
The version of the option, defaulted to zero.

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.

• ### Class com.opengamma.strata.product.etd.EtdOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### price

double price
The price that was traded, in decimal form.

This is the price agreed when the trade occurred.

• #### quantity

double quantity

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

• #### security

EtdOptionSecurity security
• ### Class com.opengamma.strata.product.etd.EtdVariant extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### code

java.lang.String code
The short code.
• #### dateCode

java.lang.Integer dateCode
The optional date code, populated for Weekly and Daily.

This will be the week number for Weekly and the day-of-week for Daily.

• #### optionType

EtdOptionType optionType
The optional option type, 'American' or 'European', populated for Flex Options.
• #### settlementType

EtdSettlementType settlementType
The optional settlement type, such as 'Cash' or 'Physical', populated for Flex Futures and Flex Options.
• #### type

EtdExpiryType type
The type of ETD - Monthly, Weekly or Daily.

Flex Futures and Options are always Daily.

• ## Package com.opengamma.strata.product.fra

• ### Class com.opengamma.strata.product.fra.Fra extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start and end date, optional.

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.

BuySell buySell
Whether the FRA is buy or sell.

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 currency
The primary currency, defaulted to the currency of the index.

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.

• #### dayCount

DayCount dayCount
The day count convention applicable, defaulted to the day count of the index.

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.

• #### discounting

FraDiscountingMethod discounting
The method to use for discounting, defaulted to 'ISDA' or 'AFMA'.

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.

• #### endDate

java.time.LocalDate endDate
The end date, which is the termination date of the FRA.

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.

• #### fixedRate

double fixedRate
The fixed rate of interest. A 5% rate will be expressed as 0.05.

See buySell to determine whether this rate is paid or received.

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The offset of the fixing date from the start date.

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.

• #### index

IborIndex index
The Ibor 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.

• #### indexInterpolated

IborIndex indexInterpolated
The second Ibor index to be used for linear interpolation, optional.

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.

• #### notional

double notional
The notional amount.

The notional expressed here must be positive. The currency of the notional is specified by currency.

• #### paymentDate

AdjustableDate paymentDate
The payment date.

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.

• #### startDate

java.time.LocalDate startDate
The start date, which is the effective date of the FRA.

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.

• ### Class com.opengamma.strata.product.fra.FraTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

Fra product
The FRA product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fra.ResolvedFra extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### currency

Currency currency
The primary 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.

• #### discounting

FraDiscountingMethod discounting
The method to use for discounting.

There are different approaches to FRA pricing in the area of discounting. This method specifies the approach for this FRA.

• #### endDate

java.time.LocalDate endDate
The end date, which is the termination date of the FRA.

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

• #### fixedRate

double fixedRate
The fixed rate of interest. A 5% rate will be expressed as 0.05.
• #### floatingRate

RateComputation floatingRate
The floating rate of interest.

The floating rate to be paid is based on this index. It will be a well known market index such as 'GBP-LIBOR-3M'.

• #### notional

double notional
The notional amount.

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.

• #### paymentDate

java.time.LocalDate paymentDate
The date that payment occurs.

This is an adjusted date, which should be a valid business day

• #### startDate

java.time.LocalDate startDate
The start date, which is the effective date of the FRA.

This is the first date that interest accrues.

This is an adjusted date, which should be a valid business day

• #### yearFraction

double yearFraction
The year fraction between the start and end date.

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.

• ### Class com.opengamma.strata.product.fra.ResolvedFraTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedFra product
The resolved FRA product.

The product captures the contracted financial details of the trade.

• ## Package com.opengamma.strata.product.fra.type

• ### Class com.opengamma.strata.product.fra.type.FraTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

FraConvention convention
The underlying FRA convention.

This specifies the market convention of the FRA to be created.

• #### periodToEnd

java.time.Period periodToEnd
The period between the spot value date and the end date.

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.

• #### periodToStart

java.time.Period periodToStart
The period between the spot value date and the start date.

In a FRA described as '2 x 5', the period to the start date is 2 months.

• ### Class com.opengamma.strata.product.fra.type.ImmutableFraConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start and end date, optional with defaulting getter.

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.

• #### currency

Currency currency
The primary currency, optional with defaulting getter.

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 dayCount
The day count convention applicable, optional with defaulting getter.

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.

• #### discounting

FraDiscountingMethod discounting
The method to use for discounting, optional with defaulting getter.

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.

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The offset of the fixing date from the start date, optional with defaulting getter.

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.

• #### index

IborIndex index
The Ibor 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'.

• #### name

java.lang.String name
The convention name, such as 'GBP-LIBOR-3M', optional with defaulting getter.

This will default to the name of the index if not specified.

• #### paymentDateOffset

DaysAdjustment paymentDateOffset
The offset of the payment date from the start date, optional with defaulting getter.

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.

• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date, optional with defaulting getter.

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.

• ## Package com.opengamma.strata.product.fx

• ### Class com.opengamma.strata.product.fx.FxNdf extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### agreedFxRate

FxRate agreedFxRate
The FX rate agreed for the value date at the inception of the trade.

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

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

• #### index

FxIndex index
The index defining the FX rate to observe on the fixing date.

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

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

• #### paymentDate

java.time.LocalDate paymentDate
The date that the forward settles.

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

• #### settlementCurrencyNotional

CurrencyAmount settlementCurrencyNotional
The notional amount in the settlement currency, positive if receiving, negative if paying.

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

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

• ### Class com.opengamma.strata.product.fx.FxNdfTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

FxNdf product
The product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fx.FxSingle extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### baseCurrencyPayment

Payment baseCurrencyPayment
The payment in the base currency, positive if receiving, negative if paying.

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

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.

• #### counterCurrencyPayment

Payment counterCurrencyPayment
The payment in the counter currency, positive if receiving, negative if paying.

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

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.

• ### Class com.opengamma.strata.product.fx.FxSingleTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

FxSingle product
The product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fx.FxSwap extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### farLeg

FxSingle farLeg
The foreign exchange transaction at the later date.

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.

• #### nearLeg

FxSingle nearLeg
The foreign exchange transaction at the earlier date.

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.

• ### Class com.opengamma.strata.product.fx.FxSwapTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

FxSwap product
The FX swap product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fx.ResolvedFxNdf extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### agreedFxRate

FxRate agreedFxRate
The FX rate agreed for the value date at the inception of the trade.

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

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

• #### observation

FxIndexObservation observation
The FX index 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.

• #### paymentDate

java.time.LocalDate paymentDate
The date that the forward settles.

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

• #### settlementCurrencyNotional

CurrencyAmount settlementCurrencyNotional
The notional amount in the settlement currency, positive if receiving, negative if paying.

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

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

• ### Class com.opengamma.strata.product.fx.ResolvedFxNdfTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedFxNdf product
The resolved Non-Deliverable Forward (NDF) product.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fx.ResolvedFxSingle extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### baseCurrencyPayment

Payment baseCurrencyPayment
The payment in the base currency, positive if receiving, negative if paying.

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.

• #### counterCurrencyPayment

Payment counterCurrencyPayment
The payment in the counter currency, positive if receiving, negative if paying.

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.

• ### Class com.opengamma.strata.product.fx.ResolvedFxSingleTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedFxSingle product
The resolved single FX product.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fx.ResolvedFxSwap extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### farLeg

ResolvedFxSingle farLeg
The foreign exchange transaction at the later date.

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.

• #### nearLeg

ResolvedFxSingle nearLeg
The foreign exchange transaction at the earlier date.

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.

• ### Class com.opengamma.strata.product.fx.ResolvedFxSwapTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedFxSwap product
The resolved FX swap product.

The product captures the contracted financial details of the trade.

• ## Package com.opengamma.strata.product.fx.type

• ### Class com.opengamma.strata.product.fx.type.FxSwapTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

FxSwapConvention convention
The underlying FX Swap convention.

This specifies the market convention of the FX Swap to be created.

• #### periodToFar

java.time.Period periodToFar
The period between the spot value date and the far date.

For example, a '3M x 6M' FX swap has a period from spot to the far date of 6 months

• #### periodToNear

java.time.Period periodToNear
The period between the spot value date and the near date.

For example, a '3M x 6M' FX swap has a period from spot to the near date of 3 months

• ### Class com.opengamma.strata.product.fx.type.ImmutableFxSwapConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment
The business day adjustment to apply to the start and end date, optional with defaulting getter.

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.

• #### currencyPair

CurrencyPair currencyPair
The currency pair associated with the convention.
• #### name

java.lang.String name
The convention name, such as 'EUR/USD', optional with defaulting getter.

This will default to the name of the currency pair if not specified.

• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

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.

• ## Package com.opengamma.strata.product.fxopt

• ### Class com.opengamma.strata.product.fxopt.FxSingleBarrierOption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### barrier

Barrier barrier
The barrier description.

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.

• #### rebate

CurrencyAmount rebate
For a 'out' option, the amount is paid when the barrier is reached; for a 'in' option, the amount is paid at expiry if the barrier is not reached.

This is the notional amount represented in one of the currency pair. The amount should be positive.

• #### underlyingOption

FxVanillaOption underlyingOption
The underlying FX vanilla option.
• ### Class com.opengamma.strata.product.fxopt.FxSingleBarrierOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

AdjustablePayment premium
The premium of the FX option.

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.

• #### product

FxSingleBarrierOption product
The FX option product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fxopt.FxVanillaOption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### expiryDate

java.time.LocalDate expiryDate
The expiry date of the option.

The option is European, and can only be exercised on the expiry date.

• #### expiryTime

java.time.LocalTime expiryTime
The expiry time of the option.

The expiry time is related to the expiry date and time-zone.

• #### expiryZone

java.time.ZoneId expiryZone
The time-zone of the expiry time.

The expiry time-zone is related to the expiry date and time.

• #### longShort

LongShort longShort
Whether the option is long or short.

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.

• #### underlying

FxSingle underlying
The underlying foreign exchange transaction.

At expiry, if the option is in the money, this foreign exchange will occur.

• ### Class com.opengamma.strata.product.fxopt.FxVanillaOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

AdjustablePayment premium
The premium of the FX option.

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.

• #### product

FxVanillaOption product
The FX option product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fxopt.ResolvedFxSingleBarrierOption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### barrier

Barrier barrier
The barrier description.

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.

• #### rebate

CurrencyAmount rebate
For a 'out' option, the amount is paid when the barrier is reached; for a 'in' option, the amount is paid at expiry if the barrier is not reached.

This is the notional amount represented in one of the currency pair. The amount should be positive.

• #### underlyingOption

ResolvedFxVanillaOption underlyingOption
The underlying FX vanilla option.
• ### Class com.opengamma.strata.product.fxopt.ResolvedFxSingleBarrierOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

Payment premium
The premium of the FX option.

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.

• #### product

ResolvedFxSingleBarrierOption product
The resolved barrier FX option product.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.fxopt.ResolvedFxVanillaOption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### expiry

java.time.ZonedDateTime expiry
The expiry date-time of the option.

The option is European, and can only be exercised on the expiry date.

• #### longShort

LongShort longShort
Whether the option is long or short.

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.

• #### underlying

ResolvedFxSingle underlying
The underlying foreign exchange transaction.

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.

• ### Class com.opengamma.strata.product.fxopt.ResolvedFxVanillaOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

Payment premium
The premium of the FX option.

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.

• #### product

ResolvedFxVanillaOption product
The resolved vanilla FX option product.

The product captures the contracted financial details of the trade.

• ## Package com.opengamma.strata.product.index

• ### Class com.opengamma.strata.product.index.IborFuture extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualFactor

double accrualFactor
The accrual factor, defaulted from the index if not set.

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.

• #### currency

Currency currency
The currency that the future is traded in, defaulted from the index if not set.
• #### index

IborIndex index
The underlying Ibor index.

The future is based on this index. It will be a well known market index such as 'USD-LIBOR-3M'.

java.time.LocalDate lastTradeDate
The last date of trading. This date is also the fixing date for the Ibor index. This is typically 2 business days before the IMM date (3rd Wednesday of the month).
• #### notional

double notional
The notional amount.

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.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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 securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• ### Class com.opengamma.strata.product.index.IborFutureOption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### expiryDate

java.time.LocalDate expiryDate
The expiry date of the option.

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.

• #### expiryTime

java.time.LocalTime expiryTime
The expiry time of the option.

The expiry time is related to the expiry date and time-zone.

• #### expiryZone

java.time.ZoneId expiryZone
The time-zone of the expiry time.

The expiry time-zone is related to the expiry date and time.

FutureOptionPremiumStyle premiumStyle
The style of the option premium.

The two options are daily margining and upfront premium.

• #### putCall

PutCall putCall
Whether the option is put or call.

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.

• #### rounding

Rounding rounding
The definition of how to round the option price, defaulted to no 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

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### strikePrice

double strikePrice
The strike price, in decimal form.

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.

• #### underlyingFuture

IborFuture underlyingFuture
The underlying future.
• ### Class com.opengamma.strata.product.index.IborFutureOptionPosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

IborFutureOption product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.index.IborFutureOptionSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### currency

Currency currency
The currency that the option is traded in.
• #### expiryDate

java.time.LocalDate expiryDate
The expiry date of the option.

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.

• #### expiryTime

java.time.LocalTime expiryTime
The expiry time of the option.

The expiry time is related to the expiry date and time-zone.

• #### expiryZone

java.time.ZoneId expiryZone
The time-zone of the expiry time.

The expiry time-zone is related to the expiry date and time.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

FutureOptionPremiumStyle premiumStyle
The style of the option premium.

The two options are daily margining and upfront premium.

• #### putCall

PutCall putCall
Whether the option is put or call.

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.

• #### rounding

Rounding rounding
The definition of how to round the option price, defaulted to no 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.

• #### strikePrice

double strikePrice
The strike price, in decimal form.

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.

• #### underlyingFutureId

SecurityId underlyingFutureId
The identifier of the underlying future.
• ### Class com.opengamma.strata.product.index.IborFutureOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

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

• #### price

double price
The price that was traded, in decimal form.

This is the price agreed when the trade occurred.

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

• #### product

IborFutureOption product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

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

• ### Class com.opengamma.strata.product.index.IborFuturePosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

IborFuture product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.index.IborFutureSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### index

IborIndex index
The underlying Ibor index.

The future is based on this index. It will be a well known market index such as 'USD-LIBOR-3M'.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

java.time.LocalDate lastTradeDate
The last date of trading. This date is also the fixing date for the Ibor index. This is typically 2 business days before the IMM date (3rd Wednesday of the month).
• #### notional

double notional
The notional amount.

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.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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.

• ### Class com.opengamma.strata.product.index.IborFutureTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

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

• #### price

double price
The price that was traded, in decimal form.

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.

• #### product

IborFuture product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

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

• ### Class com.opengamma.strata.product.index.OvernightFuture extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualFactor

double accrualFactor
The accrual factor, defaulted from the index if not set.

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.

• #### accrualMethod

OvernightAccrualMethod accrualMethod
The method of accruing Overnight interest.

The average rate is calculated based on this method over the period between startDate and endDate.

• #### currency

Currency currency
The currency that the future is traded in, defaulted from the index if not set.
• #### endDate

java.time.LocalDate endDate
The last date of the rate calculation period.

This is not necessarily a valid business day on the fixing calendar of index. However, it will be adjusted in OvernightRateComputation if needed.

• #### index

OvernightIndex index
The underlying Overnight index.

The future is based on this index. It will be a well known market index such as 'USD-FED-FUND'.

java.time.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.

• #### notional

double notional
The notional amount.

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.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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 securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### startDate

java.time.LocalDate startDate
The first date of the rate calculation period.

This is not necessarily a valid business day on the fixing calendar of index. However, it will be adjusted in OvernightRateComputation if needed.

• ### Class com.opengamma.strata.product.index.OvernightFuturePosition extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PositionInfo info
The additional position information, defaulted to an empty instance.

This allows additional information to be attached to the position.

• #### longQuantity

double longQuantity
The long quantity of the security.

This is the quantity of the underlying security that is held. The quantity cannot be negative, as that would imply short selling.

• #### product

OvernightFuture product

The product captures the contracted financial details.

• #### shortQuantity

double shortQuantity
The short quantity of the security.

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.

• ### Class com.opengamma.strata.product.index.OvernightFutureSecurity extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualFactor

double accrualFactor
The accrual factor, defaulted from the index if not set.

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.

• #### accrualMethod

OvernightAccrualMethod accrualMethod
The method of accruing Overnight interest.

The average rate is calculated based on this method over the period between startDate and endDate.

• #### endDate

java.time.LocalDate endDate
The last date of the rate calculation period.

This is not necessarily a valid business day on the fixing calendar of index. However, it will be adjusted in OvernightRateComputation if needed.

• #### index

OvernightIndex index
The underlying Overnight index.

The future is based on this index. It will be a well known market index such as 'USD-FED-FUND'.

• #### info

SecurityInfo info
The standard security information.

This includes the security identifier.

java.time.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.

• #### notional

double notional
The notional amount.

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.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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.

• #### startDate

java.time.LocalDate startDate
The first date of the rate calculation period.

This is not necessarily a valid business day on the fixing calendar of index. However, it will be adjusted in OvernightRateComputation if needed.

• ### Class com.opengamma.strata.product.index.OvernightFutureTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

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

• #### price

double price
The price that was traded, in decimal form.

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.

• #### product

OvernightFuture product

The product captures the contracted financial details of the trade.

• #### quantity

double quantity

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

• ### Class com.opengamma.strata.product.index.ResolvedIborFuture extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualFactor

double accrualFactor
The accrual factor, defaulted from the index if not set.

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.

• #### currency

Currency currency
The currency that the future is traded in.
• #### iborRate

IborRateComputation iborRate
The Ibor rate observation.

The future is based on this index. It will be a well known market index such as 'USD-LIBOR-3M'.

• #### notional

double notional
The notional amount.

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.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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 securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• ### Class com.opengamma.strata.product.index.ResolvedIborFutureOption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### expiry

java.time.ZonedDateTime expiry
The expiry of the option.

The date must not be after last trade date of the underlying future.

FutureOptionPremiumStyle premiumStyle
The style of the option premium.

The two options are daily margining and upfront premium.

• #### putCall

PutCall putCall
Whether the option is put or call.

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.

• #### rounding

Rounding rounding
The definition of how to round the option price, defaulted to no 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

SecurityId securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• #### strikePrice

double strikePrice
The strike price, in decimal form.

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.

• #### underlyingFuture

ResolvedIborFuture underlyingFuture
The underlying future.
• ### Class com.opengamma.strata.product.index.ResolvedIborFutureOptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedIborFutureOption product

The product captures the contracted financial details of the trade.

• #### quantity

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.

• ### Class com.opengamma.strata.product.index.ResolvedIborFutureTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedIborFuture product

The product captures the contracted financial details of the trade.

• #### quantity

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.

• ### Class com.opengamma.strata.product.index.ResolvedOvernightFuture extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualFactor

double accrualFactor
The accrual factor, defaulted from the index if not set.

This is the year fraction of the contract, typically 1/12 for a 30-day future. The year fraction must be positive.

• #### currency

Currency currency
The currency that the future is traded in.

java.time.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.

• #### notional

double notional
The notional amount.

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.

• #### overnightRate

OvernightRateComputation overnightRate
The Overnight rate observation.

The future is based on this index. It will be a well known market index such as 'USD-FED-FUND'.

• #### rounding

Rounding rounding
The definition of how to round the futures price, defaulted to no 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 securityId
The security identifier.

This identifier uniquely identifies the security within the system.

• ### Class com.opengamma.strata.product.index.ResolvedOvernightFutureTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

PortfolioItemInfo info
The additional information, defaulted to an empty instance.

This allows additional information to be attached.

• #### product

ResolvedOvernightFuture product

The product captures the contracted financial details of the trade.

• #### quantity

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.

• ## Package com.opengamma.strata.product.index.type

• ### Class com.opengamma.strata.product.index.type.ImmutableIborFutureConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment

The reference date, which is often the third Wednesday of the month, will be adjusted as defined here.

• #### dateSequence

DateSequence dateSequence
The sequence of dates that the future is based on.

This is used to calculate the reference date of the future that is the start date of the underlying synthetic deposit.

• #### index

IborIndex index
The Ibor 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'.

• #### name

java.lang.String name
The convention name, such as 'USD-LIBOR-3M-Quarterly-IMM'.

This will default to the name of the index suffixed by the name of the date sequence if not specified.

• ## Package com.opengamma.strata.product.option

• ### Class com.opengamma.strata.product.option.SimpleConstantContinuousBarrier extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### barrierLevel

double barrierLevel
The barrier level.
• #### barrierType

BarrierType barrierType
The barrier type.
• #### knockType

KnockType knockType
The knock type.
• ## Package com.opengamma.strata.product.payment

• ### Class com.opengamma.strata.product.payment.BulletPayment extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### date

AdjustableDate date
The date that the payment is made.

This date should normally be a valid business day.

PayReceive payReceive
Whether the payment is to be paid or received.

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.

• #### value

CurrencyAmount value
The amount of the payment.

The amount is unsigned, with the direction implied by payReceive.

• ### Class com.opengamma.strata.product.payment.BulletPaymentTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

BulletPayment product
The product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.payment.ResolvedBulletPayment extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### payment

Payment payment
• ### Class com.opengamma.strata.product.payment.ResolvedBulletPaymentTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedBulletPayment product
The resolved bullet payment product.

The product captures the contracted financial details of the trade.

• ## Package com.opengamma.strata.product.rate

• ### Class com.opengamma.strata.product.rate.FixedOvernightCompoundedAnnualRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualFactor

double accrualFactor
The accrual factor.
• #### rate

double rate
The fixed rate for overnight compounding. A 5% rate will be expressed as 0.05.
• #### simpleRate

double simpleRate
The calculated simple rate.
• ### Class com.opengamma.strata.product.rate.FixedRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### rate

double rate
The fixed rate to be paid. A 5% rate will be expressed as 0.05.
• ### Class com.opengamma.strata.product.rate.IborAveragedFixing extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixedRate

java.lang.Double fixedRate
The fixed rate for the fixing date, optional. A 5% rate will be expressed as 0.05.

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.

• #### observation

IborIndexObservation observation
The Ibor index observation to use to determine a rate for the reset period.
• #### weight

double weight
The weight to apply to this fixing.

If the averaging is unweighted, then all weights must be one.

• ### Class com.opengamma.strata.product.rate.IborAveragedRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### fixings

com.google.common.collect.ImmutableList<IborAveragedFixing> fixings
The list of fixings.

A fixing will be taken for each reset period, with the final rate being an average of the fixings.

• ### Class com.opengamma.strata.product.rate.IborInterpolatedRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### longObservation

IborIndexObservation longObservation
The longer Ibor index observation.

The rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.

• #### shortObservation

IborIndexObservation shortObservation
The shorter Ibor index observation.

The rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-1M'.

• ### Class com.opengamma.strata.product.rate.IborRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### observation

IborIndexObservation observation
The underlying index observation.
• ### Class com.opengamma.strata.product.rate.InflationEndInterpolatedRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endObservation

PriceIndexObservation endObservation
The observation at the end.

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.

• #### endSecondObservation

PriceIndexObservation endSecondObservation
The observation for interpolation at the end.

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.

• #### startIndexValue

double startIndexValue
The start index value.

The published index value of the start month.

• #### weight

double weight
The positive weight used when interpolating.

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).

• ### Class com.opengamma.strata.product.rate.InflationEndMonthRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endObservation

PriceIndexObservation endObservation
The observation at the end.

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.

• #### startIndexValue

double startIndexValue
The start index value.

The published index value of the start month.

• ### Class com.opengamma.strata.product.rate.InflationInterpolatedRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endObservation

PriceIndexObservation endObservation
The observation at the end.

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.

• #### endSecondObservation

PriceIndexObservation endSecondObservation
The observation for interpolation at the end.

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.

• #### startObservation

PriceIndexObservation startObservation
The observation at the start.

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.

• #### startSecondObservation

PriceIndexObservation startSecondObservation
The observation for interpolation at the start.

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.

• #### weight

double weight
The positive weight used when interpolating.

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).

• ### Class com.opengamma.strata.product.rate.InflationMonthlyRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endObservation

PriceIndexObservation endObservation
The observation at the end.

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.

• #### startObservation

PriceIndexObservation startObservation
The observation at the start.

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.

• ### Class com.opengamma.strata.product.rate.OvernightAveragedDailyRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The end date of the accrual period.

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.

• #### fixingCalendar

HolidayCalendar fixingCalendar
The resolved calendar that the index uses.
• #### index

OvernightIndex index
The Overnight index.

The rate to be paid is based on this index. It will be a well known market index such as 'GBP-SONIA'.

• #### startDate

java.time.LocalDate startDate
The start date of the accrual period.

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.

• ### Class com.opengamma.strata.product.rate.OvernightAveragedRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The fixing date associated with the end date of the accrual period.

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.

• #### fixingCalendar

HolidayCalendar fixingCalendar
The resolved calendar that the index uses.
• #### index

OvernightIndex index
The Overnight index.

The rate to be paid is based on this index. It will be a well known market index such as 'GBP-SONIA'.

• #### rateCutOffDays

int rateCutOffDays
The number of business days before the end of the period that the rate is cut off.

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.

• #### startDate

java.time.LocalDate startDate
The fixing date associated with the start date of the accrual period.

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.

• ### Class com.opengamma.strata.product.rate.OvernightCompoundedAnnualRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The fixing date associated with the end date of the accrual period.

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.

• #### fixingCalendar

HolidayCalendar fixingCalendar
The resolved calendar that the index uses.
• #### index

OvernightIndex index
The Overnight index.

The rate to be paid is based on this index.

• #### startDate

java.time.LocalDate startDate
The fixing date associated with the start date of the accrual period.

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.

• ### Class com.opengamma.strata.product.rate.OvernightCompoundedRateComputation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The fixing date associated with the end date of the accrual period.

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.

• #### fixingCalendar

HolidayCalendar fixingCalendar
The resolved calendar that the index uses.
• #### index

OvernightIndex index
The Overnight index.

The rate to be paid is based on this index. It will be a well known market index such as 'GBP-SONIA'.

• #### rateCutOffDays

int rateCutOffDays
The number of business days before the end of the period that the rate is cut off.

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.

• #### startDate

java.time.LocalDate startDate
The fixing date associated with the start date of the accrual period.

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.

• ## Package com.opengamma.strata.product.swap

• ### Class com.opengamma.strata.product.swap.FixedRateCalculation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count convention.

This is used to convert schedule period dates to a numerical value.

• #### finalStub

FixedRateStubCalculation finalStub
The final stub, optional.

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 futureValueNotional
The future value notional.

This property is used when the fixed leg of a swap has a future value notional. This is typically used for Brazilian swaps.

• #### initialStub

FixedRateStubCalculation initialStub
The initial stub, optional.

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.

• #### rate

ValueSchedule rate
The interest rate to be paid. A 5% rate will be expressed as 0.05.

This defines the rate as an initial amount and a list of adjustments. The rate is only permitted to change at accrual period boundaries.

• ### Class com.opengamma.strata.product.swap.FixedRateStubCalculation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixedRate

java.lang.Double fixedRate
The fixed rate to use in the stub. A 5% rate will be expressed as 0.05.

If the fixed rate is present, then knownAmount must not be present.

• #### knownAmount

CurrencyAmount knownAmount
The known amount to pay/receive for the stub.

If the known amount is present, then fixedRate must not be present.

• ### Class com.opengamma.strata.product.swap.FutureValueNotional extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCountDays

java.lang.Integer dayCountDays
The number of days in the calculation period.

This defines the number of days from the adjusted start date to the adjusted end date as calculated by the day count.

• #### value

java.lang.Double value
The amount.

The future value notional amount, derived as per the standard formula.

• #### valueDate

java.time.LocalDate valueDate
The value date.

This is the adjusted value date of the future value amount, which is the adjusted end date.

• ### Class com.opengamma.strata.product.swap.FxReset extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### observation

FxIndexObservation observation
The FX index 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.

• #### referenceCurrency

Currency referenceCurrency
The currency of the notional amount defined in the contract.

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.

• ### Class com.opengamma.strata.product.swap.FxResetCalculation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The offset of the FX reset fixing date from each adjusted accrual date.

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.

• #### fixingRelativeTo

FxResetFixingRelativeTo fixingRelativeTo
The base date that each FX reset fixing is made relative to, defaulted to 'PeriodStart'.

The FX reset fixing date is relative to either the start or end of each accrual period.

• #### index

FxIndex index
The FX index used to obtain the FX reset rate.

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.

• #### initialNotionalValue

java.lang.Double initialNotionalValue
The initial notional value, specified in the payment currency.

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.

• #### referenceCurrency

Currency referenceCurrency
The currency of the notional amount defined in the contract.

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.

• ### Class com.opengamma.strata.product.swap.FxResetNotionalExchange extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### notionalAmount

CurrencyAmount notionalAmount
The notional amount, positive if receiving, negative if paying.

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.

• #### observation

FxIndexObservation observation
The FX index 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.

• #### paymentDate

java.time.LocalDate paymentDate
The date that the payment is made.

Each payment event has a single payment date. This date has been adjusted to be a valid business day.

• ### Class com.opengamma.strata.product.swap.IborRateCalculation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### dayCount

DayCount dayCount
The day count convention.

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.

• #### finalStub

IborRateStubCalculation finalStub
The rate to be used in final stub, optional.

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.

• #### firstFixingDateOffset

DaysAdjustment firstFixingDateOffset
The offset of the first fixing date from the first adjusted reset date, optional.

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.

• #### firstRate

java.lang.Double firstRate
The rate of the first reset period, which may be a stub, optional. A 5% rate will be expressed as 0.05.

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.

• #### firstRegularRate

java.lang.Double firstRegularRate
The rate of the first regular reset period, optional. A 5% rate will be expressed as 0.05.

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.

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The offset of the fixing date from each adjusted reset date.

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.

• #### fixingRelativeTo

FixingRelativeTo fixingRelativeTo
The base date that each fixing is made relative to, defaulted to 'PeriodStart'.

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.

• #### gearing

ValueSchedule gearing
The gearing multiplier, optional.

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.

• #### index

IborIndex index
The Ibor index.

The rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.

• #### initialStub

IborRateStubCalculation initialStub
The rate to be used in initial stub, optional.

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.

• #### negativeRateMethod

NegativeRateMethod negativeRateMethod
The negative rate method, defaulted to 'AllowNegative'.

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.

• #### resetPeriods

ResetSchedule resetPeriods
The reset schedule, used when averaging rates, optional.

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.

ValueSchedule spread
The spread rate, with a 5% rate expressed as 0.05, optional.

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.

• ### Class com.opengamma.strata.product.swap.IborRateStubCalculation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixedRate

java.lang.Double fixedRate
The fixed rate to use in the stub. A 5% rate will be expressed as 0.05.

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.

• #### index

IborIndex index
The Ibor index to be used for the stub.

This will be used throughout the stub unless indexInterpolated is present.

If the index is present, then fixedRate and knownAmount must not be present.

• #### indexInterpolated

IborIndex indexInterpolated
The second Ibor index to be used for the stub, linearly interpolated.

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.

• #### knownAmount

CurrencyAmount knownAmount
The known amount to pay/receive for the stub.

If the known amount is present, then fixedRate, index and indexInterpolated must not be present.

• ### Class com.opengamma.strata.product.swap.ImmutableSwapIndex extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### active

boolean active
Whether the index is active, defaulted to true.

Over time some indices become inactive and are no longer produced. If this occurs, this flag will be set to false.

• #### fixingTime

java.time.LocalTime fixingTime
The fixing time.
• #### fixingZone

java.time.ZoneId fixingZone
The time-zone of the fixing time.
• #### name

java.lang.String name
The index name.
• #### template

FixedIborSwapTemplate template
The template for creating Fixed-Ibor swap.
• ### Class com.opengamma.strata.product.swap.InflationRateCalculation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### firstIndexValue

java.lang.Double firstIndexValue
The initial value of the index, optional.

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.

• #### gearing

ValueSchedule gearing
The gearing multiplier, optional.

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.

• #### index

PriceIndex index
The index of prices.

The pay-off is computed based on this index The most common implementations are provided in PriceIndices.

• #### indexCalculationMethod

PriceIndexCalculationMethod indexCalculationMethod
Reference price index calculation method.

This specifies how the reference index calculation occurs.

• #### lag

java.time.Period lag
The positive period between the price index and the accrual date, typically a number of months.

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.

• ### Class com.opengamma.strata.product.swap.KnownAmountNotionalSwapPaymentPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The end date of the payment period.

This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### fxResetObservation

FxIndexObservation fxResetObservation
The FX reset definition, optional.

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.

• #### notionalAmount

CurrencyAmount notionalAmount
The notional amount, positive if receiving, negative if paying.

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.

• #### payment

Payment payment
The payment.

This includes the payment date and amount. If the schedule adjusts for business days, then the date is the adjusted date.

• #### startDate

java.time.LocalDate startDate
The start date of the payment period.

This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• ### Class com.opengamma.strata.product.swap.KnownAmountSwapLeg extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualSchedule

PeriodicSchedule accrualSchedule
The accrual period schedule.

This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the swap.

• #### amount

ValueSchedule amount
The known amount schedule.

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 currency
The currency of the swap leg.

This is the currency of the known payments.

• #### paymentSchedule

PaymentSchedule paymentSchedule
The payment period schedule.

This is used to define the payment periods, including any compounding. The payment period dates are based on the accrual schedule.

PayReceive payReceive
Whether the leg is pay or receive.

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.

• ### Class com.opengamma.strata.product.swap.KnownAmountSwapPaymentPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The end date of the payment period.

This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### payment

Payment payment
The payment.

This includes the payment date and amount. If the schedule adjusts for business days, then the date is the adjusted date.

• #### startDate

java.time.LocalDate startDate
The start date of the payment period.

This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• ### Class com.opengamma.strata.product.swap.NotionalExchange extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### payment

Payment payment
The notional exchange 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.

• ### Class com.opengamma.strata.product.swap.NotionalSchedule extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### amount

ValueSchedule amount
The notional 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.

• #### currency

Currency currency
The currency of the swap leg associated with the notional.

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.

• #### finalExchange

boolean finalExchange
The flag indicating whether to exchange the final notional.

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.

• #### fxReset

FxResetCalculation fxReset
The FX reset definition, optional.

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.

• #### initialExchange

boolean initialExchange
The flag indicating whether to exchange the initial notional.

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.

• #### intermediateExchange

boolean intermediateExchange
The flag indicating whether to exchange the differences in the notional during the lifetime of the swap.

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.

• ### Class com.opengamma.strata.product.swap.OvernightRateCalculation extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualMethod

OvernightAccrualMethod accrualMethod
The method of accruing overnight interest, defaulted to 'Compounded'.

Two methods of accrual are supported - compounding and averaging. Averaging is primarily related to the 'USD-FED-FUND' index.

• #### dayCount

DayCount dayCount
The day count convention.

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.

• #### gearing

ValueSchedule gearing
The gearing multiplier, optional.

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.

• #### index

OvernightIndex index
The Overnight index.

The rate to be paid is based on this index It will be a well known market index such as 'GBP-SONIA'.

• #### negativeRateMethod

NegativeRateMethod negativeRateMethod
The negative rate method, defaulted to 'AllowNegative'.

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.

• #### rateCutOffDays

int rateCutOffDays
The number of business days before the end of the period that the rate is cut off, defaulted to zero.

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 spread
The spread rate, optional. A 5% rate will be expressed as 0.05.

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.

• ### Class com.opengamma.strata.product.swap.PaymentSchedule extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

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.

• #### compoundingMethod

CompoundingMethod compoundingMethod
The compounding method to use when there is more than one accrual period, defaulted to 'None'.

Compounding is used when combining accrual periods.

• #### firstRegularStartDate

java.time.LocalDate firstRegularStartDate
The optional start date of the first regular payment schedule period, which is the end date of the initial stub.

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.

• #### lastRegularEndDate

java.time.LocalDate lastRegularEndDate
The optional end date of the last regular payment schedule period, which is the start date of the final stub.

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.

• #### paymentDateOffset

DaysAdjustment paymentDateOffset
The offset of payment from the base calculation period date.

The offset is applied to the unadjusted date specified by paymentRelativeTo. Offset can be based on calendar days or business days.

• #### paymentFrequency

Frequency paymentFrequency
The periodic frequency of payments.

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.

• #### paymentRelativeTo

PaymentRelativeTo paymentRelativeTo
The base date that each payment is made relative to, defaulted to 'PeriodEnd'.

The payment date is relative to either the start or end of the payment period.

• ### Class com.opengamma.strata.product.swap.RateAccrualPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### endDate

java.time.LocalDate endDate
The end date of the accrual period.

This is the last accrual date in the period. If the schedule adjusts for business days, then this is the adjusted date.

• #### gearing

double gearing
The gearing multiplier, defaulted to 1.

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.

• #### negativeRateMethod

NegativeRateMethod negativeRateMethod
The negative rate method, defaulted to 'AllowNegative'.

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.

• #### rateComputation

RateComputation rateComputation
The rate to be computed.

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 spread
The spread rate, defaulted to 0. A 5% rate will be expressed as 0.05.

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.

• #### startDate

java.time.LocalDate startDate
The start date of the accrual period.

This is the first accrual date in the period. If the schedule adjusts for business days, then this is the adjusted date.

java.time.LocalDate unadjustedEndDate

When building, this will default to the end date if not specified.

java.time.LocalDate unadjustedStartDate

When building, this will default to the start date if not specified.

• #### yearFraction

double yearFraction
The year fraction that the accrual period represents.

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.

• ### Class com.opengamma.strata.product.swap.RateCalculationSwapLeg extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualSchedule

PeriodicSchedule accrualSchedule
The accrual schedule.

This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the swap.

• #### calculation

RateCalculation calculation
The interest rate accrual calculation.

Different kinds of swap leg are determined by the subclass used here. See FixedRateCalculation, IborRateCalculation and OvernightRateCalculation.

• #### notionalSchedule

NotionalSchedule notionalSchedule
The notional schedule.

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.

• #### paymentSchedule

PaymentSchedule paymentSchedule
The payment schedule.

This is used to define the payment periods, including any compounding. The payment period dates are based on the accrual schedule.

PayReceive payReceive
Whether the leg is pay or receive.

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.

• ### Class com.opengamma.strata.product.swap.RatePaymentPeriod extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### accrualPeriods

com.google.common.collect.ImmutableList<RateAccrualPeriod> accrualPeriods
The accrual periods that combine to form the payment period.

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.

• #### compoundingMethod

CompoundingMethod compoundingMethod
The compounding method to use when there is more than one accrual period, default is 'None'.

Compounding is used when combining accrual periods.

• #### currency

Currency currency
The primary currency of the payment period.

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.

• #### dayCount

DayCount dayCount
The day count convention.

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.

• #### fxReset

FxReset fxReset
The FX reset definition, optional.

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.

• #### notional

double notional
The notional amount, positive if receiving, negative if paying.

The notional amount applicable during the period. The currency of the notional is specified by currency unless there is the fxReset property is present.

• #### paymentDate

java.time.LocalDate paymentDate
The date that payment occurs.

The date that payment is made for the accrual periods. If the schedule adjusts for business days, then this is the adjusted date.

• ### Class com.opengamma.strata.product.swap.RatePeriodSwapLeg extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### finalExchange

boolean finalExchange
The flag indicating whether to exchange the final notional.

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.

• #### initialExchange

boolean initialExchange
The flag indicating whether to exchange the initial notional.

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.

• #### intermediateExchange

boolean intermediateExchange
The flag indicating whether to exchange the differences in the notional during the lifetime of the swap.

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.

BusinessDayAdjustment paymentBusinessDayAdjustment
The business day date adjustment to be applied to each payment date, default is to apply no adjustment.

The business day adjustment is applied to period, exchange and event payment dates.

• #### paymentEvents

com.google.common.collect.ImmutableList<SwapPaymentEvent> paymentEvents
The additional payment events that are associated with the swap leg.

Payment events include fees. Notional exchange may also be specified here instead of via the dedicated fields.

• #### paymentPeriods

com.google.common.collect.ImmutableList<RatePaymentPeriod> paymentPeriods
The payment periods that combine to form the swap leg.

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.

PayReceive payReceive
Whether the leg is pay or receive.

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.

• #### type

SwapLegType type
The type of the leg, such as Fixed or Ibor.

This provides a high level categorization of the swap leg.

• ### Class com.opengamma.strata.product.swap.ResetSchedule extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

BusinessDayAdjustment businessDayAdjustment

This adjustment is applied to each reset date to ensure it is a valid business day.

• #### resetFrequency

Frequency resetFrequency
The periodic frequency of reset dates.

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.

• #### resetMethod

IborRateResetMethod resetMethod
The rate reset method, defaulted to 'Unweighted'.

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.

• ### Class com.opengamma.strata.product.swap.ResolvedSwap extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### legs

com.google.common.collect.ImmutableList<ResolvedSwapLeg> legs
The legs of the swap.

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.

• ### Class com.opengamma.strata.product.swap.ResolvedSwapLeg extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialization Methods

private java.lang.Object readResolve()
• ### Serialized Fields

• #### paymentEvents

com.google.common.collect.ImmutableList<SwapPaymentEvent> paymentEvents
The payment events that are associated with the swap leg.

Payment events include notional exchange and fees.

• #### paymentPeriods

com.google.common.collect.ImmutableList<SwapPaymentPeriod> paymentPeriods
The payment periods that combine to form the swap leg.

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.

PayReceive payReceive
Whether the leg is pay or receive.

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.

• #### type

SwapLegType type
The type of the leg, such as Fixed or Ibor.

This provides a high level categorization of the swap leg.

• ### Class com.opengamma.strata.product.swap.ResolvedSwapTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

ResolvedSwap product
The resolved Swap product.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.swap.Swap extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### legs

com.google.common.collect.ImmutableList<SwapLeg> legs
The legs of the swap.

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.

• ### Class com.opengamma.strata.product.swap.SwapTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

• #### product

Swap product
The swap product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.

• ## Package com.opengamma.strata.product.swap.type

• ### Class com.opengamma.strata.product.swap.type.FixedIborSwapTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

FixedIborSwapConvention convention
The market convention of the swap.
• #### periodToStart

java.time.Period periodToStart
The period between the spot value date and the start date.

This is often zero, but can be greater if the swap if forward starting. This must not be negative.

• #### tenor

Tenor tenor
The tenor of the swap.

This is the period from the first accrual date to the last accrual date.

• ### Class com.opengamma.strata.product.swap.type.FixedInflationSwapTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

FixedInflationSwapConvention convention
The market convention of the swap.
• #### tenor

Tenor tenor
The tenor of the swap.

This is the period from the first accrual date to the last accrual date.

• ### Class com.opengamma.strata.product.swap.type.FixedOvernightSwapTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

FixedOvernightSwapConvention convention
The market convention of the swap.
• #### periodToStart

java.time.Period periodToStart
The period between the spot value date and the start date.

This is often zero, but can be greater if the swap if forward starting. This must not be negative.

• #### tenor

Tenor tenor
The tenor of the swap.

This is the period from the first accrual date to the last accrual date.

• ### Class com.opengamma.strata.product.swap.type.FixedRateSwapLegConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

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.

• #### accrualFrequency

Frequency accrualFrequency
The periodic frequency of accrual.

Interest will be accrued over periods at the specified periodic frequency, such as every 3 months.

• #### accrualMethod

FixedAccrualMethod accrualMethod
The accrual method using the fixed rate, defaulted to 'None'.

This is normally 'None', but can be set forBrazilian swaps.

• #### compoundingMethod

CompoundingMethod compoundingMethod
The compounding method to use when there is more than one accrual period in each payment period, optional with defaulting getter.

Compounding is used when combining accrual periods.

This will default to 'None' if not specified.

• #### currency

Currency currency
The leg currency.

This is the currency of the swap leg and the currency that payment is made in.

• #### dayCount

DayCount dayCount
The day count convention applicable.

This is used to convert schedule period dates to a numerical value.

BusinessDayAdjustment endDateBusinessDayAdjustment
The business day adjustment to apply to the end date, optional with defaulting getter.

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.

• #### paymentDateOffset

DaysAdjustment paymentDateOffset
The offset of payment from the base date, optional with defaulting getter.

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.

• #### paymentFrequency

Frequency paymentFrequency
The periodic frequency of payments, optional with defaulting getter.

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.

• #### rollConvention

RollConvention rollConvention
The convention defining how to roll dates, optional with defaulting getter.

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.

BusinessDayAdjustment startDateBusinessDayAdjustment
The business day adjustment to apply to the start date, optional with defaulting getter.

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.

• #### stubConvention

StubConvention stubConvention
The convention defining how to handle stubs, optional with defaulting getter.

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.

• ### Class com.opengamma.strata.product.swap.type.IborIborSwapTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

IborIborSwapConvention convention
The market convention of the swap.
• #### periodToStart

java.time.Period periodToStart
The period between the spot value date and the start date.

This is often zero, but can be greater if the swap if forward starting. This must not be negative.

• #### tenor

Tenor tenor
The tenor of the swap.

This is the period from the first accrual date to the last accrual date.

• ### Class com.opengamma.strata.product.swap.type.IborRateSwapLegConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

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.

• #### accrualFrequency

Frequency accrualFrequency
The periodic frequency of accrual.

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.

• #### compoundingMethod

CompoundingMethod compoundingMethod
The compounding method to use when there is more than one accrual period in each payment period, optional with defaulting getter.

Compounding is used when combining accrual periods.

This will default to 'None' if not specified.

• #### currency

Currency currency
The leg currency, optional with defaulting getter.

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 dayCount
The day count convention applicable, optional with defaulting getter.

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.

BusinessDayAdjustment endDateBusinessDayAdjustment
The business day adjustment to apply to the end date, optional with defaulting getter.

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.

• #### fixingDateOffset

DaysAdjustment fixingDateOffset
The offset of the fixing date from each adjusted reset date.

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.

• #### fixingRelativeTo

FixingRelativeTo fixingRelativeTo
The base date that each fixing is made relative to, optional with defaulting getter.

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.

• #### index

IborIndex index
The Ibor 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'.

• #### notionalExchange

boolean notionalExchange
The flag indicating whether to exchange the notional.

If 'true', the notional there is both an initial exchange and a final exchange of notional.

This will default to 'false' if not specified.

• #### paymentDateOffset

DaysAdjustment paymentDateOffset
The offset of payment from the base date, optional with defaulting getter.

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.

• #### paymentFrequency

Frequency paymentFrequency
The periodic frequency of payments, optional with defaulting getter.

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.

• #### rollConvention

RollConvention rollConvention
The convention defining how to roll dates, optional with defaulting getter.

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.

BusinessDayAdjustment startDateBusinessDayAdjustment
The business day adjustment to apply to the start date, optional with defaulting getter.

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.

• #### stubConvention

StubConvention stubConvention
The convention defining how to handle stubs, optional with defaulting getter.

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.

• ### Class com.opengamma.strata.product.swap.type.ImmutableFixedIborSwapConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixedLeg

FixedRateSwapLegConvention fixedLeg
The market convention of the fixed leg.
• #### floatingLeg

IborRateSwapLegConvention floatingLeg
The market convention of the floating leg.
• #### name

java.lang.String name
The convention name, such as 'USD-FIXED-6M-LIBOR-3M'.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".

• ### Class com.opengamma.strata.product.swap.type.ImmutableFixedInflationSwapConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixedLeg

FixedRateSwapLegConvention fixedLeg
The market convention of the fixed leg.
• #### floatingLeg

InflationRateSwapLegConvention floatingLeg
The market convention of the floating leg.
• #### name

java.lang.String name
The convention name, such as 'USD-FIXED-6M-LIBOR-3M'.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".

• ### Class com.opengamma.strata.product.swap.type.ImmutableFixedOvernightSwapConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### fixedLeg

FixedRateSwapLegConvention fixedLeg
The market convention of the fixed leg.
• #### floatingLeg

OvernightRateSwapLegConvention floatingLeg
The market convention of the floating leg.
• #### name

java.lang.String name
The convention name, such as 'USD-FIXED-TERM-FED-FUND-OIS'.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".

• ### Class com.opengamma.strata.product.swap.type.ImmutableIborIborSwapConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### flatLeg

IborRateSwapLegConvention flatLeg
The market convention of the floating leg that does not have the spread applied.
• #### name

java.lang.String name
The convention name, such as 'USD-LIBOR-3M-LIBOR-6M'.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".

IborRateSwapLegConvention spreadLeg
The market convention of the floating leg that has the spread applied.

The spread is the market price of the instrument. It is added to the observed interest rate.

• ### Class com.opengamma.strata.product.swap.type.ImmutableOvernightIborSwapConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### iborLeg

IborRateSwapLegConvention iborLeg
The market convention of the floating leg.
• #### name

java.lang.String name
The convention name, such as 'USD-FED-FUND-AA-LIBOR-3M'.
• #### overnightLeg

OvernightRateSwapLegConvention overnightLeg
The market convention of the floating leg.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".

• ### Class com.opengamma.strata.product.swap.type.ImmutableThreeLegBasisSwapConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### flatFloatingLeg

IborRateSwapLegConvention flatFloatingLeg
The market convention of the floating leg that does not have the spread applied.
• #### name

java.lang.String name
The convention name.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".

IborRateSwapLegConvention spreadFloatingLeg
The market convention of the floating leg to which the spread leg is added.

FixedRateSwapLegConvention spreadLeg
The market convention of the fixed leg for the spread.

This is to be applied to floatingSpreadLeg.

• ### Class com.opengamma.strata.product.swap.type.ImmutableXCcyIborIborSwapConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### flatLeg

IborRateSwapLegConvention flatLeg
The market convention of the floating leg that does not have the spread applied.
• #### name

java.lang.String name
The convention name, such as 'EUR-EURIBOR-3M-USD-LIBOR-3M'.
• #### spotDateOffset

DaysAdjustment spotDateOffset
The offset of the spot value date from the trade date.

The offset is applied to the trade date to find the start date. A typical value is "plus 2 business days".

IborRateSwapLegConvention spreadLeg
The market convention of the floating leg that has the spread applied.

The spread is the market price of the instrument. It is added to the observed interest rate.

• ### Class com.opengamma.strata.product.swap.type.InflationRateSwapLegConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

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.

• #### index

PriceIndex index
The Price 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'.

• #### indexCalculationMethod

PriceIndexCalculationMethod indexCalculationMethod
Reference price index calculation method.

This specifies how the reference index calculation occurs.

This will default to 'Monthly' if not specified.

• #### lag

java.time.Period lag
The positive period between the price index and the accrual date, typically a number of months.

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.

• #### notionalExchange

boolean notionalExchange
The flag indicating whether to exchange the notional.

If 'true', the notional there is both an initial exchange and a final exchange of notional.

This will default to 'false' if not specified.

• #### paymentDateOffset

DaysAdjustment paymentDateOffset
The offset of payment from the base date, optional with defaulting getter.

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.

• ### Class com.opengamma.strata.product.swap.type.OvernightIborSwapTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

OvernightIborSwapConvention convention
The market convention of the swap.
• #### periodToStart

java.time.Period periodToStart
The period between the spot value date and the start date.

This is often zero, but can be greater if the swap if forward starting. This must not be negative.

• #### tenor

Tenor tenor
The tenor of the swap.

This is the period from the first accrual date to the last accrual date.

• ### Class com.opengamma.strata.product.swap.type.OvernightRateSwapLegConvention extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

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.

• #### accrualFrequency

Frequency accrualFrequency
The periodic frequency of accrual.

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.

• #### accrualMethod

OvernightAccrualMethod accrualMethod
The method of accruing overnight interest, defaulted to 'Compounded'.

Two methods of accrual are supported - 'Compounded' and 'Averaged'. Averaging is primarily related to the 'USD-FED-FUND' index.

• #### compoundingMethod

CompoundingMethod compoundingMethod
The compounding method to use when there is more than one accrual period in each payment period, optional with defaulting getter.

Compounding is used when combining accrual periods.

This will default to 'None' if not specified.

• #### currency

Currency currency
The leg currency, optional with defaulting getter.

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 dayCount
The day count convention applicable, optional with defaulting getter.

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.

BusinessDayAdjustment endDateBusinessDayAdjustment
The business day adjustment to apply to the end date, optional with defaulting getter.

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.

• #### index

OvernightIndex index
The Overnight index.

The floating rate to be paid is based on this index It will be a well known market index such as 'GBP-SONIA'.

• #### paymentDateOffset

DaysAdjustment paymentDateOffset
The offset of payment from the base date, optional with defaulting getter.

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.

• #### paymentFrequency

Frequency paymentFrequency
The periodic frequency of payments, optional with defaulting getter.

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.

• #### rateCutOffDays

java.lang.Integer rateCutOffDays
The number of business days before the end of the period that the rate is cut off.

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.

• #### rollConvention

RollConvention rollConvention
The convention defining how to roll dates, optional with defaulting getter.

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.

BusinessDayAdjustment startDateBusinessDayAdjustment
The business day adjustment to apply to the start date, optional with defaulting getter.

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.

• #### stubConvention

StubConvention stubConvention
The convention defining how to handle stubs, optional with defaulting getter.

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.

• ### Class com.opengamma.strata.product.swap.type.ThreeLegBasisSwapTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

ThreeLegBasisSwapConvention convention
The market convention of the swap.
• #### periodToStart

java.time.Period periodToStart
The period between the spot value date and the start date.

This is often zero, but can be greater if the swap if forward starting. This must not be negative.

• #### tenor

Tenor tenor
The tenor of the swap.

This is the period from the first accrual date to the last accrual date.

• ### Class com.opengamma.strata.product.swap.type.XCcyIborIborSwapTemplate extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### convention

XCcyIborIborSwapConvention convention
The market convention of the swap.
• #### periodToStart

java.time.Period periodToStart
The period between the spot value date and the start date.

This is often zero, but can be greater if the swap if forward starting. This must not be negative.

• #### tenor

Tenor tenor
The tenor of the swap.

This is the period from the first accrual date to the last accrual date.

• ## Package com.opengamma.strata.product.swaption

• ### Class com.opengamma.strata.product.swaption.CashSwaptionSettlement extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### method

CashSwaptionSettlementMethod method
The cash settlement method.

The settlement rate of the cash settled swaption is specified by respective cash settlement methods.

• #### settlementDate

java.time.LocalDate settlementDate
The settlement date.

The payoff of the option is settled at this date.

• ### Class com.opengamma.strata.product.swaption.PhysicalSwaptionSettlement extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Class com.opengamma.strata.product.swaption.ResolvedSwaption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### expiry

java.time.ZonedDateTime expiry
The expiry date-time of the option.

The option is European, and can only be exercised on the expiry date.

• #### longShort

LongShort longShort
Whether the option is long or short.

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 swaptionSettlement
Settlement method.

The settlement of the option is specified by SwaptionSettlement.

• #### underlying

ResolvedSwap underlying
The underlying swap.

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.

• ### Class com.opengamma.strata.product.swaption.ResolvedSwaptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

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.

• #### product

ResolvedSwaption product
The resolved Swaption product.

The product captures the contracted financial details of the trade.

• ### Class com.opengamma.strata.product.swaption.Swaption extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### expiryDate

AdjustableDate expiryDate
The expiry date of the option.

The option is European, and can only be exercised on the expiry date.

This date is typically set to be a valid business day. However, the businessDayAdjustment property may be set to provide a rule for adjustment.

• #### expiryTime

java.time.LocalTime expiryTime
The expiry time of the option.

The expiry time is related to the expiry date and time-zone.

• #### expiryZone

java.time.ZoneId expiryZone
The time-zone of the expiry time.

The expiry time-zone is related to the expiry date and time.

• #### longShort

LongShort longShort
Whether the option is long or short.

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 swaptionSettlement
Settlement method.

The settlement of the option is specified by SwaptionSettlement.

• #### underlying

Swap underlying
The underlying swap.

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.

• ### Class com.opengamma.strata.product.swaption.SwaptionTrade extends java.lang.Object implements Serializable

serialVersionUID:
1L
• ### Serialized Fields

• #### info

TradeInfo info

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.

• #### product

Swaption product
The swaption product that was agreed when the trade occurred.

The product captures the contracted financial details of the trade.