/// <summary> /// Test par spread sensitivity for ISDA FRA Discounting method. /// </summary> public virtual void test_parSpreadSensitivity_ISDA() { PointSensitivities sensiSpread = DEFAULT_PRICER.parSpreadSensitivity(RFRA, IMM_PROV); CurrencyParameterSensitivities sensiComputed = IMM_PROV.parameterSensitivity(sensiSpread); CurrencyParameterSensitivities sensiExpected = CAL_FD.sensitivity(IMM_PROV, (p) => CurrencyAmount.of(FRA.Currency, DEFAULT_PRICER.parSpread(RFRA, (p)))); assertTrue(sensiComputed.equalWithTolerance(sensiExpected, EPS_FD)); PointSensitivities sensiRate = DEFAULT_PRICER.parRateSensitivity(RFRA, IMM_PROV); assertTrue(sensiSpread.equalWithTolerance(sensiRate, EPS_FD)); // test via FraTrade assertEquals(DEFAULT_TRADE_PRICER.parRateSensitivity(RFRA_TRADE, IMM_PROV), DEFAULT_PRICER.parRateSensitivity(RFRA, IMM_PROV)); assertEquals(DEFAULT_TRADE_PRICER.parSpreadSensitivity(RFRA_TRADE, IMM_PROV), DEFAULT_PRICER.parSpreadSensitivity(RFRA, IMM_PROV)); }
/// <summary> /// Calculates the par rate curve sensitivity of the FRA trade. /// <para> /// The par rate curve sensitivity of the product is the sensitivity of the par rate to /// the underlying curves. /// /// </para> /// </summary> /// <param name="trade"> the trade </param> /// <param name="provider"> the rates provider </param> /// <returns> the par rate sensitivity </returns> public virtual PointSensitivities parRateSensitivity(ResolvedFraTrade trade, RatesProvider provider) { return(productPricer.parRateSensitivity(trade.Product, provider)); }