@Override public ResolvedSwapTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
@Override public ResolvedSwapTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
@Override public ResolvedSwapTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
@Override public ResolvedSwapTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
@Override public ResolvedSwapTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
@Override public ResolvedSwapTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
@Override public ResolvedSwapTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
public double test_VanillaFixedVsLibor3mSwap() { DiscountingSwapTradePricer pricer = swapPricer(); ResolvedSwapTrade resolved = TRADE2.resolve(REF_DATA); CurrencyAmount pv = pricer.presentValue(resolved, USD, PROVIDER); return pv.getAmount(); }
public double test_VanillaFixedVsLibor1mSwap() { DiscountingSwapTradePricer pricer = swapPricer(); ResolvedSwapTrade resolved = TRADE1.resolve(REF_DATA); CurrencyAmount pv = pricer.presentValue(resolved, USD, PROVIDER); return pv.getAmount(); }
public double test_VanillaFixedVsLibor3mSwapWithFixing() { DiscountingSwapTradePricer pricer = swapPricer(); ResolvedSwapTrade resolved = TRADE3.resolve(REF_DATA); CurrencyAmount pv = pricer.presentValue(resolved, USD, PROVIDER); return pv.getAmount(); }
public double test_BasisCompoundedLibor1mVsLibor3mSwap() { DiscountingSwapTradePricer pricer = swapPricer(); ResolvedSwapTrade resolved = TRADE5.resolve(REF_DATA); CurrencyAmount pv = pricer.presentValue(resolved, USD, PROVIDER); return pv.getAmount(); }
public void test_trade() { XCcyIborIborSwapCurveNode node = XCcyIborIborSwapCurveNode.of(TEMPLATE, SPREAD_ID, SPREAD_ADJ); double quantity = -1234.56; SwapTrade trade = node.trade(quantity, MARKET_DATA, REF_DATA); double rate = FX_EUR_USD.fxRate(Currency.EUR, Currency.USD); SwapTrade expected = TEMPLATE.createTrade(VAL_DATE, BUY, -quantity, rate, SPREAD_XCS + SPREAD_ADJ, REF_DATA); assertEquals(trade, expected); assertEquals(node.resolvedTrade(quantity, MARKET_DATA, REF_DATA), trade.resolve(REF_DATA)); }
public double test_BasisLibor3mVsLibor6mSwapWithSpread() { DiscountingSwapTradePricer pricer = swapPricer(); ResolvedSwapTrade resolved = TRADE4.resolve(REF_DATA); CurrencyAmount pv = pricer.presentValue(resolved, USD, PROVIDER); return pv.getAmount(); }
public void test_parSpread_fixedInflation() { ResolvedSwapTrade tradeZc = SWAP_GBP_ZC_INFLATION_5Y.resolve(REF_DATA); double ps = SWAP_PRODUCT_PRICER.parSpread(tradeZc.getProduct(), RATES_GBP_INFLATION); SwapTrade swap0 = FixedInflationSwapConventions.GBP_FIXED_ZC_GB_RPI .createTrade(VAL_DATE_INFLATION, TENOR_5Y, BUY, NOTIONAL_SWAP, FIXED_RATE + ps, REF_DATA); CurrencyAmount pv0 = SWAP_PRODUCT_PRICER.presentValue(swap0.getProduct().resolve(REF_DATA), GBP, RATES_GBP_INFLATION); assertEquals(pv0.getAmount(), 0, TOLERANCE_PV); }
public void test_parSpreadSensitivity_iborCmpIbor_1Period() { ResolvedSwap swap = USD_LIBOR_3M_LIBOR_6M .createTrade(MULTI_USD.getValuationDate(), Tenor.TENOR_6M, BUY, NOTIONAL_SWAP, SPREAD, REF_DATA).resolve(REF_DATA).getProduct(); PointSensitivities point = SWAP_PRODUCT_PRICER.parSpreadSensitivity(swap, MULTI_USD).build(); CurrencyParameterSensitivities prAd = MULTI_USD.parameterSensitivity(point); CurrencyParameterSensitivities prFd = FINITE_DIFFERENCE_CALCULATOR.sensitivity( MULTI_USD, p -> CurrencyAmount.of(USD, SWAP_PRODUCT_PRICER.parSpread(swap, p))); assertTrue(prAd.equalWithTolerance(prFd, TOLERANCE_RATE_DELTA)); }
public void test_parSpreadSensitivity_iborCmpIbor() { ResolvedSwap swap = USD_LIBOR_3M_LIBOR_6M .createTrade(MULTI_USD.getValuationDate(), TENOR_5Y, BUY, NOTIONAL_SWAP, SPREAD, REF_DATA).resolve(REF_DATA).getProduct(); PointSensitivities point = SWAP_PRODUCT_PRICER.parSpreadSensitivity(swap, MULTI_USD).build(); CurrencyParameterSensitivities prAd = MULTI_USD.parameterSensitivity(point); CurrencyParameterSensitivities prFd = FINITE_DIFFERENCE_CALCULATOR.sensitivity( MULTI_USD, p -> CurrencyAmount.of(USD, SWAP_PRODUCT_PRICER.parSpread(swap, p))); assertTrue(prAd.equalWithTolerance(prFd, TOLERANCE_RATE_DELTA)); }
public void test_parSpread_fixedIbor() { ResolvedSwapTrade swapTrade = SWAP_USD_FIXED_6M_LIBOR_3M_5Y.resolve(REF_DATA); double ps = SWAP_PRODUCT_PRICER.parSpread(swapTrade.getProduct(), MULTI_USD); SwapTrade swap0 = FixedIborSwapTemplate .of(Period.ZERO, TENOR_5Y, USD_FIXED_6M_LIBOR_3M) .createTrade(MULTI_USD.getValuationDate(), BUY, NOTIONAL_SWAP, FIXED_RATE + ps, REF_DATA); CurrencyAmount pv0 = SWAP_PRODUCT_PRICER.presentValue(swap0.getProduct().resolve(REF_DATA), USD, MULTI_USD); assertEquals(pv0.getAmount(), 0, TOLERANCE_PV); // test via SwapTrade DiscountingSwapProductPricer pricerSwap = DiscountingSwapProductPricer.DEFAULT; DiscountingSwapTradePricer pricerTrade = DiscountingSwapTradePricer.DEFAULT; assertEquals( pricerTrade.parSpread(swapTrade, MULTI_USD), pricerSwap.parSpread(swapTrade.getProduct(), MULTI_USD)); }
public void test_parSpreadSensitivity_fixedInflation() { ResolvedSwapTrade tradeZc = SWAP_GBP_ZC_INFLATION_5Y.resolve(REF_DATA); PointSensitivities point = SWAP_PRODUCT_PRICER.parSpreadSensitivity(tradeZc.getProduct(), RATES_GBP_INFLATION).build(); CurrencyParameterSensitivities prAd = RATES_GBP_INFLATION.parameterSensitivity(point); CurrencyParameterSensitivities prFd = FINITE_DIFFERENCE_CALCULATOR.sensitivity( RATES_GBP_INFLATION, p -> CurrencyAmount.of(GBP, SWAP_PRODUCT_PRICER.parSpread(tradeZc.getProduct(), p))); assertTrue(prAd.equalWithTolerance(prFd, TOLERANCE_RATE_DELTA)); // trade v product DiscountingSwapTradePricer pricerTrade = DiscountingSwapTradePricer.DEFAULT; DiscountingSwapProductPricer pricerSwap = DiscountingSwapProductPricer.DEFAULT; assertEquals( pricerTrade.parSpreadSensitivity(tradeZc, RATES_GBP_INFLATION), pricerSwap.parSpreadSensitivity(tradeZc.getProduct(), RATES_GBP_INFLATION).build()); }
public void test_parSpreadSensitivity_fixedIbor() { ResolvedSwapTrade trade = SWAP_USD_FIXED_6M_LIBOR_3M_5Y.resolve(REF_DATA); PointSensitivities point = SWAP_PRODUCT_PRICER.parSpreadSensitivity(trade.getProduct(), MULTI_USD).build(); CurrencyParameterSensitivities prAd = MULTI_USD.parameterSensitivity(point); CurrencyParameterSensitivities prFd = FINITE_DIFFERENCE_CALCULATOR.sensitivity( MULTI_USD, p -> CurrencyAmount.of(USD, SWAP_PRODUCT_PRICER.parSpread(trade.getProduct(), p))); assertTrue(prAd.equalWithTolerance(prFd, TOLERANCE_RATE_DELTA)); // test via SwapTrade DiscountingSwapTradePricer pricerTrade = DiscountingSwapTradePricer.DEFAULT; DiscountingSwapProductPricer pricerSwap = DiscountingSwapProductPricer.DEFAULT; assertEquals( pricerTrade.parSpreadSensitivity(trade, MULTI_USD), pricerSwap.parSpreadSensitivity(trade.getProduct(), MULTI_USD).build()); }