public CreditDiscountFactors discountFactors(Currency currency) { CurveId curveId = lookup.DiscountCurveIds.get(currency); if (curveId == null) { throw new MarketDataNotFoundException("Unable to find discount curve: " + currency); } Curve curve = marketData.getValue(curveId); return(CreditDiscountFactors.of(currency, ValuationDate, curve)); }
//------------------------------------------------------------------------- public LegalEntitySurvivalProbabilities survivalProbabilities(StandardId legalEntityId, Currency currency) { CurveId curveId = lookup.CreditCurveIds.get(Pair.of(legalEntityId, currency)); if (curveId == null) { throw new MarketDataNotFoundException("Unable to find credit curve: " + legalEntityId + ", " + currency); } Curve curve = marketData.getValue(curveId); CreditDiscountFactors survivalProbabilities = CreditDiscountFactors.of(currency, ValuationDate, curve); return(LegalEntitySurvivalProbabilities.of(legalEntityId, survivalProbabilities)); }
public virtual void test_of_constant_interface() { IsdaCreditDiscountFactors test = (IsdaCreditDiscountFactors)CreditDiscountFactors.of(USD, VALUATION, CONST_CURVE); assertEquals(test.Currency, USD); assertEquals(test.Curve, CONST_CURVE); assertEquals(test.DayCount, ACT_365L); assertEquals(test.ParameterCount, 1); assertEquals(test.getParameter(0), RATE_SINGLE); assertEquals(test.ParameterKeys, DoubleArray.of(TIME_SINGLE)); assertEquals(test.getParameterMetadata(0), SimpleCurveParameterMetadata.of(METADATA.XValueType, TIME_SINGLE)); assertEquals(test.ValuationDate, VALUATION); assertEquals(test.findData(CONST_CURVE.Name), CONST_CURVE); assertEquals(test.findData(CurveName.of("Rubbish")), null); assertEquals(test.toDiscountFactors(), ZeroRateDiscountFactors.of(USD, VALUATION, CONST_CURVE)); assertEquals(test.IsdaCompliant, true); }
//------------------------------------------------------------------------- public ImmutableCreditRatesProvider toImmutableCreditRatesProvider() { LocalDate valuationDate = ValuationDate; // credit curves IDictionary <Pair <StandardId, Currency>, LegalEntitySurvivalProbabilities> creditCurves = new Dictionary <Pair <StandardId, Currency>, LegalEntitySurvivalProbabilities>(); foreach (Pair <StandardId, Currency> pair in lookup.CreditCurveIds.Keys) { CurveId curveId = lookup.CreditCurveIds.get(pair); if (marketData.containsValue(curveId)) { Curve curve = marketData.getValue(curveId); CreditDiscountFactors survivalProbabilities = CreditDiscountFactors.of(pair.Second, valuationDate, curve); creditCurves[pair] = LegalEntitySurvivalProbabilities.of(pair.First, survivalProbabilities); } } // discount curves IDictionary <Currency, CreditDiscountFactors> discountCurves = new Dictionary <Currency, CreditDiscountFactors>(); foreach (Currency currency in lookup.DiscountCurveIds.Keys) { CurveId curveId = lookup.DiscountCurveIds.get(currency); if (marketData.containsValue(curveId)) { Curve curve = marketData.getValue(curveId); discountCurves[currency] = CreditDiscountFactors.of(currency, valuationDate, curve); } } // recovery rate curves IDictionary <StandardId, RecoveryRates> recoveryRateCurves = new Dictionary <StandardId, RecoveryRates>(); foreach (StandardId legalEntityId in lookup.RecoveryRateCurveIds.Keys) { CurveId curveId = lookup.RecoveryRateCurveIds.get(legalEntityId); if (marketData.containsValue(curveId)) { Curve curve = marketData.getValue(curveId); RecoveryRates recoveryRate = RecoveryRates.of(legalEntityId, valuationDate, curve); recoveryRateCurves[legalEntityId] = recoveryRate; } } // build result return(ImmutableCreditRatesProvider.builder().valuationDate(valuationDate).creditCurves(creditCurves).discountCurves(discountCurves).recoveryRateCurves(recoveryRateCurves).build()); }
public virtual void test_of_interface() { IsdaCreditDiscountFactors test = (IsdaCreditDiscountFactors)CreditDiscountFactors.of(USD, VALUATION, CURVE); assertEquals(test.Currency, USD); assertEquals(test.Curve, CURVE); assertEquals(test.DayCount, ACT_365F); assertEquals(test.ParameterCount, RATE.size()); assertEquals(test.getParameter(3), RATE.get(3)); assertEquals(test.getParameter(1), RATE.get(1)); assertEquals(test.ParameterKeys, TIME); assertEquals(test.getParameterMetadata(4), SimpleCurveParameterMetadata.of(METADATA.XValueType, TIME.get(4))); assertEquals(test.getParameterMetadata(6), SimpleCurveParameterMetadata.of(METADATA.XValueType, TIME.get(6))); assertEquals(test.ValuationDate, VALUATION); assertEquals(test.findData(CURVE.Name), CURVE); assertEquals(test.findData(CurveName.of("Rubbish")), null); assertEquals(test.toDiscountFactors(), ZeroRateDiscountFactors.of(USD, VALUATION, CURVE)); assertEquals(test.IsdaCompliant, true); }