Exemplo n.º 1
0
        private void SetProperties()
        {
            switch (PricingStructureType)
            {
            case PricingStructureTypeEnum.RateCurve:
            case PricingStructureTypeEnum.RateBasisCurve:
                ForecastRateIndex = ForecastRateIndexHelper.Parse(Index, IndexTenor);
                break;

            case PricingStructureTypeEnum.RateSpreadCurve:
            case PricingStructureTypeEnum.ClearedRateCurve:
                ForecastRateIndex         = ForecastRateIndexHelper.Parse(Index, IndexTenor);
                ReferenceCurveTypeAndName = PropertyHelper.ExtractReferenceCurveName(Properties);
                ReferenceCurveUniqueId    = PropertyHelper.ExtractReferenceCurveUniqueId(Properties);
                break;

            case PricingStructureTypeEnum.DiscountCurve:
                string creditInstrumentId = PropertyHelper.ExtractCreditInstrumentId(Properties);
                string creditSeniority    = PropertyHelper.ExtractCreditSeniority(Properties);
                CreditInstrumentId = InstrumentIdHelper.Parse(creditInstrumentId);
                CreditSeniority    = CreditSeniorityHelper.Parse(creditSeniority);
                break;

            case PricingStructureTypeEnum.RateXccyCurve:
                //ForecastRateIndex = ForecastRateIndexHelper.Parse(Index, IndexTenor);
                string discountInstrumentId = PropertyHelper.ExtractCreditInstrumentId(Properties);
                string discountSeniority    = PropertyHelper.ExtractCreditSeniority(Properties);
                CreditInstrumentId                 = InstrumentIdHelper.Parse(discountInstrumentId);
                CreditSeniority                    = CreditSeniorityHelper.Parse(discountSeniority);
                ReferenceCurveTypeAndName          = PropertyHelper.ExtractReferenceCurveName(Properties);
                ReferenceCurveUniqueId             = PropertyHelper.ExtractReferenceCurveUniqueId(Properties);
                ReferenceFxCurveTypeAndName        = PropertyHelper.ExtractReferenceFxCurveName(Properties);
                ReferenceFxCurveUniqueId           = PropertyHelper.ExtractReferenceFxCurveUniqueId(Properties);
                ReferenceCurrency2CurveTypeAndName = PropertyHelper.ExtractReferenceCurrency2CurveName(Properties);
                ReferenceCurrency2CurveId          = PropertyHelper.ExtractReferenceCurrency2CurveId(Properties);
                break;

            case PricingStructureTypeEnum.InflationCurve:
                ForecastRateIndex = ForecastRateIndexHelper.Parse(Index, IndexTenor);
                var inflationLag = PropertyHelper.ExtractInflationLag(Properties);
                if (inflationLag != "Unknown")
                {
                    InflationLag = PeriodHelper.Parse(inflationLag);
                }
                break;

            case PricingStructureTypeEnum.XccySpreadCurve:
                PricingStructureType = PricingStructureTypeEnum.RateSpreadCurve;
                break;
            }
        }
Exemplo n.º 2
0
 private void SetProperties(PricingStructureTypeEnum pricingStructureType, string curveName)
 {
     if (pricingStructureType == PricingStructureTypeEnum.RateCurve ||
         pricingStructureType == PricingStructureTypeEnum.RateBasisCurve ||
         pricingStructureType == PricingStructureTypeEnum.ClearedRateCurve ||
         pricingStructureType == PricingStructureTypeEnum.RateSpreadCurve)
     {
         var rateCurveId = curveName.Split('-');
         var indexTenor  = rateCurveId[rateCurveId.Length - 1];
         var indexName   = rateCurveId[0];
         for (var i = 1; i < rateCurveId.Length - 1; i++)
         {
             indexName = indexName + '-' + rateCurveId[i];
         }
         ForecastRateIndex = ForecastRateIndexHelper.Parse(indexName, indexTenor);
     }
     if (pricingStructureType == PricingStructureTypeEnum.DiscountCurve ||
         pricingStructureType == PricingStructureTypeEnum.RateXccyCurve)
     {
         var rateCurveId   = CurveName.Split('-');
         var subordination = rateCurveId[rateCurveId.Length - 1];
         var indexName     = rateCurveId[0];
         for (var i = 1; i < rateCurveId.Length - 1; i++)
         {
             indexName = indexName + '-' + rateCurveId[i];
         }
         CreditInstrumentId = InstrumentIdHelper.Parse(indexName);
         CreditSeniority    = CreditSeniorityHelper.Parse(subordination);
     }
     if (pricingStructureType == PricingStructureTypeEnum.InflationCurve)
     {
         var rateCurveId = CurveName.Split('-');
         var indexTenor  = rateCurveId[rateCurveId.Length - 1];
         var indexName   = rateCurveId[0];
         for (var i = 1; i < rateCurveId.Length - 1; i++)
         {
             indexName = indexName + '-' + rateCurveId[i];
         }
         ForecastRateIndex = ForecastRateIndexHelper.Parse(indexName, indexTenor);
     }
 }