Example #1
0
        //-------------------------------------------------------------------------
        public virtual void test_currencyExposureFromCleanPrice()
        {
            MultiCurrencyAmount computed = PRICER.currencyExposureFromCleanPrice(TRADE_STANDARD, RATES_PROVIDER, ISSUER_RATES_PROVIDER, REF_DATA, TRADE_PRICE);
            PointSensitivities  point    = PRICER.presentValueSensitivityFromCleanPrice(TRADE_STANDARD, RATES_PROVIDER, ISSUER_RATES_PROVIDER, REF_DATA, TRADE_PRICE);
            MultiCurrencyAmount expected = RATES_PROVIDER.currencyExposure(point).plus(PRICER.presentValueFromCleanPrice(TRADE_STANDARD, RATES_PROVIDER, ISSUER_RATES_PROVIDER, REF_DATA, TRADE_PRICE));

            assertEquals(computed.Amounts.size(), 1);
            assertEquals(computed.getAmount(USD).Amount, expected.getAmount(USD).Amount, NOTIONAL * QUANTITY * TOL);
        }
        public virtual void test_currencyExposure()
        {
            MultiCurrencyAmount     computed1 = PRODUCT_PRICER.currencyExposure(CMS_ONE_LEG, RATES_PROVIDER, VOLATILITIES);
            MultiCurrencyAmount     computed2 = PRODUCT_PRICER.currencyExposure(CMS_TWO_LEGS, RATES_PROVIDER, VOLATILITIES);
            MultiCurrencyAmount     pv1       = PRODUCT_PRICER.presentValue(CMS_ONE_LEG, RATES_PROVIDER, VOLATILITIES);
            PointSensitivityBuilder pt1       = PRODUCT_PRICER.presentValueSensitivityRates(CMS_ONE_LEG, RATES_PROVIDER, VOLATILITIES);
            MultiCurrencyAmount     expected1 = RATES_PROVIDER.currencyExposure(pt1.build()).plus(pv1);
            MultiCurrencyAmount     pv2       = PRODUCT_PRICER.presentValue(CMS_TWO_LEGS, RATES_PROVIDER, VOLATILITIES);
            PointSensitivityBuilder pt2       = PRODUCT_PRICER.presentValueSensitivityRates(CMS_TWO_LEGS, RATES_PROVIDER, VOLATILITIES);
            MultiCurrencyAmount     expected2 = RATES_PROVIDER.currencyExposure(pt2.build()).plus(pv2);

            assertEquals(computed1.getAmount(EUR).Amount, expected1.getAmount(EUR).Amount, NOTIONAL_VALUE * TOL);
            assertEquals(computed2.getAmount(EUR).Amount, expected2.getAmount(EUR).Amount, NOTIONAL_VALUE * TOL);
        }
        public virtual void test_currencyExposure()
        {
            MultiCurrencyAmount computed1 = TRADE_PRICER.currencyExposure(CMS_TRADE_PREMIUM, RATES_PROVIDER, VOLATILITIES);
            MultiCurrencyAmount computed2 = TRADE_PRICER.currencyExposure(CMS_TRADE, RATES_PROVIDER, VOLATILITIES);
            MultiCurrencyAmount pv1       = TRADE_PRICER.presentValue(CMS_TRADE_PREMIUM, RATES_PROVIDER, VOLATILITIES);
            PointSensitivities  pt1       = TRADE_PRICER.presentValueSensitivityRates(CMS_TRADE_PREMIUM, RATES_PROVIDER, VOLATILITIES);
            MultiCurrencyAmount expected1 = RATES_PROVIDER.currencyExposure(pt1).plus(pv1);
            MultiCurrencyAmount pv2       = TRADE_PRICER.presentValue(CMS_TRADE, RATES_PROVIDER, VOLATILITIES);
            PointSensitivities  pt2       = TRADE_PRICER.presentValueSensitivityRates(CMS_TRADE, RATES_PROVIDER, VOLATILITIES);
            MultiCurrencyAmount expected2 = RATES_PROVIDER.currencyExposure(pt2).plus(pv2);

            assertEquals(computed1.getAmount(EUR).Amount, expected1.getAmount(EUR).Amount, NOTIONAL_VALUE * TOL);
            assertEquals(computed2.getAmount(EUR).Amount, expected2.getAmount(EUR).Amount, NOTIONAL_VALUE * TOL);
        }
