//------------------------------------------------------------------------- public virtual void test_marketDataView() { ImmutableMap <Currency, CurveId> discounts = ImmutableMap.of(USD, CURVE_ID_DSC); ImmutableMap <Index, CurveId> forwards = ImmutableMap.of(USD_LIBOR_3M, CURVE_ID_FWD); RatesMarketDataLookup test = RatesMarketDataLookup.of(discounts, forwards); LocalDate valDate = date(2015, 6, 30); ScenarioMarketData md = new TestMarketDataMap(valDate, ImmutableMap.of(), ImmutableMap.of()); RatesScenarioMarketData multiScenario = test.marketDataView(md); assertEquals(multiScenario.Lookup, test); assertEquals(multiScenario.MarketData, md); assertEquals(multiScenario.ScenarioCount, 1); RatesMarketData scenario = multiScenario.scenario(0); assertEquals(scenario.Lookup, test); assertEquals(scenario.MarketData, md.scenario(0)); assertEquals(scenario.ValuationDate, valDate); }
//------------------------------------------------------------------------- // calculates explain present value for all scenarios internal ScenarioArray <ExplainMap> explainPresentValue(ResolvedFraTrade trade, RatesScenarioMarketData marketData) { return(ScenarioArray.of(marketData.ScenarioCount, i => explainPresentValue(trade, marketData.scenario(i).ratesProvider()))); }
//------------------------------------------------------------------------- // calculates present value for all scenarios internal CurrencyScenarioArray presentValue(ResolvedFraTrade trade, RatesScenarioMarketData marketData) { return(CurrencyScenarioArray.of(marketData.ScenarioCount, i => presentValue(trade, marketData.scenario(i).ratesProvider()))); }
//------------------------------------------------------------------------- // calculates currency exposure for all scenarios internal MultiCurrencyScenarioArray currencyExposure(ResolvedFraTrade trade, RatesScenarioMarketData marketData) { return(MultiCurrencyScenarioArray.of(marketData.ScenarioCount, i => currencyExposure(trade, marketData.scenario(i).ratesProvider()))); }
//------------------------------------------------------------------------- // calculates cash flows for all scenarios internal ScenarioArray <CashFlows> cashFlows(ResolvedFraTrade trade, RatesScenarioMarketData marketData) { return(ScenarioArray.of(marketData.ScenarioCount, i => cashFlows(trade, marketData.scenario(i).ratesProvider()))); }
//------------------------------------------------------------------------- // calculates par spread for all scenarios internal DoubleScenarioArray parSpread(ResolvedFraTrade trade, RatesScenarioMarketData marketData) { return(DoubleScenarioArray.of(marketData.ScenarioCount, i => parSpread(trade, marketData.scenario(i).ratesProvider()))); }
//------------------------------------------------------------------------- // calculates single-node gamma PV01 for all scenarios internal ScenarioArray <CurrencyParameterSensitivities> pv01SingleNodeGammaBucketed(ResolvedFraTrade trade, RatesScenarioMarketData marketData) { return(ScenarioArray.of(marketData.ScenarioCount, i => pv01SingleNodeGammaBucketed(trade, marketData.scenario(i).ratesProvider()))); }
//------------------------------------------------------------------------- // calculates semi-parallel gamma PV01 for all scenarios internal ScenarioArray <CurrencyParameterSensitivities> pv01SemiParallelGammaBucketed(ResolvedFraTrade trade, RatesScenarioMarketData marketData) { return(ScenarioArray.of(marketData.ScenarioCount, i => pv01SemiParallelGammaBucketed(trade, marketData.scenario(i)))); }
//------------------------------------------------------------------------- // calculates market quote sum PV01 for all scenarios internal MultiCurrencyScenarioArray pv01MarketQuoteSum(ResolvedFraTrade trade, RatesScenarioMarketData marketData) { return(MultiCurrencyScenarioArray.of(marketData.ScenarioCount, i => pv01MarketQuoteSum(trade, marketData.scenario(i).ratesProvider()))); }
//------------------------------------------------------------------------- // calculates leg present value for all scenarios internal ScenarioArray <LegAmounts> legPresentValue(ResolvedSwapTrade trade, RatesScenarioMarketData marketData) { return(ScenarioArray.of(marketData.ScenarioCount, i => legPresentValue(trade, marketData.scenario(i).ratesProvider()))); }
//------------------------------------------------------------------------- // calculates accrued interest for all scenarios internal MultiCurrencyScenarioArray accruedInterest(ResolvedSwapTrade trade, RatesScenarioMarketData marketData) { return(MultiCurrencyScenarioArray.of(marketData.ScenarioCount, i => accruedInterest(trade, marketData.scenario(i).ratesProvider()))); }