Ejemplo n.º 1
0
	  public virtual void test_tenor()
	  {
		double test1 = VOLS.tenor(VAL_DATE, VAL_DATE);
		assertEquals(test1, 0d);
		double test2 = VOLS.tenor(VAL_DATE, date(2018, 2, 28));
		assertEquals(test2, 3d);
		double test3 = VOLS.tenor(VAL_DATE, date(2018, 2, 10));
		assertEquals(test3, 3d);
	  }
Ejemplo n.º 2
0
        public virtual void test_presentValue()
        {
            CurrencyAmount computedRec = PRICER.presentValue(SWAPTION_REC_LONG, RATE_PROVIDER, VOLS);
            CurrencyAmount computedPay = PRICER.presentValue(SWAPTION_PAY_SHORT, RATE_PROVIDER, VOLS);
            double         forward     = SWAP_PRICER.parRate(RSWAP_REC, RATE_PROVIDER);
            double         annuityCash = SWAP_PRICER.LegPricer.annuityCash(RFIXED_LEG_REC, forward);
            double         expiry      = VOLS.relativeTime(SWAPTION_REC_LONG.Expiry);
            double         tenor       = VOLS.tenor(SETTLE, END);
            double         volatility  = SURFACE.zValue(expiry, tenor);
            double         settle      = ACT_ACT_ISDA.relativeYearFraction(VAL_DATE, SETTLE);
            double         df          = Math.Exp(-DSC_CURVE.yValue(settle) * settle);
            double         expectedRec = df * annuityCash * BlackFormulaRepository.price(forward, RATE, expiry, volatility, false);
            double         expectedPay = -df *annuityCash *BlackFormulaRepository.price(forward, RATE, expiry, volatility, true);

            assertEquals(computedRec.Currency, EUR);
            assertEquals(computedRec.Amount, expectedRec, NOTIONAL * TOL);
            assertEquals(computedPay.Currency, EUR);
            assertEquals(computedPay.Amount, expectedPay, NOTIONAL * TOL);
        }