@Override public ResolvedFraTrade resolvedTrade(double quantity, MarketData marketData, ReferenceData refData) { return trade(quantity, marketData, refData).resolve(refData); }
public void test_trade_noMarketData() { FraCurveNode node = FraCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); LocalDate valuationDate = LocalDate.of(2015, 1, 22); MarketData marketData = MarketData.empty(valuationDate); assertThrows(() -> node.trade(1d, marketData, REF_DATA), MarketDataNotFoundException.class); }
public void test_metadata_last_fixing() { FraCurveNode node = FraCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD).withDate(CurveNodeDate.LAST_FIXING); LocalDate valuationDate = LocalDate.of(2015, 1, 22); ImmutableMarketData marketData = ImmutableMarketData.builder(valuationDate).addValue(QUOTE_ID, 0.0d).build(); FraTrade trade = node.trade(1d, marketData, REF_DATA); ResolvedFra resolved = trade.getProduct().resolve(REF_DATA); LocalDate fixingDate = ((IborRateComputation) (resolved.getFloatingRate())).getFixingDate(); DatedParameterMetadata metadata = node.metadata(valuationDate, REF_DATA); assertEquals(((TenorDateParameterMetadata) metadata).getDate(), fixingDate); assertEquals(((TenorDateParameterMetadata) metadata).getTenor(), TENOR_5M); }
public void test_trade() { FraCurveNode node = FraCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); LocalDate valuationDate = LocalDate.of(2015, 1, 22); double rate = 0.035; ImmutableMarketData marketData = ImmutableMarketData.builder(valuationDate).addValue(QUOTE_ID, rate).build(); FraTrade trade = node.trade(1d, marketData, REF_DATA); LocalDate startDateExpected = BDA_MOD_FOLLOW.adjust(OFFSET.adjust(valuationDate, REF_DATA).plus(PERIOD_TO_START), REF_DATA); LocalDate endDateExpected = BDA_MOD_FOLLOW.adjust(OFFSET.adjust(valuationDate, REF_DATA).plus(PERIOD_TO_END), REF_DATA); Fra productExpected = Fra.builder() .buySell(BuySell.SELL) .currency(GBP) .dayCount(ACT_365F) .startDate(startDateExpected) .endDate(endDateExpected) .paymentDate(AdjustableDate.of(startDateExpected)) .notional(1.0d) .index(GBP_LIBOR_3M) .fixedRate(rate + SPREAD) .build(); TradeInfo tradeInfoExpected = TradeInfo.builder() .tradeDate(valuationDate) .build(); assertEquals(trade.getProduct(), productExpected); assertEquals(trade.getInfo(), tradeInfoExpected); }