Example #4
0
        public virtual void test_currencyExposure()
        {
            MultiCurrencyAmount computedWithPayLeg  = PRICER.currencyExposure(TRADE_PAYLEG, RATES, VOLS);
            MultiCurrencyAmount computedWithPremium = PRICER.currencyExposure(TRADE_PREMIUM, RATES, VOLS);
            MultiCurrencyAmount pvWithPayLeg        = PRICER.presentValue(TRADE_PAYLEG, RATES, VOLS);
            MultiCurrencyAmount pvWithPremium       = PRICER.presentValue(TRADE_PREMIUM, RATES, VOLS);
            PointSensitivities  pointWithPayLeg     = PRICER.presentValueSensitivityRates(TRADE_PAYLEG, RATES, VOLS);
            PointSensitivities  pointWithPremium    = PRICER.presentValueSensitivityRates(TRADE_PREMIUM, RATES, VOLS);
            MultiCurrencyAmount expectedWithPayLeg  = RATES.currencyExposure(pointWithPayLeg).plus(pvWithPayLeg);
            MultiCurrencyAmount expectedWithPremium = RATES.currencyExposure(pointWithPremium).plus(pvWithPremium);

            assertEquals(computedWithPayLeg.getAmount(EUR).Amount, expectedWithPayLeg.getAmount(EUR).Amount, NOTIONAL_VALUE * TOL);
            assertEquals(computedWithPremium.getAmount(EUR).Amount, expectedWithPremium.getAmount(EUR).Amount, NOTIONAL_VALUE * TOL);
        }
Example #5
0
 //-------------------------------------------------------------------------
 public virtual void test_currencyExposure()
 {
     for (int i = 0; i < NB_STRIKES; ++i)
     {
         CurrencyAmount          pvCall       = PRICER.presentValue(CALLS[i], RATES_PROVIDER, VOLS);
         PointSensitivityBuilder pvSensiCall  = PRICER.presentValueSensitivityRatesStickyStrike(CALLS[i], RATES_PROVIDER, VOLS);
         MultiCurrencyAmount     computedCall = PRICER.currencyExposure(CALLS[i], RATES_PROVIDER, VOLS);
         MultiCurrencyAmount     expectedCall = RATES_PROVIDER.currencyExposure(pvSensiCall.build()).plus(pvCall);
         assertEquals(computedCall.getAmount(EUR).Amount, expectedCall.getAmount(EUR).Amount, NOTIONAL * TOL);
         assertEquals(computedCall.getAmount(USD).Amount, expectedCall.getAmount(USD).Amount, NOTIONAL * TOL);
         CurrencyAmount          pvPut       = PRICER.presentValue(PUTS[i], RATES_PROVIDER, VOLS);
         PointSensitivityBuilder pvSensiPut  = PRICER.presentValueSensitivityRatesStickyStrike(PUTS[i], RATES_PROVIDER, VOLS);
         MultiCurrencyAmount     computedPut = PRICER.currencyExposure(PUTS[i], RATES_PROVIDER, VOLS);
         MultiCurrencyAmount     expectedPut = RATES_PROVIDER.currencyExposure(pvSensiPut.build()).plus(pvPut);
         assertEquals(computedPut.getAmount(EUR).Amount, expectedPut.getAmount(EUR).Amount, NOTIONAL * TOL);
         assertEquals(computedPut.getAmount(USD).Amount, expectedPut.getAmount(USD).Amount, NOTIONAL * TOL);
     }
 }
Example #6
0
        public virtual void test_currencyExposure()
        {
            PointSensitivities  point    = PRICER.presentValueSensitivityRates(FUTURE_TRADE, RATE_PROVIDER, HW_PROVIDER);
            MultiCurrencyAmount expected = RATE_PROVIDER.currencyExposure(point).plus(PRICER.presentValue(FUTURE_TRADE, RATE_PROVIDER, HW_PROVIDER, LAST_PRICE));
            MultiCurrencyAmount computed = PRICER.currencyExposure(FUTURE_TRADE, RATE_PROVIDER, HW_PROVIDER, LAST_PRICE);

            assertEquals(computed.size(), 1);
            assertEquals(computed.getAmount(EUR).Amount, expected.getAmount(EUR).Amount, NOTIONAL * QUANTITY * TOL);
        }
Example #7
0
        public virtual void test_currencyExposure()
        {
            CurrencyAmount      pv       = TRADE_PRICER.presentValue(FUTURE_TRADE, PROVIDER, LASTMARG_PRICE);
            PointSensitivities  point    = TRADE_PRICER.presentValueSensitivity(FUTURE_TRADE, PROVIDER);
            MultiCurrencyAmount expected = PROVIDER.currencyExposure(point).plus(pv);
            MultiCurrencyAmount computed = TRADE_PRICER.currencyExposure(FUTURE_TRADE, PROVIDER, LASTMARG_PRICE);

            assertEquals(computed, expected);
        }
Example #8
0
        //-------------------------------------------------------------------------
        public virtual void test_currencyExposure()
        {
            ImmutableRatesProvider prov     = ImmutableRatesProvider.builder(VAL_DATE).discountCurve(GBP, DISCOUNT_CURVE_GBP).build();
            MultiCurrencyAmount    computed = PRICER.currencyExposure(PERIOD, prov);
            PointSensitivities     point    = PRICER.presentValueSensitivity(PERIOD, prov).build();
            MultiCurrencyAmount    expected = prov.currencyExposure(point).plus(CurrencyAmount.of(GBP, PRICER.presentValue(PERIOD, prov)));

            assertEquals(computed, expected);
        }