public final class CmsPeriod extends Object implements org.joda.beans.ImmutableBean, Serializable
This represents a single payment period within a CMS leg.
This class specifies the data necessary to calculate the value of the period.
The payment period contains the unique accrual period.
The value of the period is based on the observed value of SwapIndex
.
The payment is a CMS coupon, CMS caplet or CMS floorlet.
The pay-offs are, for a swap index on the fixingDate of 'S' and an year fraction 'a'
CMS Coupon: a * S
CMS Caplet: a * (S-K)^+ ; K=caplet
CMS Floorlet: a * (K-S)^+ ; K=floorlet
If caplet
(floorlet
) is not null, the payment is a caplet (floorlet).
If both of caplet
and floorlet
are null, this class represents a CMS coupon payment.
Thus at least one of the fields must be null.
A CmsPeriod
is bound to data that changes over time, such as holiday calendars.
If the data changes, such as the addition of a new holiday, the resolved form will not be updated.
Care must be taken when placing the resolved form in a cache or persistence layer.
Modifier and Type | Class and Description |
---|---|
static class |
CmsPeriod.Builder
The bean-builder for
CmsPeriod . |
static class |
CmsPeriod.Meta
The meta-bean for
CmsPeriod . |
Modifier and Type | Method and Description |
---|---|
static CmsPeriod.Builder |
builder()
Returns a builder used to create an instance of the bean.
|
boolean |
equals(Object obj) |
OptionalDouble |
getCaplet()
Gets the optional caplet strike.
|
CmsPeriodType |
getCmsPeriodType()
Obtains the type of the CMS period.
|
Currency |
getCurrency()
Gets the primary currency of the payment period.
|
DayCount |
getDayCount()
Gets the day count of the period.
|
LocalDate |
getEndDate()
Gets the end date of the payment period.
|
LocalDate |
getFixingDate()
Gets the date of the index fixing.
|
OptionalDouble |
getFloorlet()
Gets the optional floorlet strike.
|
SwapIndex |
getIndex()
Gets the swap index.
|
double |
getNotional()
Gets the notional amount, positive if receiving, negative if paying.
|
LocalDate |
getPaymentDate()
Gets the date that payment occurs.
|
LocalDate |
getStartDate()
Gets the start date of the payment period.
|
double |
getStrike()
Obtains the strike value.
|
LocalDate |
getUnadjustedEndDate()
Gets the unadjusted end date.
|
LocalDate |
getUnadjustedStartDate()
Gets the unadjusted start date.
|
ResolvedSwap |
getUnderlyingSwap()
Gets the underlying swap.
|
double |
getYearFraction()
Gets the year fraction that the accrual period represents.
|
int |
hashCode() |
static CmsPeriod.Meta |
meta()
The meta-bean for
CmsPeriod . |
CmsPeriod.Meta |
metaBean() |
CmsPeriod.Builder |
toBuilder()
Returns a builder that allows this bean to be mutated.
|
CmsPeriod |
toCouponEquivalent()
Return the CMS coupon equivalent to the period.
|
String |
toString() |
public CmsPeriodType getCmsPeriodType()
The period type is caplet, floorlet or coupon.
public double getStrike()
If the CMS period type is coupon, 0 is returned.
public CmsPeriod toCouponEquivalent()
For cap or floor the result is the coupon with the same dates and index but with no cap or floor strike.
public static CmsPeriod.Meta meta()
CmsPeriod
.public static CmsPeriod.Builder builder()
public CmsPeriod.Meta metaBean()
metaBean
in interface org.joda.beans.Bean
public Currency getCurrency()
The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.
public double getNotional()
The notional amount applicable during the period.
The currency of the notional is specified by currency
.
public LocalDate getStartDate()
This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.
public LocalDate getEndDate()
This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.
public LocalDate getUnadjustedStartDate()
The start date before any business day adjustment is applied.
When building, this will default to the start date if not specified.
public LocalDate getUnadjustedEndDate()
The end date before any business day adjustment is applied.
When building, this will default to the end date if not specified.
public double getYearFraction()
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.
public LocalDate getPaymentDate()
If the schedule adjusts for business days, then this is the adjusted date.
public LocalDate getFixingDate()
This is an adjusted date with any business day applied.
public OptionalDouble getCaplet()
This defines the strike value of a caplet.
If the period is not a caplet, this field will be absent.
public OptionalDouble getFloorlet()
This defines the strike value of a floorlet.
If the period is not a floorlet, this field will be absent.
public DayCount getDayCount()
public SwapIndex getIndex()
The swap rate to be paid is the observed value of this index.
public ResolvedSwap getUnderlyingSwap()
The interest rate swap for which the swap rate is referred.
public CmsPeriod.Builder toBuilder()
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.