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)); }
//------------------------------------------------------------------------- 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); }