/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.interestrate.future.provider; import com.opengamma.analytics.financial.interestrate.future.derivative.BondFuturesOptionMarginSecurity; import com.opengamma.analytics.financial.provider.description.interestrate.ParameterProviderInterface; import com.opengamma.analytics.financial.provider.sensitivity.multicurve.MulticurveSensitivity; /** * Method for the pricing of bond future options with margin process. * @param <DATA_TYPE> Data type. Extends ParameterProviderInterface. */ public abstract class BondFutureOptionMarginSecurityGenericMethod<DATA_TYPE extends ParameterProviderInterface> { /** * Computes the option security price. The future price is computed without convexity adjustment. * @param security The bond option security. * @param data The ParameterProviderInterface with the relevant data. * @return The security price. */ public abstract double price(final BondFuturesOptionMarginSecurity security, final DATA_TYPE data); /** * Computes the option security price curve sensitivity. The future price is computed without convexity adjustment. * @param security The bond option security. * @param data The ParameterProviderInterface with the relevant data. * @return The security price curve sensitivity. */ public abstract MulticurveSensitivity priceCurveSensitivity(final BondFuturesOptionMarginSecurity security, final DATA_TYPE data); }