• java.lang.Object

• public class IborFutureTradeCalculations
extends Object
Calculates pricing and risk measures for trades in a futures contract based on an Ibor index.

This provides a high-level entry point for future pricing and risk measures.

Each method takes a ResolvedIborFutureTrade, whereas application code will typically work with IborFutureTrade. Call IborFutureTrade::resolve(ReferenceData) to convert IborFutureTrade to ResolvedIborFutureTrade.

#### Price

The price of an Ibor future is based on the interest rate of the underlying index. It is defined as (100 - percentRate).

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.

• ### Field Summary

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

Constructors
Constructor Description
IborFutureTradeCalculations​(DiscountingIborFutureTradePricer tradePricer)
Creates an instance.
• ### Method Summary

All Methods
Modifier and Type Method Description
DoubleScenarioArray parSpread​(ResolvedIborFutureTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates par spread across one or more scenarios.
double parSpread​(ResolvedIborFutureTrade trade, RatesProvider ratesProvider)
Calculates par spread for a single set of market data.
CurrencyScenarioArray presentValue​(ResolvedIborFutureTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value across one or more scenarios.
CurrencyAmount presentValue​(ResolvedIborFutureTrade trade, RatesProvider ratesProvider)
Calculates present value for a single set of market data.
ScenarioArray<CurrencyParameterSensitivities> pv01CalibratedBucketed​(ResolvedIborFutureTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.
CurrencyParameterSensitivities pv01CalibratedBucketed​(ResolvedIborFutureTrade trade, RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.
MultiCurrencyScenarioArray pv01CalibratedSum​(ResolvedIborFutureTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.
MultiCurrencyAmount pv01CalibratedSum​(ResolvedIborFutureTrade trade, RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.
ScenarioArray<CurrencyParameterSensitivities> pv01MarketQuoteBucketed​(ResolvedIborFutureTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.
CurrencyParameterSensitivities pv01MarketQuoteBucketed​(ResolvedIborFutureTrade trade, RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.
MultiCurrencyScenarioArray pv01MarketQuoteSum​(ResolvedIborFutureTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.
MultiCurrencyAmount pv01MarketQuoteSum​(ResolvedIborFutureTrade trade, RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.
DoubleScenarioArray unitPrice​(ResolvedIborFutureTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates unit price across one or more scenarios.
double unitPrice​(ResolvedIborFutureTrade trade, RatesProvider ratesProvider)
Calculates unit price for a single set of market data.
• ### Methods inherited from class java.lang.Object

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

• #### DEFAULT

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

public IborFutureTradeCalculations​(DiscountingIborFutureTradePricer tradePricer)
Creates an instance.

In most cases, applications should use the DEFAULT instance.

Parameters:
tradePricer - the pricer for ResolvedIborFutureTrade
• ### Method Detail

• #### presentValue

public CurrencyScenarioArray presentValue​(ResolvedIborFutureTrade trade,
RatesMarketDataLookup lookup,
ScenarioMarketData marketData)
Calculates present value across one or more scenarios.
Parameters:
trade - the trade
lookup - the lookup used to query the market data
marketData - the market data
Returns:
the present value, one entry per scenario
• #### presentValue

public CurrencyAmount presentValue​(ResolvedIborFutureTrade trade,
RatesProvider ratesProvider)
Calculates present value for a single set of market data.
Parameters:
trade - the trade
ratesProvider - the market data
Returns:
the present value
• #### pv01CalibratedSum

public MultiCurrencyScenarioArray pv01CalibratedSum​(ResolvedIborFutureTrade trade,
RatesMarketDataLookup lookup,
ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.

This is the sensitivity of present value to a one basis point shift in the calibrated curves. The result is the sum of the sensitivities of all affected curves.

Parameters:
trade - the trade
lookup - the lookup used to query the market data
marketData - the market data
Returns:
the present value sensitivity, one entry per scenario
• #### pv01CalibratedSum

public MultiCurrencyAmount pv01CalibratedSum​(ResolvedIborFutureTrade trade,
RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.

This is the sensitivity of present value to a one basis point shift in the calibrated curves. The result is the sum of the sensitivities of all affected curves.

Parameters:
trade - the trade
ratesProvider - the market data
Returns:
the present value sensitivity
• #### pv01CalibratedBucketed

public ScenarioArray<CurrencyParameterSensitivities> pv01CalibratedBucketed​(ResolvedIborFutureTrade trade,
RatesMarketDataLookup lookup,
ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.

This is the sensitivity of present value to a one basis point shift in the calibrated curves. The result is provided for each affected curve and currency, bucketed by curve node.

Parameters:
trade - the trade
lookup - the lookup used to query the market data
marketData - the market data
Returns:
the present value sensitivity, one entry per scenario
• #### pv01CalibratedBucketed

public CurrencyParameterSensitivities pv01CalibratedBucketed​(ResolvedIborFutureTrade trade,
RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.

This is the sensitivity of present value to a one basis point shift in the calibrated curves. The result is provided for each affected curve and currency, bucketed by curve node.

Parameters:
trade - the trade
ratesProvider - the market data
Returns:
the present value sensitivity
• #### pv01MarketQuoteSum

public MultiCurrencyScenarioArray pv01MarketQuoteSum​(ResolvedIborFutureTrade trade,
RatesMarketDataLookup lookup,
ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.

This is the sensitivity of present value to a one basis point shift in the market quotes used to calibrate the curves. The result is the sum of the sensitivities of all affected curves.

Parameters:
trade - the trade
lookup - the lookup used to query the market data
marketData - the market data
Returns:
the present value sensitivity, one entry per scenario
• #### pv01MarketQuoteSum

public MultiCurrencyAmount pv01MarketQuoteSum​(ResolvedIborFutureTrade trade,
RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.

This is the sensitivity of present value to a one basis point shift in the market quotes used to calibrate the curves. The result is the sum of the sensitivities of all affected curves.

Parameters:
trade - the trade
ratesProvider - the market data
Returns:
the present value sensitivity
• #### pv01MarketQuoteBucketed

public ScenarioArray<CurrencyParameterSensitivities> pv01MarketQuoteBucketed​(ResolvedIborFutureTrade trade,
RatesMarketDataLookup lookup,
ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.

This is the sensitivity of present value to a one basis point shift in the market quotes used to calibrate the curves. The result is provided for each affected curve and currency, bucketed by curve node.

Parameters:
trade - the trade
lookup - the lookup used to query the market data
marketData - the market data
Returns:
the present value sensitivity, one entry per scenario
• #### pv01MarketQuoteBucketed

public CurrencyParameterSensitivities pv01MarketQuoteBucketed​(ResolvedIborFutureTrade trade,
RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.

This is the sensitivity of present value to a one basis point shift in the market quotes used to calibrate the curves. The result is provided for each affected curve and currency, bucketed by curve node.

Parameters:
trade - the trade
ratesProvider - the market data
Returns:
the present value sensitivity

public DoubleScenarioArray parSpread​(ResolvedIborFutureTrade trade,
RatesMarketDataLookup lookup,
ScenarioMarketData marketData)
Calculates par spread across one or more scenarios.
Parameters:
trade - the trade
lookup - the lookup used to query the market data
marketData - the market data
Returns:
the par spread, one entry per scenario

public double parSpread​(ResolvedIborFutureTrade trade,
RatesProvider ratesProvider)
Calculates par spread for a single set of market data.
Parameters:
trade - the trade
ratesProvider - the market data
Returns:
• #### unitPrice

public DoubleScenarioArray unitPrice​(ResolvedIborFutureTrade trade,
RatesMarketDataLookup lookup,
ScenarioMarketData marketData)
Calculates unit price across one or more scenarios.

This is the price of a single unit of the security.

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.

Parameters:
trade - the trade
lookup - the lookup used to query the market data
marketData - the market data
Returns:
the present value, one entry per scenario
• #### unitPrice

public double unitPrice​(ResolvedIborFutureTrade trade,
RatesProvider ratesProvider)
Calculates unit price for a single set of market data.

This is the price of a single unit of the security.

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.

Parameters:
trade - the trade
ratesProvider - the market data
Returns:
the present value