/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.interestrate.future.method;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivative;
import com.opengamma.analytics.financial.interestrate.InterestRateCurveSensitivity;
import com.opengamma.analytics.financial.interestrate.YieldCurveBundle;
import com.opengamma.analytics.financial.interestrate.future.derivative.InterestRateFutureOptionPremiumSecurity;
import com.opengamma.analytics.financial.interestrate.method.PricingMethod;
import com.opengamma.util.money.CurrencyAmount;
/**
* Method for the pricing of interest rate future options with premium. Abstract class with methods valid for all pricing methods.
* @deprecated {@link YieldCurveBundle} is deprecated
*/
@Deprecated
public abstract class InterestRateFutureOptionPremiumSecurityMethod implements PricingMethod {
/**
* Computes the option security price from future price.
* @param security The future option security.
* @param curves The yield curve bundle.
* @param priceFuture The price of the underlying future.
* @return The security price.
*/
public abstract double optionPriceFromFuturePrice(final InterestRateFutureOptionPremiumSecurity security, final YieldCurveBundle curves, final double priceFuture);
/**
* Computes the option security price. The future price is computed without convexity adjustment.
* @param security The future option security.
* @param curves The yield curve bundle.
* @return The security price.
*/
public abstract double optionPrice(final InterestRateFutureOptionPremiumSecurity security, final YieldCurveBundle curves);
/**
* Computes the option security price curve sensitivity. The future price is computed without convexity adjustment.
* It is supposed that for a given strike the volatility does not change with the curves.
* @param security The future option security.
* @param curves The yield curve bundle.
* @return The security price curve sensitivity.
*/
public abstract InterestRateCurveSensitivity priceCurveSensitivity(final InterestRateFutureOptionPremiumSecurity security, final YieldCurveBundle curves);
@Override
public CurrencyAmount presentValue(final InstrumentDerivative instrument, final YieldCurveBundle curves) {
throw new UnsupportedOperationException("The InterestRateFutureOptionPremiumSecurity don't have a present value, only a price.");
}
}