public void test_trade() { OvernightIborSwapCurveNode node = OvernightIborSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); LocalDate tradeDate = LocalDate.of(2015, 1, 22); double rate = 0.125; double quantity = -1234.56; MarketData marketData = ImmutableMarketData.builder(tradeDate).addValue(QUOTE_ID, rate).build(); SwapTrade trade = node.trade(quantity, marketData, REF_DATA); SwapTrade expected = TEMPLATE.createTrade(tradeDate, BUY, -quantity, rate + SPREAD, REF_DATA); assertEquals(trade, expected); }
private static ImmutableMarketData baseData() { return ImmutableMarketData.builder(VAL_DATE) .addValue(ID1, VAL1) .addValue(ID2, VAL2) .addTimeSeriesMap(ImmutableMap.of(ID4, TIME_SERIES)) .build(); }
public void test_builder() { ImmutableMarketData test = ImmutableMarketData.builder(VAL_DATE.plusDays(1)) .valuationDate(VAL_DATE) .addValue(ID1, "123") .addValueUnsafe(ID2, "124") .addValueMap(ImmutableMap.of(ID3, "201")) .addTimeSeries(ID4, TIME_SERIES) .build(); assertEquals(test.getValuationDate(), VAL_DATE); assertEquals(test.getValues().get(ID1), "123"); assertEquals(test.getValues().get(ID2), "124"); assertEquals(test.getIds(), ImmutableSet.of(ID1, ID2, ID3)); assertEquals(test.getTimeSeries().get(ID4), TIME_SERIES); }
/** * Obtains an instance from a valuation date, map of values and time-series. * * @param valuationDate the valuation date of the market data * @param values the market data values * @param timeSeries the time-series * @return the market data instance containing the values in the map and the time-series * @throws ClassCastException if a value does not match the parameterized type associated with the identifier */ public static MarketData of( LocalDate valuationDate, Map<? extends MarketDataId<?>, ?> values, Map<? extends ObservableId, LocalDateDoubleTimeSeries> timeSeries) { return ImmutableMarketData.builder(valuationDate).values(values).timeSeries(timeSeries).build(); }
public void test_initialGuess() { FixedInflationSwapCurveNode node = FixedInflationSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); LocalDate valuationDate = LocalDate.of(2015, 1, 22); double rate = 0.035; double lastPriceIndex = 123.4; LocalDateDoubleTimeSeries ts = LocalDateDoubleTimeSeries.builder() .put(LocalDate.of(2024, 10, 31), lastPriceIndex).build(); MarketData marketData = ImmutableMarketData.builder(valuationDate).addValue(QUOTE_ID, rate) .addTimeSeries(IndexQuoteId.of(PriceIndices.EU_EXT_CPI), ts).build(); assertEquals(node.initialGuess(marketData, ValueType.ZERO_RATE), rate); double priceIndexGuess = lastPriceIndex * Math.pow(1.0d + rate, TENOR_10Y.get(ChronoUnit.YEARS)); assertEquals(node.initialGuess(marketData, ValueType.PRICE_INDEX), priceIndexGuess, TOLERANCE_GUESS); }
.addValueMap(mapIdSy) .addTimeSeriesMap(ts).build();
/** * Obtains an instance containing no market data. * * @param valuationDate the valuation date of the market data * @return empty market data */ public static MarketData empty(LocalDate valuationDate) { return ImmutableMarketData.builder(valuationDate).build(); }
/** * Sets the time-series in the builder, replacing any existing values. * * @param timeSeries the time-series * @return this builder */ public ImmutableMarketDataBuilder timeSeries(Map<? extends ObservableId, LocalDateDoubleTimeSeries> timeSeries) { this.timeSeries.clear(); return addTimeSeriesMap(timeSeries); }
/** * Sets the values in the builder, replacing any existing values. * * @param values the values * @return this builder */ public ImmutableMarketDataBuilder values(Map<? extends MarketDataId<?>, ?> values) { this.values.clear(); return addValueMap(values); }
/** * Adds multiple values to the builder. * * @param values the values * @return this builder */ public ImmutableMarketDataBuilder addValueMap(Map<? extends MarketDataId<?>, ?> values) { ArgChecker.notNull(values, "values"); values.entrySet().forEach(e -> addValueUnsafe(e.getKey(), e.getValue())); return this; }
private static ImmutableMarketData baseData() { Map<MarketDataId<?>, Object> dataMap = ImmutableMap.of(ID1, VAL1, ID2, VAL2); Map<ObservableId, LocalDateDoubleTimeSeries> timeSeriesMap = ImmutableMap.of(ID4, TIME_SERIES); return ImmutableMarketData.builder(VAL_DATE).values(dataMap).timeSeries(timeSeriesMap).build(); }
.addTimeSeries(TEST_ID1, timeSeries1) .addTimeSeries(TEST_ID2, timeSeries2) .addValue(TEST_ID1, 1.1) .addValue(TEST_ID2, 1.2) .build();
public void test_initialGuess_wrongType() { FixedInflationSwapCurveNode node = FixedInflationSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); MarketData marketData = ImmutableMarketData.builder(VAL_DATE).build(); assertThrowsIllegalArg(() -> node.initialGuess(marketData, ValueType.BLACK_VOLATILITY)); }
public void test_builder_badType() { assertThrows(() -> ImmutableMarketData.builder(VAL_DATE).addValueUnsafe(ID1, 123d), ClassCastException.class); }
public void test_initialGuess() { ThreeLegBasisSwapCurveNode node = ThreeLegBasisSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); LocalDate valuationDate = LocalDate.of(2015, 1, 22); double rate = 0.035; MarketData marketData = ImmutableMarketData.builder(valuationDate).addValue(QUOTE_ID, rate).build(); assertEquals(node.initialGuess(marketData, ValueType.ZERO_RATE), 0d); assertEquals(node.initialGuess(marketData, ValueType.DISCOUNT_FACTOR), 1.0d); }
private static ImmutableMarketData baseData1() { Map<MarketDataId<?>, Object> dataMap = ImmutableMap.of(ID1, VAL1, ID2, VAL2); Map<ObservableId, LocalDateDoubleTimeSeries> timeSeriesMap = ImmutableMap.of(ID5, TIME_SERIES); return ImmutableMarketData.builder(VAL_DATE).values(dataMap).timeSeries(timeSeriesMap).build(); }
private static ImmutableMarketData baseData2() { return ImmutableMarketData.builder(VAL_DATE) .addValue(ID1, VAL1) .addTimeSeriesMap(ImmutableMap.of(ID4, TIME_SERIES)) .build(); }
public void test_initialGuess() { IborIborSwapCurveNode node = IborIborSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); double rate = 0.035; MarketData marketData = ImmutableMarketData.builder(VAL_DATE).addValue(QUOTE_ID, rate).build(); assertEquals(node.initialGuess(marketData, ValueType.ZERO_RATE), 0d); assertEquals(node.initialGuess(marketData, ValueType.DISCOUNT_FACTOR), 1.0d); }
private static ImmutableMarketData baseData2() { Map<MarketDataId<?>, Object> dataMap = ImmutableMap.of(ID1, VAL3, ID3, VAL3); Map<ObservableId, LocalDateDoubleTimeSeries> timeSeriesMap = ImmutableMap.of(ID6, TIME_SERIES); return ImmutableMarketData.builder(VAL_DATE).values(dataMap).timeSeries(timeSeriesMap).build(); }
public void test_trade() { FixedInflationSwapCurveNode node = FixedInflationSwapCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); LocalDate tradeDate = LocalDate.of(2015, 1, 22); double rate = 0.125; double quantity = -1234.56; MarketData marketData = ImmutableMarketData.builder(tradeDate).addValue(QUOTE_ID, rate).build(); SwapTrade trade = node.trade(quantity, marketData, REF_DATA); SwapTrade expected = TEMPLATE.createTrade(tradeDate, BUY, -quantity, rate + SPREAD, REF_DATA); assertEquals(trade, expected); }