コード例 #1
0
        //-------------------------------------------------------------------------
        public virtual void test_parSpread()
        {
            double psTrade   = PRICER_TRADE.parSpread(RDEPOSIT_TRADE, IMM_PROV);
            double psProduct = PRICER_PRODUCT.parSpread(RDEPOSIT_PRODUCT, IMM_PROV);

            assertEquals(psTrade, psProduct, TOLERANCE_RATE);
        }
コード例 #2
0
        public virtual void test_parSpread()
        {
            SimpleRatesProvider prov = provider(VAL_DATE, DF_START, DF_END);
            double      parSpread    = PRICER.parSpread(RTERM_DEPOSIT, prov);
            TermDeposit depositPar   = TermDeposit.builder().buySell(BuySell.BUY).startDate(START_DATE).endDate(END_DATE).businessDayAdjustment(BD_ADJ).dayCount(ACT_360).notional(NOTIONAL).currency(EUR).rate(RATE + parSpread).build();
            double      pvPar        = PRICER.presentValue(depositPar.resolve(REF_DATA), prov).Amount;

            assertEquals(pvPar, 0.0, NOTIONAL * TOLERANCE);
        }
コード例 #3
0
 //-------------------------------------------------------------------------
 /// <summary>
 /// Calculates the spread to be added to the deposit rate to have a zero present value.
 /// <para>
 /// The calculation is based on both the initial and final payments.
 /// Thus the resulting number 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 </returns>
 public virtual double parSpread(ResolvedTermDepositTrade trade, RatesProvider provider)
 {
     return(productPricer.parSpread(trade.Product, provider));
 }