Example #1
0
        private void Check(bool isHistory, MapsFolder mapsFolder)
        {
            TicksFileData ticksFileData = isHistory ? _history : _cache;

            if (ticksFileData == null)
            {
                return;
            }
            TicksFileMapData[]      mapsFiles  = mapsFolder.Pop(_symbolName);
            List <TicksFileMapData> listDelete = new List <TicksFileMapData>();

            foreach (TicksFileMapData mapFile in mapsFiles)
            {
                if (ticksFileData.Count == mapFile.CountTicks)
                {
                    if (isHistory)
                    {
                        _map.History = mapFile;
                    }
                    else
                    {
                        _map.Cache = mapFile;
                    }
                }
                else
                {
                    listDelete.Add(mapFile);
                }
            }
            foreach (TicksFileMapData barsFile in listDelete)
            {
                barsFile.CloseStream();
                barsFile.File.Delete();
            }
        }
Example #2
0
 public void InitializeMapsFiles(MapsFolder mapsFolderHistory, MapsFolder mapsFolderCache)
 {
     _dirMapsHistory = mapsFolderHistory.Directory;
     _dirMapsCache   = mapsFolderCache.Directory;
     this.Check(true, mapsFolderHistory);
     this.Check(false, mapsFolderCache);
 }
Example #3
0
        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);
        }
Example #4
0
        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();
        }