public TimeSeries GetTimeSeries(PortfolioPosition position,
                                        TimeSeriesAttribute attribute,
                                        DateTime from,
                                        DateTime to)
        {
            TimeSeries timeSeries = GetTimeSeries(position, attribute);

            if (timeSeries == null)
            {
                return(null);
            }

            var result = timeSeries.Series.Where(z => z.Key >= from && z.Key <= to);

            if (result.Count() == 0)
            {
                return(null);
            }
            else
            {
                Dictionary <DateTime, decimal> values = new Dictionary <DateTime, decimal>();
                foreach (var x in result)
                {
                    values.Add(x.Key, x.Value);
                }
                return(new TimeSeries(values, attribute));
            }
        }
示例#2
0
 public T Get <T>(PortfolioPosition position,
                  ScalarAttribute attribute,
                  DateTime dateTime,
                  T defaultValue) where T : struct, IConvertible
 {
     return(_dataProvider.Get <T>(position, attribute, dateTime, defaultValue));
 }
        public T Get <T>(PortfolioPosition position,
                         ScalarAttribute attribute,
                         DateTime dateTime,
                         T defaultValue) where T : struct, IConvertible
        {
            //прочитали скалярный атрибут scalarStr
            //нашли в нем наше значение
            //вернули
            //не нашли в нем наше значение вернули defaultValue

            ScalarStr str = GetScalarStr(position, attribute);

            if (str == null || !str.HasValue(dateTime))
            {
                return(defaultValue);
            }

            string strIdent = str.Get(dateTime);
            KeyValuePair <Type, string> tke =
                new KeyValuePair <Type, string>(typeof(T), strIdent);

            if (_mapping.TKE.ContainsKey(tke))
            {
                Enum value = _mapping.TKE[tke];
                return((T)Enum.Parse(typeof(T), value.ToString(), true));
            }
            else
            {
                return(defaultValue);
            }
        }
        public bool Get <T>(PortfolioPosition position,
                            ScalarAttribute attribute,
                            DateTime dateTime)
        {
            ScalarStr str = GetScalarStr(position, attribute);

            if (str == null || !str.HasValue(dateTime))
            {
                return(false);
            }
            return(true);
        }
