## Class NormalIborFutureOptionMarginedProductPricer

• java.lang.Object
• com.opengamma.strata.pricer.index.NormalIborFutureOptionMarginedProductPricer

• public class NormalIborFutureOptionMarginedProductPricer
extends Object
Pricer of options on Ibor future with a normal model on the underlying future price.

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 NormalIborFutureOptionMarginedProductPricer DEFAULT
Default implementation.
• ### Constructor Summary

Constructors
Constructor Description
NormalIborFutureOptionMarginedProductPricer​(DiscountingIborFutureProductPricer futurePricer)
Creates an instance.
• ### Method Summary

All Methods
Modifier and Type Method Description
double deltaStickyStrike​(ResolvedIborFutureOption futureOption, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities)
Calculates the delta of the Ibor future option product.
double deltaStickyStrike​(ResolvedIborFutureOption futureOption, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities, double futurePrice)
Calculates the delta of the Ibor future option product based on the price of the underlying future.
double price​(ResolvedIborFutureOption futureOption, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities)
Calculates the price of the Ibor future option product.
double price​(ResolvedIborFutureOption futureOption, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities, double futurePrice)
Calculates the price of the Ibor future option product based on the price of the underlying future.
IborFutureOptionSensitivity priceSensitivityModelParamsVolatility​(ResolvedIborFutureOption futureOption, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities)
Calculates the price sensitivity to the normal volatility used for the pricing of the Ibor future option.
IborFutureOptionSensitivity priceSensitivityModelParamsVolatility​(ResolvedIborFutureOption futureOption, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities, double futurePrice)
Calculates the price sensitivity to the normal volatility used for the pricing of the Ibor future option based on the price of the underlying future.
PointSensitivities priceSensitivityRatesStickyStrike​(ResolvedIborFutureOption futureOption, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities)
Calculates the price sensitivity of the Ibor future option product based on curves.
PointSensitivities priceSensitivityRatesStickyStrike​(ResolvedIborFutureOption futureOption, RatesProvider ratesProvider, NormalIborFutureOptionVolatilities volatilities, double futurePrice)
Calculates the price sensitivity of the Ibor future option product based on the price of the underlying future.
• ### Methods inherited from class java.lang.Object

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

• #### DEFAULT

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

• #### NormalIborFutureOptionMarginedProductPricer

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

• #### price

public double price​(ResolvedIborFutureOption futureOption,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities)
Calculates the price of the Ibor future option product.

The price of the option is the price on the valuation date.

This calculates the underlying future price using the future pricer.

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

public double price​(ResolvedIborFutureOption futureOption,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities,
double futurePrice)
Calculates the price of the Ibor future option product based on the price of the underlying future.

The price of the option is the price on the valuation date.

Parameters:
futureOption - the option product
ratesProvider - the rates provider
volatilities - the volatilities
futurePrice - the price of the underlying future, in decimal form
Returns:
the price of the product, in decimal form
• #### deltaStickyStrike

public double deltaStickyStrike​(ResolvedIborFutureOption futureOption,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities)
Calculates the delta of the Ibor future option product.

The delta of the product is the sensitivity of the option price to the future price. The volatility is unchanged for a fixed strike in the sensitivity computation, hence the "StickyStrike" name.

This calculates the underlying future price using the future pricer.

Parameters:
futureOption - the option product
ratesProvider - the rates provider
volatilities - the volatilities
Returns:
the price curve sensitivity of the product
• #### deltaStickyStrike

public double deltaStickyStrike​(ResolvedIborFutureOption futureOption,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities,
double futurePrice)
Calculates the delta of the Ibor future option product based on the price of the underlying future.

The delta of the product is the sensitivity of the option price to the future price. The volatility is unchanged for a fixed strike in the sensitivity computation, hence the "StickyStrike" name.

Parameters:
futureOption - the option product
ratesProvider - the rates provider
volatilities - the volatilities
futurePrice - the price of the underlying future, in decimal form
Returns:
the price curve sensitivity of the product
• #### priceSensitivityRatesStickyStrike

public PointSensitivities priceSensitivityRatesStickyStrike​(ResolvedIborFutureOption futureOption,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities)
Calculates the price sensitivity of the Ibor future option product based on curves.

The price sensitivity of the product is the sensitivity of the price to the underlying curves. The volatility is unchanged for a fixed strike in the sensitivity computation, hence the "StickyStrike" name.

This calculates the underlying future price using the future pricer.

Parameters:
futureOption - the option product
ratesProvider - the rates provider
volatilities - the volatilities
Returns:
the price curve sensitivity of the product
• #### priceSensitivityRatesStickyStrike

public PointSensitivities priceSensitivityRatesStickyStrike​(ResolvedIborFutureOption futureOption,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities,
double futurePrice)
Calculates the price sensitivity of the Ibor future option product based on the price of the underlying future.

The price sensitivity of the product is the sensitivity of the price to the underlying curves. The volatility is unchanged for a fixed strike in the sensitivity computation, hence the "StickyStrike" name.

Parameters:
futureOption - the option product
ratesProvider - the rates provider
volatilities - the volatilities
futurePrice - the price of the underlying future, in decimal form
Returns:
the price curve sensitivity of the product
• #### priceSensitivityModelParamsVolatility

public IborFutureOptionSensitivity priceSensitivityModelParamsVolatility​(ResolvedIborFutureOption futureOption,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities)
Calculates the price sensitivity to the normal volatility used for the pricing of the Ibor future option.

This sensitivity is also called the price normal vega.

This calculates the underlying future price using the future pricer.

Parameters:
futureOption - the option product
ratesProvider - the rates provider
volatilities - the volatilities
Returns:
the sensitivity
• #### priceSensitivityModelParamsVolatility

public IborFutureOptionSensitivity priceSensitivityModelParamsVolatility​(ResolvedIborFutureOption futureOption,
RatesProvider ratesProvider,
NormalIborFutureOptionVolatilities volatilities,
double futurePrice)
Calculates the price sensitivity to the normal volatility used for the pricing of the Ibor future option based on the price of the underlying future.

This sensitivity is also called the price normal vega.

Parameters:
futureOption - the option product
ratesProvider - the rates provider
volatilities - the volatilities
futurePrice - the underlying future price, in decimal form
Returns:
the sensitivity