コード例 #1
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.credit.ResolvedCdsTrade trade, CreditRatesScenarioMarketData marketData, com.opengamma.strata.basics.ReferenceData refData)
        private Result <object> calculate(Measure measure, ResolvedCdsTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
        {
            SingleMeasureCalculation calculator = CALCULATORS.get(measure);

            if (calculator == null)
            {
                return(Result.failure(FailureReason.UNSUPPORTED, "Unsupported measure for CdsTrade: {}", measure));
            }
            return(Result.of(() => calculator(trade, marketData, refData)));
        }
コード例 #2
0
        //-------------------------------------------------------------------------
        public virtual void test_marketDataView()
        {
            LocalDate                     valDate       = LocalDate.of(2015, 6, 30);
            ScenarioMarketData            md            = new TestMarketDataMap(valDate, ImmutableMap.of(), ImmutableMap.of());
            CreditRatesScenarioMarketData multiScenario = LOOKUP_WITH_SOURCE.marketDataView(md);

            assertEquals(multiScenario.Lookup, LOOKUP_WITH_SOURCE);
            assertEquals(multiScenario.MarketData, md);
            assertEquals(multiScenario.ScenarioCount, 1);
            CreditRatesMarketData scenario = multiScenario.scenario(0);

            assertEquals(scenario.Lookup, LOOKUP_WITH_SOURCE);
            assertEquals(scenario.MarketData, md.scenario(0));
            assertEquals(scenario.ValuationDate, valDate);
        }
        //-------------------------------------------------------------------------
//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.credit.CdsIndexTrade 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(CdsIndexTrade trade, ISet <Measure> measures, CalculationParameters parameters, ScenarioMarketData scenarioMarketData, ReferenceData refData)
        {
            // resolve the trade once for all measures and all scenarios
            ResolvedCdsIndexTrade resolved = trade.resolve(refData);

            // use lookup to query market data
            CreditRatesMarketDataLookup   ledLookup  = parameters.getParameter(typeof(CreditRatesMarketDataLookup));
            CreditRatesScenarioMarketData marketData = ledLookup.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, marketData, refData);
            }
            return(results);
        }
コード例 #4
0
 //-------------------------------------------------------------------------
 // calculates present value for all scenarios
 internal CurrencyScenarioArray presentValue(ResolvedCdsIndexTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(CurrencyScenarioArray.of(marketData.ScenarioCount, i => presentValue(trade, marketData.scenario(i).creditRatesProvider(), PriceType.DIRTY, refData)));
 }
コード例 #5
0
 //-------------------------------------------------------------------------
 // calculates principal for all scenarios
 internal CurrencyScenarioArray principal(ResolvedCdsIndexTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(CurrencyScenarioArray.of(marketData.ScenarioCount, i => principal(trade, marketData.scenario(i).creditRatesProvider(), refData)));
 }
コード例 #6
0
 //-------------------------------------------------------------------------
 // calculates bucketed CS01 for all scenarios
 internal ScenarioArray <CurrencyParameterSensitivity> cs01Bucketed(ResolvedCdsIndexTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(ScenarioArray.of(marketData.ScenarioCount, i => cs01Bucketed(trade, marketData.scenario(i).creditRatesProvider(), refData)));
 }
コード例 #7
0
 //-------------------------------------------------------------------------
 // calculates jump-to-default for all scenarios
 internal ScenarioArray <JumpToDefault> jumpToDefault(ResolvedCdsIndexTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(ScenarioArray.of(marketData.ScenarioCount, i => jumpToDefault(trade, marketData.scenario(i).creditRatesProvider(), refData)));
 }
コード例 #8
0
 //-------------------------------------------------------------------------
 // calculates market quote sum PV01 for all scenarios
 internal MultiCurrencyScenarioArray pv01MarketQuoteSum(ResolvedCdsIndexTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(MultiCurrencyScenarioArray.of(marketData.ScenarioCount, i => pv01MarketQuoteSum(trade, marketData.scenario(i).creditRatesProvider(), refData)));
 }
コード例 #9
0
 //-------------------------------------------------------------------------
 // calculates price for all scenarios
 internal DoubleScenarioArray unitPrice(ResolvedCdsIndexTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(DoubleScenarioArray.of(marketData.ScenarioCount, i => unitPrice(trade, marketData.scenario(i).creditRatesProvider(), refData)));
 }
コード例 #10
0
 //-------------------------------------------------------------------------
 // calculates expected loss for all scenarios
 internal CurrencyScenarioArray expectedLoss(ResolvedCdsTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(CurrencyScenarioArray.of(marketData.ScenarioCount, i => expectedLoss(trade, marketData.scenario(i).creditRatesProvider())));
 }
コード例 #11
0
 //-------------------------------------------------------------------------
 // calculates recovery01 for all scenarios
 internal CurrencyScenarioArray recovery01(ResolvedCdsTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(CurrencyScenarioArray.of(marketData.ScenarioCount, i => recovery01(trade, marketData.scenario(i).creditRatesProvider(), refData)));
 }
コード例 #12
0
 //-------------------------------------------------------------------------
 // calculates calibrated parallel IR01 for all scenarios
 internal CurrencyScenarioArray ir01CalibratedParallel(ResolvedCdsTrade trade, CreditRatesScenarioMarketData marketData, ReferenceData refData)
 {
     return(CurrencyScenarioArray.of(marketData.ScenarioCount, i => ir01CalibratedParallel(trade, marketData.scenario(i).creditRatesProvider(), refData)));
 }