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>(); }
/// <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>(); }
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); }
//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); }
/// <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); }
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); }
//缓存数据初始装载数据 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); }