예제 #1
0
 public DataCaches(IData_Factor info_Factor, IDataCache_Set srcDataCache_Set, IDataChecks dataChecks = null)
 {
     _DataCache_Set = new DataCache_Set(info_Factor.ID, srcDataCache_Set.Time_Base, typeTimeFrequency.none, 0, info_Factor, srcDataCache_Set);
     _id            = _DataCache_Set.ID;
     dataChecks     = _DataChecks;
     _DataCaches    = new Dictionary <string, IDataCache>();
 }
예제 #2
0
 /// <summary>
 /// </summary>
 /// <param name="dtBase">基时间</param>
 public DataCaches_Manage(IData_Factors info_Factors, IDataCache_Set srcDataCache_Set, IDataChecks dataChecks = null)
 {
     Tag            = info_Factors.ID;
     _DataCache_Set = new DataCache_Set(Tag, srcDataCache_Set.Time_Base, typeTimeFrequency.None, 0, info_Factors, srcDataCache_Set);
     _DataChecks    = dataChecks;
     _DataCaches    = new Dictionary <string, IDataCaches>();
 }
예제 #3
0
 public DataCache(string tagName, typeTimeFrequency typeTimeFrequency, int cacheNums, IDataCache_Set srcDataCache_Set)
 {
     _DataCaches    = new List <T>();
     _DataCache_Set = new DataCache_Set(tagName, srcDataCache_Set.Time_Base, typeTimeFrequency, cacheNums, srcDataCache_Set.Info_Factor);
     _id            = _DataCache_Set.ID;
     this.Init(DateTime.Now);
 }
예제 #4
0
        //List<T> _DataCaches = null;
        //public List<T> DataCaches
        //{
        //    get { return _DataCaches; }
        //}

        public DataCache(string tagName, typeTimeFrequency typeTimeFrequency, int cacheNums, IDataCache_Set srcDataCache_Set, IDataChecks dataChecks = null)
        {
            _DataCaches    = new Dictionary <DateTime, T>();
            _DataCache_Set = new DataCache_Set(tagName, srcDataCache_Set.Time_Base, typeTimeFrequency, cacheNums, srcDataCache_Set.Info_Factor, srcDataCache_Set);
            _id            = _DataCache_Set.ID;
            _DataChecks    = dataChecks;
            this.Init(DateTime.Now);
        }
예제 #5
0
        /// <summary>初始全局缓存
        /// </summary>
        /// <param name="dtBase">基时间</param>
        /// <returns></returns>
        public bool Init(DateTime dtBase)
        {
            this._Data_Factorss.Clear();
            this._DataCaches_Manages.Clear();

            //初始顶层 DataCache_Set,主要用于时间信息同步
            _DataCache_Set = new DataCache_Set("DataCaches_Manager", dtBase, typeTimeFrequency.none, -1, null);
            _isInited      = true;
            return(_isInited);
        }
예제 #6
0
 public DataCache_Set(string tagName, DateTime dtBase, typeTimeFrequency typeTimeFrequency, int cacheNums, IData_Factor infoFactor, IDataCache_Set srcDataCache_Set = null) : base(tagName)
 {
     if (tagName == "")
     {
         tagName = infoFactor.ID;
     }
     _id             = tagName;
     _Info_Factor    = infoFactor;
     _tagName        = tagName;
     _Time_Frequency = typeTimeFrequency;
     _sumStep        = cacheNums;
     _dtStep         = (int)_Time_Frequency;
     _dtBase         = dtBase;
     _Parent         = srcDataCache_Set;
     this.InitTime(dtBase, typeTimeFrequency);
 }
예제 #7
0
        //缓存数据初始装载数据
        public virtual int DataCacheLoad(IDataCache pDataCache, DateTime dtEnd, int nCaches = -1)
        {
            typeTimeFrequency      timeFrequency = pDataCache.DataCache_Set.Time_Frequency;
            DataCache <Data_Quote> dataCache     = (DataCache <Data_Quote>)pDataCache;

            if (dataCache == null)
            {
                return(0);
            }
            if (timeFrequency == typeTimeFrequency.real)
            {
                dataCache.InitDatas(null, false, true);
                return(0);
            }
            if (pDataCache.DataCache_Set.Info_Factor.Name != "50ETF")
            {
                return(0);
            }

            //校正行情标的
            IDataCache_Set pSet       = dataCache.DataCache_Set;
            StockInfo      pStockInfo = Quote_Manager._Manager.Stocks.Get_StockInfo(pSet.Info_Factor.ID);

            if (pStockInfo == null)
            {
                return(0);
            }

            //查询数据
            dtEnd   = dtEnd == DateTime.MinValue ? pSet.Time_End : dtEnd;
            nCaches = nCaches < 0 ? pSet.Sum_Step : nCaches;
            List <Data_Quote> lstQuotes = QuoteQuery._Query.Query(pStockInfo.StockID_Tag, dtEnd, nCaches, timeFrequency, true);

            if (lstQuotes.Count == pSet.Sum_Step)
            {
                //重新初始数据
                Dictionary <DateTime, Data_Quote> poData_Quotes = new Dictionary <DateTime, Data_Quote>();
                foreach (var item in lstQuotes)
                {
                    poData_Quotes[item.DateTime] = item;
                }
                return(dataCache.InitDatas(poData_Quotes, true, true));
            }
            return(0);
        }