## Class DiscountingRatePaymentPeriodPricer

• java.lang.Object
• com.opengamma.strata.pricer.impl.swap.DiscountingRatePaymentPeriodPricer
• All Implemented Interfaces:
SwapPaymentPeriodPricer<RatePaymentPeriod>

public class DiscountingRatePaymentPeriodPricer
extends Object
implements SwapPaymentPeriodPricer<RatePaymentPeriod>
Pricer implementation for swap payment periods based on a rate.

The value of a payment period is calculated by combining the value of each accrual period. Where necessary, the accrual periods are compounded.

• ### Field Summary

Fields
Modifier and Type Field Description
static DiscountingRatePaymentPeriodPricer DEFAULT
Default implementation.
• ### Constructor Summary

Constructors
Constructor Description
DiscountingRatePaymentPeriodPricer​(RateComputationFn<RateComputation> rateComputationFn)
Creates an instance.
• ### Method Summary

All Methods
Modifier and Type Method Description
double accruedInterest​(RatePaymentPeriod period, RatesProvider provider)
Calculates the accrued interest since the last payment.
MultiCurrencyAmount currencyExposure​(RatePaymentPeriod period, RatesProvider provider)
Calculates the currency exposure of a single payment period.
double currentCash​(RatePaymentPeriod period, RatesProvider provider)
Calculates the current cash of a single payment period.
void explainPresentValue​(RatePaymentPeriod paymentPeriod, RatesProvider provider, ExplainMapBuilder builder)
Explains the present value of a single payment period.
double forecastValue​(RatePaymentPeriod period, RatesProvider provider)
Calculates the forecast value of a single payment period.
PointSensitivityBuilder forecastValueSensitivity​(RatePaymentPeriod period, RatesProvider provider)
Calculates the forecast value sensitivity of a single payment period.
double presentValue​(RatePaymentPeriod period, RatesProvider provider)
Calculates the present value of a single payment period.
PointSensitivityBuilder presentValueSensitivity​(RatePaymentPeriod period, RatesProvider provider)
Calculates the present value sensitivity of a single payment period.
double pvbp​(RatePaymentPeriod paymentPeriod, RatesProvider provider)
Calculates the present value of a basis point of a period.
PointSensitivityBuilder pvbpSensitivity​(RatePaymentPeriod paymentPeriod, RatesProvider provider)
Calculates the present value of a basis point sensitivity of a single payment period.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Field Detail

• #### DEFAULT

public static final DiscountingRatePaymentPeriodPricer DEFAULT
Default implementation.
• ### Constructor Detail

• #### DiscountingRatePaymentPeriodPricer

public DiscountingRatePaymentPeriodPricer​(RateComputationFn<RateComputation> rateComputationFn)
Creates an instance.
Parameters:
rateComputationFn - the rate computation function
• ### Method Detail

• #### presentValue

public double presentValue​(RatePaymentPeriod period,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the present value of a single payment period.

The amount is expressed in the currency of the period. This returns the value of the period with discounting.

The payment date of the period should not be in the past. The result of this method for payment dates in the past is undefined.

Specified by:
presentValue in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
period - the period
provider - the rates provider
Returns:
the present value of the period
• #### forecastValue

public double forecastValue​(RatePaymentPeriod period,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the forecast value of a single payment period.

The amount is expressed in the currency of the period. This returns the value of the period without discounting.

The payment date of the period should not be in the past. The result of this method for payment dates in the past is undefined.

Specified by:
forecastValue in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
period - the period
provider - the rates provider
Returns:
the forecast value of the period
• #### pvbp

public double pvbp​(RatePaymentPeriod paymentPeriod,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the present value of a basis point of a period.

This calculate the amount by which, to the first order, the period present value changes for a change of the rate defining the payment period. For known amount payments for which there is rate, the value is 0. In absence of compounding on the period, this measure is equivalent to the traditional PVBP.

Specified by:
pvbp in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
paymentPeriod - the period
provider - the rates provider
Returns:
the present value of a basis point
• #### accruedInterest

public double accruedInterest​(RatePaymentPeriod period,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the accrued interest since the last payment.

This calculates the interest that has accrued between the start of the period and the valuation date. Discounting is not applied. The amount is expressed in the currency of the period. It is intended that this method is called only with the period where the valuation date is after the start date and before or equal to the end date.

Specified by:
accruedInterest in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
period - the period
provider - the rates provider
Returns:
the accrued interest of the period
• #### presentValueSensitivity

public PointSensitivityBuilder presentValueSensitivity​(RatePaymentPeriod period,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the present value sensitivity of a single payment period.

The present value sensitivity of the period is the sensitivity of the present value to the underlying curves.

Specified by:
presentValueSensitivity in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
period - the period
provider - the rates provider
Returns:
the present value curve sensitivity of the period
• #### forecastValueSensitivity

public PointSensitivityBuilder forecastValueSensitivity​(RatePaymentPeriod period,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the forecast value sensitivity of a single payment period.

The forecast value sensitivity of the period is the sensitivity of the forecast value to the underlying curves.

Specified by:
forecastValueSensitivity in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
period - the period
provider - the rates provider
Returns:
the forecast value curve sensitivity of the period
• #### pvbpSensitivity

public PointSensitivityBuilder pvbpSensitivity​(RatePaymentPeriod paymentPeriod,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the present value of a basis point sensitivity of a single payment period.

This calculate the sensitivity of the present value of a basis point (pvbp) quantity to the underlying curves.

Specified by:
pvbpSensitivity in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
paymentPeriod - the period
provider - the rates provider
Returns:
the present value of a basis point sensitivity
• #### explainPresentValue

public void explainPresentValue​(RatePaymentPeriod paymentPeriod,
RatesProvider provider,
ExplainMapBuilder builder)
Description copied from interface: SwapPaymentPeriodPricer
Explains the present value of a single payment period.

This adds information to the ExplainMapBuilder to aid understanding of the calculation.

Specified by:
explainPresentValue in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
paymentPeriod - the period
provider - the rates provider
builder - the builder to populate
• #### currencyExposure

public MultiCurrencyAmount currencyExposure​(RatePaymentPeriod period,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the currency exposure of a single payment period.
Specified by:
currencyExposure in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
period - the period
provider - the rates provider
Returns:
the currency exposure
• #### currentCash

public double currentCash​(RatePaymentPeriod period,
RatesProvider provider)
Description copied from interface: SwapPaymentPeriodPricer
Calculates the current cash of a single payment period.
Specified by:
currentCash in interface SwapPaymentPeriodPricer<RatePaymentPeriod>
Parameters:
period - the period
provider - the rates provider
Returns:
the current cash