Esempio n. 1
0
        public string CalculateDiscountedRatesSimple(string date, string id)
        {
            long idYc = JsonConvert.DeserializeObject <Int32>(id);

            GetYcDefDic();
            YieldCurveDefinition ycd = DataFeed.Repository.ycDefDic[idYc];

            DateTime settlementDate = Convert.ToDateTime(date);

            GetDayCounterDic();                                 // shell be before Rate and YieldCurveData, cos those are using DayCounter inside
            ResponseDiscountedData tmp = CalculateDiscountedData(ycd, settlementDate, null, null);

            return(JsonConvert.SerializeObject(tmp));
        }
Esempio n. 2
0
        ResponseDiscountedData CalculateDiscountedData(YieldCurveDefinition ycDef,
                                                       DateTime settlementDate,
                                                       List <EntryPoint> entryPoints,
                                                       List <DateTime> discountDates)
        {
            ResponseDiscountedData result = new ResponseDiscountedData();

            try
            {
                YieldCurveData tmp = new YieldCurveData();
                tmp.settlementDate = settlementDate;
                tmp.settings       = ycDef;

                if (entryPoints == null)
                {
                    tmp.entryPointList = DataLayer.Repository.GetYieldCurveEntryPoint(ycDef.Id, settlementDate);
                }
                else
                {
                    tmp.entryPointList = entryPoints;
                }

                if (discountDates == null)                              // use entry points dates
                {
                    discountDates = new List <DateTime>();
                    foreach (var ep in tmp.entryPointList)
                    {
                        discountDates.Add(settlementDate.AddDays(ep.Duration));
                    }
                }

                QuantLibAdaptor.CalculateDiscountedRate(tmp, discountDates.ToList(), result.discountPoints);

                result.entryPoints = tmp.entryPointList;
            }
            catch (Exception ex)
            {
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }

                result.Error         = new CustomException();
                result.Error.Message = ex.Message + ex.StackTrace;
            }

            return(result);
        }
Esempio n. 3
0
        public string CalculateDiscountedRates(string date, string id, string epl, string ddl)
        {
            long idYc = JsonConvert.DeserializeObject <Int32>(id);

            GetYcDefDic();
            YieldCurveDefinition ycd = DataFeed.Repository.ycDefDic[idYc];
            //DateTime settlementDate = JsonConvert.DeserializeObject<DateTime>(date);
            DateTime settlementDate = Convert.ToDateTime(date);

            List <EntryPoint> entryPoints   = JsonConvert.DeserializeObject <List <EntryPoint> >(epl);
            List <DateTime>   discountDates = JsonConvert.DeserializeObject <List <DateTime> >(ddl);

            ResponseDiscountedData tmp = CalculateDiscountedData(ycd, settlementDate, entryPoints, discountDates);

            return(JsonConvert.SerializeObject(tmp));
        }