/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame.irfutureoption;
import com.opengamma.analytics.financial.provider.sensitivity.multicurve.MultipleCurrencyMulticurveSensitivity;
import com.opengamma.financial.analytics.model.fixedincome.BucketedCurveSensitivities;
import com.opengamma.util.money.MultipleCurrencyAmount;
import com.opengamma.util.result.Result;
/**
* Common interface for interest rate future option calculators.
*/
public interface IRFutureOptionCalculator {
/**
* Calculates the present value of the interest rate future option.
* @return the present value.
*/
Result<MultipleCurrencyAmount> calculatePV();
/**
* Calculates the PV01 of the interest rate future option.
* @return the PV01.
*/
Result<MultipleCurrencyMulticurveSensitivity> calculatePV01();
/**
* Calculates the model price of the interest rate future option.
* @return the model price.
*/
Result<Double> calculateModelPrice();
/**
* Calculate the delta of the interest rate future option.
* @return the delta.
*/
Result<Double> calculateDelta();
/**
* Calculate the gamma of the interest rate future option.
* @return the gamma.
*/
Result<Double> calculateGamma();
/**
* Calculate the vega of the interest rate future option.
* @return the vega.
*/
Result<Double> calculateVega();
/**
* Calculate the theta of the interest rate future option.
* @return the theta.
*/
Result<Double> calculateTheta();
/**
* Calculate the bucketed ir delta of the interest rate future option w.r.t zero rates.
* @return the BucketedCurveSensitivities view of the sensitivities.
*/
Result<BucketedCurveSensitivities> calculateBucketedZeroIRDelta();
}