/** * 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(); }
/** * Obtains an instance from a valuation date and map of values. * <p> * Each entry in the map is a single piece of market data, keyed by the matching identifier. * For example, an {@link FxRate} can be looked up using an {@link FxRateId}. * The caller must ensure that the each entry in the map corresponds with the parameterized * type on the identifier. * * @param valuationDate the valuation date of the market data * @param values the market data values * @return the market data instance containing the values in the map * @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) { return ImmutableMarketData.of(valuationDate, values); }
@Override public MarketData combinedWith(MarketData other) { if (!(other instanceof ImmutableMarketData)) { return MarketData.super.combinedWith(other); } else { return combinedWith((ImmutableMarketData) other); } }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 113107279: // valuationDate return ((ImmutableMarketData) bean).getValuationDate(); case -823812830: // values return ((ImmutableMarketData) bean).getValues(); case 779431844: // timeSeries return ((ImmutableMarketData) bean).getTimeSeries(); } return super.propertyGet(bean, propertyName, quiet); }
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 coverage() { Map<MarketDataId<?>, Object> dataMap = ImmutableMap.of(ID1, VAL1); ImmutableMarketData test = ImmutableMarketData.of(VAL_DATE, dataMap); coverImmutableBean(test); Map<MarketDataId<?>, Object> dataMap2 = ImmutableMap.of(ID2, VAL2); ImmutableMarketData test2 = ImmutableMarketData.of(VAL_DATE.minusDays(1), dataMap2); coverBeanEquals(test, test2); }
public void calibration_present_value_oneGroup_fixing() { RatesProvider result = CALIBRATOR.calibrate(CURVE_GROUP_CONFIG, ALL_QUOTES_BD.combinedWith(TS_BD_LIBOR3M), REF_DATA); assertResult(result); }
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(); }
private static MarketDataFxRateProvider provider() { Map<FxRateId, FxRate> marketDataMap = ImmutableMap.of(FxRateId.of(EUR, USD, OBS_SOURCE), FxRate.of(EUR, USD, EUR_USD)); MarketData marketData = ImmutableMarketData.of(VAL_DATE, marketDataMap); return MarketDataFxRateProvider.of(marketData, OBS_SOURCE, GBP); }
public void calibration_present_value_oneGroup_fixing() { RatesProvider result = CALIBRATOR.calibrate(CURVE_GROUP_CONFIG, ALL_QUOTES_BD.combinedWith(TS_BD_LIBOR3M), REF_DATA); assertResult(result, ALL_QUOTES_BD); }
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(); }
public void coverage() { ExtendedMarketData<String> test = ExtendedMarketData.of(ID1, VAL1, BASE_DATA); coverImmutableBean(test); ExtendedMarketData<String> test2 = ExtendedMarketData.of(ID2, VAL2, ImmutableMarketData.of(VAL_DATE, ImmutableMap.of())); coverBeanEquals(test, test2); }
public void calibration_present_value_oneGroup_holiday() { RatesProvider result = CALIBRATOR.calibrate(CURVE_GROUP_CONFIG, ALL_QUOTES_HO.combinedWith(TS_HO_LIBOR3M), REF_DATA); assertResult(result, ALL_QUOTES_HO); }
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 cross_counter() { Map<FxRateId, FxRate> marketDataMap = ImmutableMap.of(FxRateId.of(EUR, USD), FxRate.of(EUR, USD, EUR_USD), FxRateId.of(EUR, BEF), FxRate.of(EUR, BEF, EUR_BEF)); MarketData marketData = ImmutableMarketData.of(VAL_DATE, marketDataMap); FxRateProvider fx = MarketDataFxRateProvider.of(marketData); assertEquals(fx.fxRate(USD, BEF), EUR_BEF / EUR_USD, 1.0E-10); assertEquals(fx.fxRate(BEF, USD), EUR_USD / EUR_BEF, 1.0E-10); }
for (int looptest = 0; looptest < nbTests; looptest++) { RatesProvider multicurve = CALIBRATOR.calibrate(GROUPS_IN_EUR, MARKET_QUOTES_EUR_INPUT.combinedWith(TS_LARGE_MD), REF_DATA); hs += multicurve.getValuationDate().getDayOfMonth(); for (int looptest = 0; looptest < nbTests; looptest++) { RatesProvider multicurve1 = CALIBRATOR.calibrate(GROUPS_IN_EUR, MARKET_QUOTES_EUR_INPUT.combinedWith(TS_LARGE_MD), REF_DATA); RatesProvider multicurve2 = CALIBRATOR_SYNTHETIC.calibrate(GROUPS_SYN_EUR, multicurve1, REF_DATA); hs += multicurve2.getValuationDate().getDayOfMonth();
private static ImmutableMarketData baseData2() { return ImmutableMarketData.builder(VAL_DATE) .addValue(ID1, VAL1) .addTimeSeriesMap(ImmutableMap.of(ID4, TIME_SERIES)) .build(); }
public void cross_base() { Map<FxRateId, FxRate> marketDataMap = ImmutableMap.of(FxRateId.of(EUR, USD), FxRate.of(EUR, USD, EUR_USD), FxRateId.of(GBP, USD), FxRate.of(GBP, USD, GBP_USD)); MarketData marketData = ImmutableMarketData.of(VAL_DATE, marketDataMap); FxRateProvider fx = MarketDataFxRateProvider.of(marketData); assertEquals(fx.fxRate(GBP, EUR), GBP_USD / EUR_USD, 1.0E-10); assertEquals(fx.fxRate(EUR, GBP), EUR_USD / GBP_USD, 1.0E-10); }