// present value for one scenario internal MultiCurrencyAmount presentValue(ResolvedIborCapFloorTrade trade, RatesProvider ratesProvider, IborCapletFloorletVolatilities volatilities) { return(tradePricer.presentValue(trade, ratesProvider, volatilities)); }
// calibrated bucketed PV01 for one scenario internal CurrencyParameterSensitivities pv01RatesCalibratedBucketed(ResolvedIborCapFloorTrade trade, RatesProvider ratesProvider, IborCapletFloorletVolatilities volatilities) { PointSensitivities pointSensitivity = this.pointSensitivity(trade, ratesProvider, volatilities); return(ratesProvider.parameterSensitivity(pointSensitivity).multipliedBy(ONE_BASIS_POINT)); }
// point sensitivity private PointSensitivities pointSensitivity(ResolvedIborCapFloorTrade trade, RatesProvider ratesProvider, IborCapletFloorletVolatilities volatilities) { return(tradePricer.presentValueSensitivityRates(trade, ratesProvider, volatilities)); }
// market quote bucketed PV01 for one scenario internal CurrencyParameterSensitivities pv01RatesMarketQuoteBucketed(ResolvedIborCapFloorTrade trade, RatesProvider ratesProvider, IborCapletFloorletVolatilities volatilities) { PointSensitivities pointSensitivity = this.pointSensitivity(trade, ratesProvider, volatilities); CurrencyParameterSensitivities parameterSensitivity = ratesProvider.parameterSensitivity(pointSensitivity); return(MARKET_QUOTE_SENS.sensitivity(parameterSensitivity, ratesProvider).multipliedBy(ONE_BASIS_POINT)); }
/// <summary> /// Calculates present value for a single set of market data. /// </summary> /// <param name="trade"> the trade </param> /// <param name="ratesProvider"> the market data </param> /// <param name="volatilities"> the cap/floor volatilities </param> /// <returns> the present value </returns> public virtual MultiCurrencyAmount presentValue(ResolvedIborCapFloorTrade trade, RatesProvider ratesProvider, IborCapletFloorletVolatilities volatilities) { return(calc.presentValue(trade, ratesProvider, volatilities)); }
/// <summary> /// Calculates present value sensitivity for a single set of market data. /// <para> /// This is the sensitivity of present value to a one basis point shift in /// the market quotes used to calibrate the curves. /// The result is provided for each affected curve and currency, bucketed by curve node. /// /// </para> /// </summary> /// <param name="trade"> the trade </param> /// <param name="ratesProvider"> the market data </param> /// <param name="volatilities"> the cap/floor volatilities </param> /// <returns> the present value sensitivity </returns> public virtual CurrencyParameterSensitivities pv01RatesMarketQuoteBucketed(ResolvedIborCapFloorTrade trade, RatesProvider ratesProvider, IborCapletFloorletVolatilities volatilities) { return(calc.pv01RatesMarketQuoteBucketed(trade, ratesProvider, volatilities)); }
/// <summary> /// Calculates present value sensitivity for a single set of market data. /// <para> /// This is the sensitivity of present value to a one basis point shift in /// the market quotes used to calibrate the curves. /// The result is the sum of the sensitivities of all affected curves. /// /// </para> /// </summary> /// <param name="trade"> the trade </param> /// <param name="ratesProvider"> the market data </param> /// <param name="volatilities"> the cap/floor volatilities </param> /// <returns> the present value sensitivity </returns> public virtual MultiCurrencyAmount pv01RatesMarketQuoteSum(ResolvedIborCapFloorTrade trade, RatesProvider ratesProvider, IborCapletFloorletVolatilities volatilities) { return(calc.pv01RatesMarketQuoteSum(trade, ratesProvider, volatilities)); }