示例#5
0
        public void Add(PortfolioPosition position, Enum enumeration, ScalarDate scalar)
        {
            KeyValuePair <PortfolioPosition, Enum> key = new KeyValuePair <PortfolioPosition, Enum>(position, enumeration);

            if (_dates.ContainsKey(key))
            {
                _dates[key] = scalar;
            }
            else
            {
                _dates.Add(key, scalar);
            }
        }
        public TimeSeries GetTimeSeries(PortfolioPosition position, TimeSeriesAttribute attribute)
        {
            var markets = _markets.Where(z => z.GetIMapping().FindAI(attribute));

            foreach (var x in markets)
            {
                TimeSeries timeSeries = x.GetTimeSeries(position, attribute);
                if (timeSeries != null)
                {
                    return(timeSeries);
                }
            }
            return(null);
        }
        public ScalarStr GetScalarStr(PortfolioPosition position, ScalarAttribute attribute)
        {
            var markets = _markets.Where(z => z.GetIMapping().FindAI(attribute));

            foreach (var x in markets)
            {
                ScalarStr scalarStr = x.GetScalarStr(position, attribute);
                if (scalarStr != null)
                {
                    return(scalarStr);
                }
            }
            return(null);
        }
        public ScalarNum GetScalarNum(PortfolioPosition position,
                                      ScalarAttribute attribute)
        {
            if (!_mapping.FindAI(attribute))
            {
                return(null);
            }

            KeyValuePair <PortfolioPosition, Enum> key =
                new KeyValuePair <PortfolioPosition, Enum>(position, attribute);

            if (_cache.ContainsKey(key))
            {
                return((ScalarNum)_cache[key]);
            }

            string    fif_id    = _mapping.GetAI(attribute);
            ScalarNum scalarNum = null;
            string    query     =
                string.Format(
                    @"	SELECT fi.ident as ident, fd.dat_from as dat_from, fd.val as val
                        from fin_instrument fi join
	                        ffd t on t.fi_id = fi.fi_id join
	                        data_source ds on t.ds_id = ds.ds_id join
	                        fisd_num fd on fd.fisd_id = t.fisd_id 
	                        where fi.ident = '{0}'
		                        and t.fif_id = {1}
		                        and ds.ident = '{2}'"        ,
                    position.Ident,
                    fif_id,
                    _providerParams[SCALAR]);

            var result = _dbLink.GetConnection().Query <fisdnumber>(query);

            if (result != null && result.Count() != 0)
            {
                Dictionary <DateTime, decimal> values = new Dictionary <DateTime, decimal>();
                foreach (var x in result)
                {
                    values.Add(x.dat_from, x.val);
                }
                scalarNum = new ScalarNum(values);
            }

            _cache.Add(key, scalarNum);
            return(scalarNum);
        }
        public bool Get <T>(PortfolioPosition position,
                            ScalarAttribute attribute,
                            DateTime dateTime)
        {
            var markets = _markets.Where(z => z.GetIMapping().FindAI(attribute));

            foreach (var x in markets)
            {
                if (x.Get <T>(position,
                              attribute,
                              dateTime))
                {
                    return(true);
                }
            }
            return(false);
        }
        public T Get <T>(PortfolioPosition position,
                         ScalarAttribute attribute,
                         DateTime dateTime, T defaultValue) where T : struct, IConvertible
        {
            var markets = _markets.Where(z => z.GetIMapping().FindAI(attribute));

            foreach (var x in markets)
            {
                if (x.Get <T>(position,
                              attribute,
                              dateTime))
                {
                    return(x.Get <T>(position,
                                     attribute,
                                     dateTime,
                                     defaultValue));
                }
            }

            return(defaultValue);
        }
        public TimeSeries GetTimeSeries(PortfolioPosition position, TimeSeriesAttribute attribute)
        {
            KeyValuePair <PortfolioPosition, Enum> key = new KeyValuePair <PortfolioPosition, Enum>();

            if (_cache.ContainsKey(key))
            {
                return((TimeSeries)_cache[key]);
            }

            TimeSeries timeSeries = null;
            string     query      = string.Format(
                @"SELECT fi.ident,  fd.dat, fd.val
                    from fin_instrument fi join
	                    ffd t on t.fi_id = fi.fi_id join
	                    fisd_dq fd on fd.fisd_id = t.fisd_id join
	                    data_source ds on ds.ds_id = t.ds_id
	                    and fi.ident = '{0}'
	                    and ds.ident = '{1}'
	                    and t.fif_id = {2}"    ,
                position.Ident,
                _providerParams[SCALAR],
                _mapping.GetAI(attribute));

            var result = _dbLink.GetConnection().Query <fisddq>(query);

            if (result != null && result.Count() != 0)
            {
                Dictionary <DateTime, decimal> values = new Dictionary <DateTime, decimal>();
                foreach (var x in result)
                {
                    values.Add(x.dat, x.val);
                }
                timeSeries = new TimeSeries(values, attribute);
            }

            return(timeSeries);
        }
示例#12
0
        public void Add(PortfolioPosition position, Enum enumeration, CashFlow cashFlow)
        {
            KeyValuePair <PortfolioPosition, Enum> key = new KeyValuePair <PortfolioPosition, Enum>(position, enumeration);

            _cashFlows.Add(key, cashFlow);
        }
示例#13
0
 public ScalarStr GetScalarStr(PortfolioPosition position, ScalarAttribute attribute)
 {
     return(_dataProvider.GetScalarStr(position, attribute));
 }
 public T Get <T>(PortfolioPosition position, Core.Mir.Enumerations.ScalarAttribute attribute, DateTime dateTime, T defaultValue) where T : struct, IConvertible
 {
     return(defaultValue);
 }
