/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.sesame.irfuture; import com.opengamma.analytics.util.amount.ReferenceAmount; import com.opengamma.financial.analytics.model.fixedincome.BucketedCurveSensitivities; import com.opengamma.util.money.Currency; import com.opengamma.util.money.MultipleCurrencyAmount; import com.opengamma.util.result.Result; import com.opengamma.util.tuple.Pair; /** * Common interface for interest rate future calculators. */ public interface InterestRateFutureCalculator { /** * Calculates the PV for the security from the given curve * @return result containing the PV if successfully created, a failure result otherwise */ Result<MultipleCurrencyAmount> calculatePV(); /** * Calculates the (fair) forward rate used for calculation in the PV * @return result containing the par rate if successfully created, a failure result otherwise */ Result<Double> calculateParRate(); /** * Calculates the PV01 for the security * * @return result containing the PV01 if successfully created, a failure result otherwise */ Result<ReferenceAmount<Pair<String, Currency>>> calculatePV01(); /** * Calculates the market price for the security * * @return result containing the market price if successfully created, a failure result otherwise */ Result<Double> getSecurityMarketPrice(); /** * Calculates the theoretical price for the security * * @return result containing the theoretical price if successfully created, a failure result otherwise */ Result<Double> calculateSecurityModelPrice(); /** * Calculates the bucketed zero rate delta for the security * * @return the bucketed delta */ Result<BucketedCurveSensitivities> calculateBucketedZeroIRDelta(); }