/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(TermDepositTrade beanToCopy) { this.info = beanToCopy.getInfo(); this.product = beanToCopy.getProduct(); }
public void test_of() { TermDepositTrade test = TermDepositTrade.of(TRADE_INFO, DEPOSIT); assertEquals(test.getProduct(), DEPOSIT); assertEquals(test.getInfo(), TRADE_INFO); assertEquals(test.withInfo(TRADE_INFO).getInfo(), TRADE_INFO); }
@Override public ResolvedTermDepositTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
public void test_builder() { TermDepositTrade test = TermDepositTrade.builder() .product(DEPOSIT) .info(TRADE_INFO) .build(); assertEquals(test.getProduct(), DEPOSIT); assertEquals(test.getInfo(), TRADE_INFO); }
private static TermDepositTrade adjustTrade( TermDepositTrade trade, BusinessDayConvention dateCnv, Optional<HolidayCalendarId> dateCalOpt) { if (!dateCalOpt.isPresent()) { return trade; } TermDeposit.Builder builder = trade.getProduct().toBuilder(); dateCalOpt.ifPresent(cal -> builder.businessDayAdjustment(BusinessDayAdjustment.of(dateCnv, cal))); return trade.toBuilder() .product(builder.build()) .build(); }
private LocalDate calculateEnd(LocalDate valuationDate, ReferenceData refData) { TermDepositTrade trade = template.createTrade(valuationDate, BuySell.BUY, 0d, 0d, refData); ResolvedTermDeposit deposit = trade.getProduct().resolve(refData); return deposit.getEndDate(); }
public void test_summarize() { TermDepositTrade trade = TermDepositTrade.builder() .product(DEPOSIT) .info(TRADE_INFO) .build(); PortfolioItemSummary expected = PortfolioItemSummary.builder() .id(TRADE_INFO.getId().orElse(null)) .portfolioItemType(PortfolioItemType.TRADE) .productType(ProductType.TERM_DEPOSIT) .currencies(Currency.GBP) .description("6M GBP 100mm Deposit 2.5% : 19Jan15-19Jul15") .build(); assertEquals(trade.summarize(), expected); }
TermDepositTrade trade = convention.createTrade( tradeDate, periodToStart, buySell, notional, fixedRate, resolver.getReferenceData()); trade = trade.toBuilder().info(info).build(); return adjustTrade(trade, dateCnv, dateCalOpt); .dayCount(dayCount) .rate(fixedRate); TermDepositTrade trade = TermDepositTrade.of(info, builder.build()); return adjustTrade(trade, dateCnv, dateCalOpt);
@Override public TermDepositTrade build() { return new TermDepositTrade( info, product); }
public void test_serialization() { TermDepositTrade test = TermDepositTrade.builder() .product(DEPOSIT) .info(TRADE_INFO) .build(); assertSerialization(test); }
/** * Obtains an instance of a Term Deposit trade. * * @param info the trade info * @param product the product * @return the trade */ public static TermDepositTrade of(TradeInfo info, TermDeposit product) { return new TermDepositTrade(info, product); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3237038: // info return ((TermDepositTrade) bean).getInfo(); case -309474065: // product return ((TermDepositTrade) bean).getProduct(); } return super.propertyGet(bean, propertyName, quiet); }
@Override public TermDepositTrade toTrade( TradeInfo tradeInfo, LocalDate startDate, LocalDate endDate, BuySell buySell, double notional, double rate) { Optional<LocalDate> tradeDate = tradeInfo.getTradeDate(); if (tradeDate.isPresent()) { ArgChecker.inOrderOrEqual(tradeDate.get(), startDate, "tradeDate", "startDate"); } return TermDepositTrade.builder() .info(tradeInfo) .product(TermDeposit.builder() .buySell(buySell) .currency(currency) .notional(notional) .startDate(startDate) .endDate(endDate) .businessDayAdjustment(businessDayAdjustment) .rate(rate) .dayCount(dayCount) .build()) .build(); }
@Override public TermDepositTrade withInfo(TradeInfo info) { return new TermDepositTrade(info, product); }
public void termDeposit() { String location = "classpath:com/opengamma/strata/loader/fpml/td-ex01-simple-term-deposit.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party1")).parseTrades(resource); assertEquals(trades.size(), 1); Trade trade = trades.get(0); assertEquals(trade.getClass(), TermDepositTrade.class); TermDepositTrade tdTrade = (TermDepositTrade) trade; assertEquals(tdTrade.getInfo().getTradeDate(), Optional.of(date(2002, 2, 14))); TermDeposit td = tdTrade.getProduct(); assertEquals(td.getBuySell(), BUY); assertEquals(td.getStartDate(), date(2002, 2, 14)); assertEquals(td.getEndDate(), date(2002, 2, 15)); assertEquals(td.getCurrency(), CHF); assertEquals(td.getNotional(), 25000000d); assertEquals(td.getRate(), 0.04); assertEquals(td.getDayCount(), ACT_360); }
return TermDepositTrade.builder() .info(tradeInfoBuilder.build()) .product(termBuilder.build())
public void test_trade() { TermDepositCurveNode node = TermDepositCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); double rate = 0.035; MarketData marketData = ImmutableMarketData.builder(VAL_DATE).addValue(QUOTE_ID, rate).build(); TermDepositTrade trade = node.trade(1d, marketData, REF_DATA); LocalDate startDateExpected = PLUS_TWO_DAYS.adjust(VAL_DATE, REF_DATA); LocalDate endDateExpected = startDateExpected.plus(DEPOSIT_PERIOD); TermDeposit depositExpected = TermDeposit.builder() .buySell(BuySell.BUY) .currency(EUR) .dayCount(ACT_360) .startDate(startDateExpected) .endDate(endDateExpected) .notional(1.0d) .businessDayAdjustment(BDA_MOD_FOLLOW) .rate(rate + SPREAD) .build(); TradeInfo tradeInfoExpected = TradeInfo.builder() .tradeDate(VAL_DATE) .build(); assertEquals(trade.getProduct(), depositExpected); assertEquals(trade.getInfo(), tradeInfoExpected); }