• java.lang.Object

• public final class NormalIborFutureOptionMarginedTradePricer
extends Object
Pricer implementation for Ibor future option.

This provides the ability to price an Ibor future option. The option must be based on daily margin.

#### Price

The price of an Ibor future option is based on the price of the underlying future, the volatility and the time to expiry. The price of the at-the-money option tends to zero as expiry approaches.

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.

• ### Field Summary

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

Constructors
Constructor Description
NormalIborFutureOptionMarginedTradePricer​(NormalIborFutureOptionMarginedProductPricer futureOptionPricer)
Creates an instance.
• ### Method Summary

All Methods
Modifier and Type Method Description
CurrencyAmount presentValue​(ResolvedIborFutureOptionTrade trade, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities, double lastOptionSettlementPrice)
Calculates the present value of the Ibor future option trade.
CurrencyAmount presentValue​(ResolvedIborFutureOptionTrade trade, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities, double futurePrice, double lastOptionSettlementPrice)
Calculates the present value of the Ibor future option trade from the underlying future price.
CurrencyAmount presentValue​(ResolvedIborFutureOptionTrade trade, LocalDate valuationDate, double currentOptionPrice, double lastOptionSettlementPrice)
Calculates the present value of the Ibor future option trade from the current option price.
IborFutureOptionSensitivity presentValueSensitivityModelParamsVolatility​(ResolvedIborFutureOptionTrade futureOptionTrade, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities)
Computes the present value sensitivity to the normal volatility used in the pricing.
IborFutureOptionSensitivity presentValueSensitivityModelParamsVolatility​(ResolvedIborFutureOptionTrade futureOptionTrade, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities, double futurePrice)
Computes the present value sensitivity to the normal volatility used in the pricing based on the price of the underlying future.
PointSensitivities presentValueSensitivityRates​(ResolvedIborFutureOptionTrade trade, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities)
Calculates the present value sensitivity of the Ibor future option trade.
double price​(ResolvedIborFutureOptionTrade trade, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities)
Calculates the price of the Ibor future option trade.
• ### Methods inherited from class java.lang.Object

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

• #### DEFAULT

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

public NormalIborFutureOptionMarginedTradePricer​(NormalIborFutureOptionMarginedProductPricer futureOptionPricer)
Creates an instance.
Parameters:
futureOptionPricer - the pricer for IborFutureOption
• ### Method Detail

• #### price

public double price​(ResolvedIborFutureOptionTrade trade,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities)
Calculates the price of the Ibor future option trade.

The price of the trade is the price on the valuation date. The price is calculated using the volatility model.

Parameters:
trade - the trade
ratesProvider - the rates provider
volatilities - the volatilities
Returns:
the price of the product, in decimal form
• #### presentValue

public CurrencyAmount presentValue​(ResolvedIborFutureOptionTrade trade,
LocalDate valuationDate,
double currentOptionPrice,
double lastOptionSettlementPrice)
Calculates the present value of the Ibor future option trade from the current option price.

The present value of the product is the value on the valuation date. The current price is specified, not calculated.

This method calculates based on the difference between the specified current price and the last settlement price, or the trade price if traded on the valuation date.

Parameters:
trade - the trade
valuationDate - the valuation date; required to asses if the trade or last closing price should be used
currentOptionPrice - the current price for the option, in decimal form
lastOptionSettlementPrice - the last settlement price used for margining for the option, in decimal form
Returns:
the present value
• #### presentValue

public CurrencyAmount presentValue​(ResolvedIborFutureOptionTrade trade,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities,
double lastOptionSettlementPrice)
Calculates the present value of the Ibor future option trade.

The present value of the product is the value on the valuation date. The current price is calculated using the volatility model.

This method calculates based on the difference between the model price and the last settlement price, or the trade price if traded on the valuation date.

Parameters:
trade - the trade
ratesProvider - the rates provider
volatilities - the volatilities
lastOptionSettlementPrice - the last settlement price used for margining for the option, in decimal form
Returns:
the present value
• #### presentValue

public CurrencyAmount presentValue​(ResolvedIborFutureOptionTrade trade,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities,
double futurePrice,
double lastOptionSettlementPrice)
Calculates the present value of the Ibor future option trade from the underlying future price.

The present value of the product is the value on the valuation date. The current price is calculated using the volatility model with a known future price.

This method calculates based on the difference between the model price and the last settlement price, or the trade price if traded on the valuation date.

Parameters:
trade - the trade
ratesProvider - the rates provider
volatilities - the volatilities
futurePrice - the price of the underlying future, in decimal form
lastOptionSettlementPrice - the last settlement price used for margining for the option, in decimal form
Returns:
the present value
• #### presentValueSensitivityRates

public PointSensitivities presentValueSensitivityRates​(ResolvedIborFutureOptionTrade trade,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities)
Calculates the present value sensitivity of the Ibor future option trade.

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

Parameters:
trade - the trade
ratesProvider - the rates provider
volatilities - the volatilities
Returns:
the present value curve sensitivity of the trade
• #### presentValueSensitivityModelParamsVolatility

public IborFutureOptionSensitivity presentValueSensitivityModelParamsVolatility​(ResolvedIborFutureOptionTrade futureOptionTrade,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities)
Computes the present value sensitivity to the normal volatility used in the pricing.

The result is a single sensitivity to the volatility used. The volatility is associated with the expiry/delay/strike/future price key combination.

This calculates the underlying future price using the future pricer.

Parameters:
futureOptionTrade - the trade
ratesProvider - the rates provider
volatilities - the volatilities
Returns:
the price sensitivity
• #### presentValueSensitivityModelParamsVolatility

public IborFutureOptionSensitivity presentValueSensitivityModelParamsVolatility​(ResolvedIborFutureOptionTrade futureOptionTrade,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities,
double futurePrice)
Computes the present value sensitivity to the normal volatility used in the pricing based on the price of the underlying future.

The result is a single sensitivity to the volatility used. The volatility is associated with the expiry/delay/strike/future price key combination.

Parameters:
futureOptionTrade - the trade
ratesProvider - the rates provider
volatilities - the volatilities
futurePrice - the price of the underlying future, in decimal form
Returns:
the price sensitivity