public virtual void test_parSpread_ended()
        {
            ResolvedFxSingle fwd    = ResolvedFxSingle.of(CurrencyAmount.of(USD, NOMINAL_USD), FxRate.of(USD, KRW, FX_RATE), PAYMENT_DATE_PAST);
            double           spread = PRICER.parSpread(fwd, PROVIDER);

            assertEquals(spread, 0d, TOL);
        }
        public virtual void test_presentValue_ended()
        {
            ResolvedFxSingle    fwd      = ResolvedFxSingle.of(CurrencyAmount.of(USD, NOMINAL_USD), FxRate.of(USD, KRW, FX_RATE), PAYMENT_DATE_PAST);
            MultiCurrencyAmount computed = PRICER.presentValue(fwd, PROVIDER);

            assertEquals(computed, MultiCurrencyAmount.empty());
        }
        public virtual void test_parSpread()
        {
            double              spread = PRICER.parSpread(FWD, PROVIDER);
            ResolvedFxSingle    fwdSp  = ResolvedFxSingle.of(CurrencyAmount.of(USD, NOMINAL_USD), FxRate.of(USD, KRW, FX_RATE + spread), PAYMENT_DATE);
            MultiCurrencyAmount pv     = PRICER.presentValue(fwdSp, PROVIDER);

            assertEquals(pv.convertedTo(USD, PROVIDER).Amount, 0d, NOMINAL_USD * TOL);
        }
Ejemplo n.º 4
0
 static VannaVolgaFxVanillaOptionProductPricerTest()
 {
     for (int i = 0; i < NB_STRIKES; ++i)
     {
         double         strike    = STRIKE_MIN + i * STRIKE_RANGE / (NB_STRIKES - 1d);
         CurrencyAmount eurAmount = CurrencyAmount.of(EUR, NOTIONAL);
         CurrencyAmount usdAmount = CurrencyAmount.of(USD, -NOTIONAL * strike);
         UNDERLYING[i] = ResolvedFxSingle.of(eurAmount, usdAmount, PAY);
         CALLS[i]      = ResolvedFxVanillaOption.builder().longShort(LONG).expiry(EXPIRY).underlying(UNDERLYING[i]).build();
         PUTS[i]       = ResolvedFxVanillaOption.builder().longShort(SHORT).expiry(EXPIRY).underlying(UNDERLYING[i].inverse()).build();
     }
 }