public void test_min_builder() { CdsTrade test = CdsTrade.builder() .product(PRODUCT) .info(TRADE_INFO) .build(); assertEquals(test.getProduct(), PRODUCT); assertEquals(test.getInfo(), TRADE_INFO); assertFalse(test.getUpfrontFee().isPresent()); }
public void test_min_resolve() { ResolvedCdsTrade test = CdsTrade.builder() .product(PRODUCT) .info(TRADE_INFO) .build() .resolve(REF_DATA); assertEquals(test.getProduct(), PRODUCT.resolve(REF_DATA)); assertEquals(test.getInfo(), TRADE_INFO); assertFalse(test.getUpfrontFee().isPresent()); }
.build(); List<ResolvedCdsTrade> trades = products.stream() .map(p -> CdsTrade.builder().product(p).info(info).build().resolve(REF_DATA)) .collect(Collectors.toList()); List<CdsQuote> pufsComp =
.product(cds) .upfrontFee(upfrontFee) .build();
.info(info) .product(product) .build(); CdsTrade test1 = base.createTrade(LEGAL_ENTITY, tradeDate, tenor, BUY, NOTIONAL, COUPON, REF_DATA); assertEquals(test1, expected); .product(product) .upfrontFee(upfront) .build(); CdsTrade test5 = base.createTrade(LEGAL_ENTITY, tradeDate, tenor, BUY, NOTIONAL, COUPON, upfront, REF_DATA); assertEquals(test5, expectedWithUf);
public void pricePufTest() { double premium = 150d * ONE_BP; Cds product = Cds.of(BUY, LEGAL_ENTITY, GBP, 1.0e6, START_DATE, END_DATE, Frequency.P3M, DEFAULT_CALENDAR, premium); TradeInfo info = TradeInfo.builder().tradeDate(TODAY).settlementDate(product.getSettlementDateOffset().adjust(TODAY, REF_DATA)).build(); ResolvedCdsTrade trade = CdsTrade.builder().product(product).info(info).build().resolve(REF_DATA); NodalCurve cc = CALIB.calibrate(ImmutableList.of(trade), DoubleArray.of(0.0123), DoubleArray.of(0.0), CurveName.of("test"), TODAY, DSC_CURVE, REC_RATES, REF_DATA); CreditRatesProvider rates = RATES_PROVIDER.toImmutableCreditRatesProvider().toBuilder() .creditCurves(ImmutableMap.of( Pair.of(LEGAL_ENTITY, GBP), LegalEntitySurvivalProbabilities.of(LEGAL_ENTITY, IsdaCreditDiscountFactors.of(GBP, TODAY, cc)))) .build(); double pointsUpFront = CONV.pointsUpfront(trade, rates, REF_DATA); double cleanPrice = CONV.cleanPrice(trade, rates, REF_DATA); double cleanPriceRe = CONV.cleanPriceFromPointsUpfront(pointsUpFront); assertEquals(cleanPrice, cleanPriceRe, TOL); }
public void standardQuoteTest2() { double quotedSpread = 143.4 * ONE_BP; double expectedPuf = -0.2195134271137960; // taken from Excel-ISDA 1.8.2 double premium = 500d * ONE_BP; Cds product = Cds.of(SELL, LEGAL_ENTITY, GBP, 1.0e8, START_DATE, END_DATE, Frequency.P6M, DEFAULT_CALENDAR, premium); TradeInfo info = TradeInfo.builder().tradeDate(TODAY).settlementDate(product.getSettlementDateOffset().adjust(TODAY, REF_DATA)).build(); ResolvedCdsTrade trade = CdsTrade.builder().product(product).info(info).build().resolve(REF_DATA); CdsQuote quotedSpreadQuoted = CdsQuote.of(CdsQuoteConvention.QUOTED_SPREAD, quotedSpread); CdsQuote derivedPuf = CONV.pointsUpFrontFromQuotedSpread(trade, quotedSpreadQuoted, RATES_PROVIDER, REF_DATA); assertEquals(derivedPuf.getQuotedValue(), expectedPuf, 5e-13); assertTrue(derivedPuf.getQuoteConvention().equals(CdsQuoteConvention.POINTS_UPFRONT)); CdsQuote derivedQuotedSpread = CONV.quotedSpreadFromPointsUpfront(trade, derivedPuf, RATES_PROVIDER, REF_DATA); assertEquals(derivedQuotedSpread.getQuotedValue(), quotedSpread, 1e-15); assertTrue(derivedQuotedSpread.getQuoteConvention().equals(CdsQuoteConvention.QUOTED_SPREAD)); }
public void standardQuoteTest() { double pointsUpFront = 0.007; double expectedParSpread = 0.011112592882846; // taken from Excel-ISDA 1.8.2 double premium = 100d * ONE_BP; Cds product = Cds.of(BUY, LEGAL_ENTITY, GBP, 1.0e6, START_DATE, END_DATE, Frequency.P3M, DEFAULT_CALENDAR, premium); TradeInfo info = TradeInfo.builder().tradeDate(TODAY).settlementDate(product.getSettlementDateOffset().adjust(TODAY, REF_DATA)).build(); ResolvedCdsTrade trade = CdsTrade.builder().product(product).info(info).build().resolve(REF_DATA); CdsQuote pufQuote = CdsQuote.of(CdsQuoteConvention.POINTS_UPFRONT, pointsUpFront); CdsQuote quotedSpread = CONV.quotedSpreadFromPointsUpfront(trade, pufQuote, RATES_PROVIDER, REF_DATA); assertEquals(quotedSpread.getQuotedValue(), expectedParSpread, 1e-14); assertTrue(quotedSpread.getQuoteConvention().equals(CdsQuoteConvention.QUOTED_SPREAD)); CdsQuote derivedPuf = CONV.pointsUpFrontFromQuotedSpread(trade, quotedSpread, RATES_PROVIDER, REF_DATA); assertEquals(derivedPuf.getQuotedValue(), pointsUpFront, 1e-15); assertTrue(derivedPuf.getQuoteConvention().equals(CdsQuoteConvention.POINTS_UPFRONT)); }
public void coverage_trade() { CdsCalibrationTrade test1 = CdsCalibrationTrade.of(TRADE, QUOTE1); coverImmutableBean(test1); CdsCalibrationTrade test2 = CdsCalibrationTrade.of( CdsTrade.builder() .product(PRODUCT) .info(TRADE_INFO) .build(), QUOTE2); coverBeanEquals(test1, test2); }
CdsTrade sut() { return CdsTrade.builder() .product(PRODUCT) .upfrontFee(UPFRONT) .info(TRADE_INFO) .build(); }
public void coverage() { CdsTrade test1 = sut(); coverImmutableBean(test1); Cds product = Cds.of(BUY, LEGAL_ENTITY, USD, 1.e9, START_DATE, END_DATE, P3M, SAT_SUN, 0.067); CdsTrade test2 = CdsTrade.builder() .product(product) .info(TradeInfo.empty()) .build(); coverBeanEquals(test1, test2); }