Class XCcyIborIborSwapTemplate
- java.lang.Object
-
- com.opengamma.strata.product.swap.type.XCcyIborIborSwapTemplate
-
- All Implemented Interfaces:
TradeTemplate
,Serializable
,org.joda.beans.Bean
,org.joda.beans.ImmutableBean
public final class XCcyIborIborSwapTemplate extends Object implements TradeTemplate, org.joda.beans.ImmutableBean, Serializable
A template for creating cross-currency Ibor-Ibor swap trades.This defines almost all the data necessary to create a Ibor-Ibor cross-currency
SwapTrade
. The trade date, notional and spread are required to complete the template and create the trade. As such, it is often possible to get a market price for a trade based on the template. The market price is typically quoted as a spread on one leg.The template references four dates.
- Trade date, the date that the trade is agreed
- Spot date, the base for date calculations, typically 2 business days after the trade date
- Start date, the date on which accrual starts
- End date, the date on which accrual ends
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
XCcyIborIborSwapTemplate.Builder
The bean-builder forXCcyIborIborSwapTemplate
.static class
XCcyIborIborSwapTemplate.Meta
The meta-bean forXCcyIborIborSwapTemplate
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static XCcyIborIborSwapTemplate.Builder
builder()
Returns a builder used to create an instance of the bean.SwapTrade
createTrade(LocalDate tradeDate, BuySell buySell, double notionalSpreadLeg, double notionalFlatLeg, double spread, ReferenceData refData)
Creates a trade based on this template.boolean
equals(Object obj)
XCcyIborIborSwapConvention
getConvention()
Gets the market convention of the swap.CurrencyPair
getCurrencyPair()
Gets the currency pair of the template.Period
getPeriodToStart()
Gets the period between the spot value date and the start date.Tenor
getTenor()
Gets the tenor of the swap.int
hashCode()
static XCcyIborIborSwapTemplate.Meta
meta()
The meta-bean forXCcyIborIborSwapTemplate
.XCcyIborIborSwapTemplate.Meta
metaBean()
static XCcyIborIborSwapTemplate
of(Tenor tenor, XCcyIborIborSwapConvention convention)
Obtains a template based on the specified tenor and convention.static XCcyIborIborSwapTemplate
of(Period periodToStart, Tenor tenor, XCcyIborIborSwapConvention convention)
Obtains a template based on the specified period, tenor and convention.XCcyIborIborSwapTemplate.Builder
toBuilder()
Returns a builder that allows this bean to be mutated.String
toString()
-
-
-
Method Detail
-
of
public static XCcyIborIborSwapTemplate of(Tenor tenor, XCcyIborIborSwapConvention convention)
Obtains a template based on the specified tenor and convention.The swap will start on the spot date.
- Parameters:
tenor
- the tenor of the swapconvention
- the market convention- Returns:
- the template
-
of
public static XCcyIborIborSwapTemplate of(Period periodToStart, Tenor tenor, XCcyIborIborSwapConvention convention)
Obtains a template based on the specified period, tenor and convention.The period from the spot date to the start date is specified. The tenor from the start date to the end date is also specified.
- Parameters:
periodToStart
- the period between the spot date and the start datetenor
- the tenor of the swapconvention
- the market convention- Returns:
- the template
-
getCurrencyPair
public CurrencyPair getCurrencyPair()
Gets the currency pair of the template.- Returns:
- the currency pair
-
createTrade
public SwapTrade createTrade(LocalDate tradeDate, BuySell buySell, double notionalSpreadLeg, double notionalFlatLeg, double spread, ReferenceData refData)
Creates a trade based on this template.This returns a trade based on the specified trade date.
The notional is unsigned, with buy/sell determining the direction of the trade. If buying the swap, the rate of the flat leg is received, with the rate of the spread leg being paid. If selling the swap, the opposite occurs.
- Parameters:
tradeDate
- the date of the tradebuySell
- the buy/sell flagnotionalSpreadLeg
- the notional amount for the spread legnotionalFlatLeg
- the notional amount for the flat legspread
- the spread, typically derived from the marketrefData
- the reference data, used to resolve the trade dates- Returns:
- the trade
- Throws:
ReferenceDataNotFoundException
- if an identifier cannot be resolved in the reference data
-
meta
public static XCcyIborIborSwapTemplate.Meta meta()
The meta-bean forXCcyIborIborSwapTemplate
.- Returns:
- the meta-bean, not null
-
builder
public static XCcyIborIborSwapTemplate.Builder builder()
Returns a builder used to create an instance of the bean.- Returns:
- the builder, not null
-
metaBean
public XCcyIborIborSwapTemplate.Meta metaBean()
- Specified by:
metaBean
in interfaceorg.joda.beans.Bean
-
getPeriodToStart
public Period getPeriodToStart()
Gets 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.
- Returns:
- the value of the property, not null
-
getTenor
public Tenor getTenor()
Gets the tenor of the swap.This is the period from the first accrual date to the last accrual date.
- Returns:
- the value of the property, not null
-
getConvention
public XCcyIborIborSwapConvention getConvention()
Gets the market convention of the swap.- Returns:
- the value of the property, not null
-
toBuilder
public XCcyIborIborSwapTemplate.Builder toBuilder()
Returns a builder that allows this bean to be mutated.- Returns:
- the mutable builder, not null
-
-