示例#15
0
 public void Add(PortfolioPosition position, TimeSeries timeSeries)
 {
     _timeseries.Add(position, timeSeries);
 }
 public TimeSeries GetTimeSeries(PortfolioPosition position, Core.Mir.Enumerations.TimeSeriesAttribute attribute, DateTime from, DateTime to)
 {
     return(null);
 }
 public bool Get <T>(PortfolioPosition position, Core.Mir.Enumerations.ScalarAttribute attribute, DateTime dateTime)
 {
     return(false);
 }
 public ScalarStr GetScalarStr(PortfolioPosition position, Core.Mir.Enumerations.ScalarAttribute attribute)
 {
     return(null);
 }
示例#19
0
 public TimeSeries GetTimeSeries(PortfolioPosition position, TimeSeriesAttribute attribute)
 {
     return(_dataProvider.GetTimeSeries(position, attribute));
 }
示例#20
0
 public TimeSeries GetTimeSeries(PortfolioPosition position, TimeSeriesAttribute attribute, DateTime from, DateTime to)
 {
     return(_dataProvider.GetTimeSeries(position, attribute, from, to));
 }
        public ScalarEnum GetScalarEnum(PortfolioPosition position,
                                        ScalarAttribute attribute)
        {
            KeyValuePair <PortfolioPosition, Enum> key =
                new KeyValuePair <PortfolioPosition, Enum>(position, attribute);

            if (!_cache.ContainsKey(key))
            {
                ScalarStr scalarStr = null;
                string    fif_id    = _mapping.GetAI(attribute);
                string    query     = string.Format(
                    @"SELECT fi.ident, fd.dat_from,  fd.val, *
                        from fin_instrument fi join
	                        ffd t on t.fi_id = fi.fi_id join
	                        data_source ds on t.ds_id = ds.ds_id join
	                        fisd_item fd on fd.fisd_id = t.fisd_id 
	                        where fi.ident = '{0}'
		                        and t.fif_id = {1}
		                        and ds.ident = '{2}'"        ,
                    position.Ident,
                    fif_id,
                    _providerParams[SCALAR]);
                var result = _dbLink.GetConnection().Query <fisdstring>(query);
                if (result != null && result.Count() != 0)
                {
                    Dictionary <DateTime, string> values = new Dictionary <DateTime, string>();
                    foreach (var x in result)
                    {
                        values.Add(x.dat_from, x.val);
                    }
                    scalarStr = new ScalarStr(values);
                }

                _cache.Add(key, scalarStr);
            }

            ScalarStr str = (ScalarStr)_cache[key];

            if (str == null)
            {
                return(null);
            }

            //прочитаем все значения
            if (!_mapping.FindET(attribute))
            {
                return(null);
            }

            Type type     = _mapping.GetET(attribute);
            var  bushuevs =
                Enum.GetValues(type).OfType <Enum>().OrderBy(z => z).ToList();

            if (bushuevs.Count == 0)
            {
                return(null);
            }

            Dictionary <DateTime, Enum> enumerations = new Dictionary <DateTime, Enum>();

            foreach (var x in str.Dictionary)
            {
                KeyValuePair <Type, string> keyEnum =
                    new KeyValuePair <Type, string>(type, x.Value);

                if (_mapping.TKE.ContainsKey(keyEnum))
                {
                    Enum enumeration = _mapping.TKE[keyEnum];
                    enumerations.Add(x.Key, enumeration);
                }
                else
                {
                    Enum enumeration = bushuevs.First();
                    enumerations.Add(x.Key, enumeration);
                }
            }
            ScalarEnum scalarEnum = new ScalarEnum(enumerations);

            //конвертируем их в соответствии с типом, если получается

            return(scalarEnum);
        }
示例#22
0
 public QLNet.Bond GetBond(PortfolioPosition position, DateTime calculatingDate)
 {
     throw new NotImplementedException();
 }