//-------------------------------------------------------------------------
        public virtual void test_marketDataView()
        {
            IborCapFloorMarketDataLookup test            = IborCapFloorMarketDataLookup.of(USD_LIBOR_3M, VOL_ID1);
            LocalDate                      valDate       = date(2015, 6, 30);
            ScenarioMarketData             md            = new TestMarketDataMap(valDate, ImmutableMap.of(), ImmutableMap.of());
            IborCapFloorScenarioMarketData multiScenario = test.marketDataView(md);

            assertEquals(multiScenario.Lookup, test);
            assertEquals(multiScenario.MarketData, md);
            assertEquals(multiScenario.ScenarioCount, 1);
            IborCapFloorMarketData scenario = multiScenario.scenario(0);

            assertEquals(scenario.Lookup, test);
            assertEquals(scenario.MarketData, md.scenario(0));
            assertEquals(scenario.ValuationDate, valDate);
        }
Пример #2
0
        //-------------------------------------------------------------------------
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: @Override public java.util.Map<com.opengamma.strata.calc.Measure, com.opengamma.strata.collect.result.Result<?>> calculate(com.opengamma.strata.product.capfloor.IborCapFloorTrade trade, java.util.Set<com.opengamma.strata.calc.Measure> measures, com.opengamma.strata.calc.runner.CalculationParameters parameters, com.opengamma.strata.data.scenario.ScenarioMarketData scenarioMarketData, com.opengamma.strata.basics.ReferenceData refData)
        public virtual IDictionary <Measure, Result <object> > calculate(IborCapFloorTrade trade, ISet <Measure> measures, CalculationParameters parameters, ScenarioMarketData scenarioMarketData, ReferenceData refData)
        {
            // expand the trade once for all measures and all scenarios
            ResolvedIborCapFloorTrade      resolved           = trade.resolve(refData);
            RatesMarketDataLookup          ratesLookup        = parameters.getParameter(typeof(RatesMarketDataLookup));
            RatesScenarioMarketData        ratesMarketData    = ratesLookup.marketDataView(scenarioMarketData);
            IborCapFloorMarketDataLookup   capFloorLookup     = parameters.getParameter(typeof(IborCapFloorMarketDataLookup));
            IborCapFloorScenarioMarketData capFloorMarketData = capFloorLookup.marketDataView(scenarioMarketData);

            // loop around measures, calculating all scenarios for one measure
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: java.util.Map<com.opengamma.strata.calc.Measure, com.opengamma.strata.collect.result.Result<?>> results = new java.util.HashMap<>();
            IDictionary <Measure, Result <object> > results = new Dictionary <Measure, Result <object> >();

            foreach (Measure measure in measures)
            {
                results[measure] = calculate(measure, resolved, ratesMarketData, capFloorMarketData);
            }
            return(results);
        }
Пример #3
0
        //-------------------------------------------------------------------------
        // calculates calibrated bucketed PV01 for all scenarios
        internal ScenarioArray <CurrencyParameterSensitivities> pv01RatesCalibratedBucketed(ResolvedIborCapFloorTrade trade, RatesScenarioMarketData ratesMarketData, IborCapFloorScenarioMarketData capFloorMarketData)
        {
            IborIndex index = trade.Product.CapFloorLeg.Index;

            return(ScenarioArray.of(ratesMarketData.ScenarioCount, i => pv01RatesCalibratedBucketed(trade, ratesMarketData.scenario(i).ratesProvider(), capFloorMarketData.scenario(i).volatilities(index))));
        }
Пример #4
0
        //-------------------------------------------------------------------------
        // calculates calibrated sum PV01 for all scenarios
        internal MultiCurrencyScenarioArray pv01RatesCalibratedSum(ResolvedIborCapFloorTrade trade, RatesScenarioMarketData ratesMarketData, IborCapFloorScenarioMarketData capFloorMarketData)
        {
            IborIndex index = trade.Product.CapFloorLeg.Index;

            return(MultiCurrencyScenarioArray.of(ratesMarketData.ScenarioCount, i => pv01RatesCalibratedSum(trade, ratesMarketData.scenario(i).ratesProvider(), capFloorMarketData.scenario(i).volatilities(index))));
        }
Пример #5
0
        // calculate one measure
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: private com.opengamma.strata.collect.result.Result<?> calculate(com.opengamma.strata.calc.Measure measure, com.opengamma.strata.product.capfloor.ResolvedIborCapFloorTrade trade, com.opengamma.strata.measure.rate.RatesScenarioMarketData ratesMarketData, IborCapFloorScenarioMarketData capFloorMarketData)
        private Result <object> calculate(Measure measure, ResolvedIborCapFloorTrade trade, RatesScenarioMarketData ratesMarketData, IborCapFloorScenarioMarketData capFloorMarketData)
        {
            SingleMeasureCalculation calculator = CALCULATORS.get(measure);

            if (calculator == null)
            {
                return(Result.failure(FailureReason.UNSUPPORTED, "Unsupported measure for IborCapFloorTrade: {}", measure));
            }
            return(Result.of(() => calculator(trade, ratesMarketData, capFloorMarketData)));
        }