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 Instance Methods Concrete 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.
-
-
-
Field Detail
-
DEFAULT
public static final NormalIborFutureOptionMarginedProductPricer DEFAULT
Default implementation.
-
-
Constructor Detail
-
NormalIborFutureOptionMarginedProductPricer
public NormalIborFutureOptionMarginedProductPricer(DiscountingIborFutureProductPricer futurePricer)
Creates an instance.- Parameters:
futurePricer
- the pricer forIborFutureOption
-
-
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 productratesProvider
- the rates providervolatilities
- 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 productratesProvider
- the rates providervolatilities
- the volatilitiesfuturePrice
- 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 productratesProvider
- the rates providervolatilities
- 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 productratesProvider
- the rates providervolatilities
- the volatilitiesfuturePrice
- 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 productratesProvider
- the rates providervolatilities
- 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 productratesProvider
- the rates providervolatilities
- the volatilitiesfuturePrice
- 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 productratesProvider
- the rates providervolatilities
- 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 productratesProvider
- the rates providervolatilities
- the volatilitiesfuturePrice
- the underlying future price, in decimal form- Returns:
- the sensitivity
-
-