예제 #1
0
        static CreditRatesMarketDataLookupTest()
        {
            ImmutableMap <Pair <StandardId, Currency>, CurveId> creditCurve = ImmutableMap.of(Pair.of(ISSUER_A, USD), CC_A_USD, Pair.of(ISSUER_B, GBP), CC_B_GBP, Pair.of(ISSUER_A, GBP), CC_A_GBP);
            ImmutableMap <Currency, CurveId>   discoutCurve  = ImmutableMap.of(USD, DC_USD, GBP, DC_GBP);
            ImmutableMap <StandardId, CurveId> recoveryCurve = ImmutableMap.of(ISSUER_A, RC_A, ISSUER_B, RC_B);

            LOOKUP_WITH_SOURCE = CreditRatesMarketDataLookup.of(creditCurve, discoutCurve, recoveryCurve, OBS_SOURCE);
            LOOKUP             = CreditRatesMarketDataLookup.of(creditCurve, discoutCurve, recoveryCurve);
        }
        //-------------------------------------------------------------------------
        public virtual FunctionRequirements requirements(CdsIndexTrade trade, ISet <Measure> measures, CalculationParameters parameters, ReferenceData refData)
        {
            // extract data from product
            CdsIndex   product       = trade.Product;
            StandardId legalEntityId = product.CdsIndexId;
            Currency   currency      = product.Currency;

            // use lookup to build requirements
            CreditRatesMarketDataLookup lookup = parameters.getParameter(typeof(CreditRatesMarketDataLookup));

            return(lookup.requirements(legalEntityId, currency));
        }
예제 #3
0
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            coverImmutableBean((ImmutableBean)LOOKUP_WITH_SOURCE);
            ImmutableMap <Pair <StandardId, Currency>, CurveId> ccMap = ImmutableMap.of(Pair.of(ISSUER_A, USD), CC_A_USD);
            ImmutableMap <Currency, CurveId>   dcMap = ImmutableMap.of(USD, DC_USD);
            ImmutableMap <StandardId, CurveId> rcMap = ImmutableMap.of(ISSUER_A, RC_A);
            CreditRatesMarketDataLookup        test2 = CreditRatesMarketDataLookup.of(ccMap, dcMap, rcMap);

            coverBeanEquals((ImmutableBean)LOOKUP_WITH_SOURCE, (ImmutableBean)test2);

            // related coverage
            coverImmutableBean((ImmutableBean)LOOKUP_WITH_SOURCE.marketDataView(MOCK_CALC_MARKET_DATA));
            DefaultCreditRatesScenarioMarketData.meta();
            coverImmutableBean((ImmutableBean)LOOKUP_WITH_SOURCE.marketDataView(MOCK_MARKET_DATA));
            DefaultCreditRatesMarketData.meta();
            coverImmutableBean((ImmutableBean)LOOKUP_WITH_SOURCE.marketDataView(MOCK_MARKET_DATA).creditRatesProvider());
            DefaultLookupCreditRatesProvider.meta();
        }
        //-------------------------------------------------------------------------
//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);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @ImmutableConstructor private DefaultCreditRatesScenarioMarketData(CreditRatesMarketDataLookup lookup, com.opengamma.strata.data.scenario.ScenarioMarketData marketData)
        private DefaultCreditRatesScenarioMarketData(CreditRatesMarketDataLookup lookup, ScenarioMarketData marketData)
        {
            this.lookup     = ArgChecker.notNull(lookup, "lookup");
            this.marketData = ArgChecker.notNull(marketData, "marketData");
            this.cache      = new AtomicReferenceArray <CreditRatesMarketData>(marketData.ScenarioCount);
        }
        private readonly AtomicReferenceArray <CreditRatesMarketData> cache;  // derived

        //-------------------------------------------------------------------------
        /// <summary>
        /// Obtains an instance based on a lookup and market data.
        /// <para>
        /// The lookup provides the mapping to find the correct credit, discount and recovery rate curves.
        /// The curves are in the market data.
        ///
        /// </para>
        /// </summary>
        /// <param name="lookup">  the lookup </param>
        /// <param name="marketData">  the market data </param>
        /// <returns> the rates market view </returns>
        internal static DefaultCreditRatesScenarioMarketData of(CreditRatesMarketDataLookup lookup, ScenarioMarketData marketData)
        {
            return(new DefaultCreditRatesScenarioMarketData(lookup, marketData));
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @ImmutableConstructor private DefaultCreditRatesMarketData(CreditRatesMarketDataLookup lookup, com.opengamma.strata.data.MarketData marketData)
        private DefaultCreditRatesMarketData(CreditRatesMarketDataLookup lookup, MarketData marketData)
        {
            this.lookup     = ArgChecker.notNull(lookup, "lookup");
            this.marketData = ArgChecker.notNull(marketData, "marketData");
            this.creditRatesProvider_Renamed = lookup.creditRatesProvider(marketData);
        }