private IborFutureTrade createTrade( LocalDate tradeDate, SecurityId securityId, double quantity, double notional, double price, YearMonth yearMonth, LocalDate lastTradeDate, LocalDate referenceDate) { double accrualFactor = index.getTenor().get(ChronoUnit.MONTHS) / 12.0; IborFuture product = IborFuture.builder() .securityId(securityId) .index(index) .accrualFactor(accrualFactor) .lastTradeDate(lastTradeDate) .notional(notional) .build(); TradeInfo info = TradeInfo.of(tradeDate); return IborFutureTrade.builder() .info(info) .product(product) .quantity(quantity) .price(price) .build(); }
static IborFuture sut() { return IborFuture.builder() .securityId(SECURITY_ID) .currency(USD) .notional(NOTIONAL) .accrualFactor(ACCRUAL_FACTOR) .lastTradeDate(LAST_TRADE_DATE) .index(USD_LIBOR_3M) .rounding(ROUNDING) .build(); }
@ImmutablePreBuild private static void preBuild(Builder builder) { if (builder.index != null) { if (builder.accrualFactor == 0d && builder.index.getTenor().isMonthBased()) { builder.accrualFactor(builder.index.getTenor().getPeriod().toTotalMonths() / 12d); } if (builder.currency == null) { builder.currency = builder.index.getCurrency(); } } }
static IborFuture sut2() { return IborFuture.builder() .securityId(SECURITY_ID2) .currency(GBP) .notional(NOTIONAL2) .accrualFactor(ACCRUAL_FACTOR2) .lastTradeDate(LAST_TRADE_DATE2) .index(GBP_LIBOR_2M) .build(); }