public void InitializeBarsFiles(BarsFolder barsFolderHistory, BarsFolder barsFolderCache) { _dirBarsHistory = barsFolderHistory.Directory; _dirBarsCache = barsFolderCache.Directory; this.Check(true, barsFolderHistory); this.Check(false, barsFolderCache); }
public ISymbol Create(string symbolName, int digits) { Symbol symbol = this[symbolName] as Symbol; if (symbol != null) { return(symbol); } TicksManager tm = new TicksManager(); tm.History = new TicksFileData(_dirHistory, symbolName, digits); tm.Cache = new TicksFileData(_dirCache, symbolName, digits); BarsFolder barsFolderHistory = new BarsFolder(_dirHistory); BarsFolder barsFolderCache = new BarsFolder(_dirCache); MapsFolder mapsFolderHistory = new MapsFolder(_dirHistory); MapsFolder mapsFolderCache = new MapsFolder(_dirCache); tm.InitializeBarsFiles(barsFolderHistory, barsFolderCache); tm.InitializeMapsFiles(mapsFolderHistory, mapsFolderCache); symbol = new Symbol(tm); return(symbol); }
private void Check(bool isHistory, BarsFolder barsFolder) { TicksFileData ticksFileData = isHistory ? _history : _cache; BarsFileData[] barsFiles = barsFolder.Pop(_symbolName); List <BarsFileData> listDelete = new List <BarsFileData>(); foreach (BarsFileData barsFile in barsFiles) { if (ticksFileData.Count == barsFile.CountTicks) { BarManager bm = (BarManager)this._barsManager[barsFile.TimeFrameSecond]; if (bm == null) { listDelete.Add(barsFile); } else { if (isHistory) { bm.History = barsFile; } else { bm.Cache = barsFile; } } } else { listDelete.Add(barsFile); } } foreach (BarsFileData barsFile in listDelete) { barsFile.CloseStream(); barsFile.File.Delete(); } }
public void Load() { List <FileInfo> filesHistory = new List <FileInfo>(); List <FileInfo> filesCache = new List <FileInfo>(); Dictionary <string, TicksManager> symbols = new Dictionary <string, TicksManager>(); FileInfo[] files = _dirHistory.GetFiles("*." + TICKS_FILE_EXT); foreach (FileInfo file in files) { try { TicksManager ticksManager = new TicksManager(); ticksManager.History = new TicksFileData(file); symbols.Add(ticksManager.Name, ticksManager); } catch (Exception e) { Trace.TraceError("Load {0} - {1}", file.FullName, e.Message); } } files = _dirCache.GetFiles("*." + TICKS_FILE_EXT); foreach (FileInfo file in files) { try { TicksManager ticksManager = null; TicksFileData fileData = new TicksFileData(file); symbols.TryGetValue(fileData.SymbolName, out ticksManager); if (ticksManager == null) { ticksManager = new TicksManager(); symbols.Add(fileData.SymbolName, ticksManager); } ticksManager.Cache = fileData; } catch (Exception e) { Trace.TraceError("Load {0} - {1}", file.FullName, e.Message); } } BarsFolder barsFolderHistory = new BarsFolder(_dirHistory); BarsFolder barsFolderCache = new BarsFolder(_dirCache); MapsFolder mapsFolderHistory = new MapsFolder(_dirHistory); MapsFolder mapsFolderCache = new MapsFolder(_dirCache); this.Clear(); foreach (TicksManager ticks in symbols.Values) { if (ticks.History == null) { ticks.History = new TicksFileData(_dirHistory, ticks.Name, ticks.Digits); } if (ticks.Cache == null) { ticks.Cache = new TicksFileData(_dirCache, ticks.Name, ticks.Digits); } ticks.InitializeBarsFiles(barsFolderHistory, barsFolderCache); ticks.InitializeMapsFiles(mapsFolderHistory, mapsFolderCache); Symbol symbol = new Symbol(ticks); this.Add(symbol); } barsFolderHistory.DeleteEmpty(); barsFolderCache.DeleteEmpty(); }