Exemplo n.º 1
0
        public virtual void test_parSpreadSensitivity()
        {
            PointSensitivities             computed      = PRICER.parSpreadSensitivity(RTERM_DEPOSIT, IMM_PROV);
            CurrencyParameterSensitivities sensiComputed = IMM_PROV.parameterSensitivity(computed);
            CurrencyParameterSensitivities sensiExpected = CAL_FD.sensitivity(IMM_PROV, (p) => CurrencyAmount.of(EUR, PRICER.parSpread(RTERM_DEPOSIT, (p))));

            assertTrue(sensiComputed.equalWithTolerance(sensiExpected, NOTIONAL * EPS_FD));
        }
Exemplo n.º 2
0
        //-------------------------------------------------------------------------
        public virtual void test_parSpreadSensitivity()
        {
            PointSensitivities ptsTrade   = PRICER_TRADE.parSpreadSensitivity(RDEPOSIT_TRADE, IMM_PROV);
            PointSensitivities ptsProduct = PRICER_PRODUCT.parSpreadSensitivity(RDEPOSIT_PRODUCT, IMM_PROV);

            assertTrue(ptsTrade.equalWithTolerance(ptsProduct, TOLERANCE_PV_DELTA));
        }
Exemplo n.º 3
0
 /// <summary>
 /// Calculates the par spread curve sensitivity.
 /// <para>
 /// The calculation is based on both of initial and final payments.
 /// Thus the number resulting may not be meaningful when deposit has already started and only the final
 /// payment remains (no initial payment).
 ///
 /// </para>
 /// </summary>
 /// <param name="trade">  the trade </param>
 /// <param name="provider">  the rates provider </param>
 /// <returns> the par spread curve sensitivity </returns>
 public virtual PointSensitivities parSpreadSensitivity(ResolvedTermDepositTrade trade, RatesProvider provider)
 {
     return(productPricer.parSpreadSensitivity(trade.Product, provider));
 }