Пример #1
0
 public void InitializeBarsFiles(BarsFolder barsFolderHistory, BarsFolder barsFolderCache)
 {
     _dirBarsHistory = barsFolderHistory.Directory;
     _dirBarsCache   = barsFolderCache.Directory;
     this.Check(true, barsFolderHistory);
     this.Check(false, barsFolderCache);
 }
Пример #2
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);
        }
Пример #3
0
        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();
            }
        }
Пример #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();
        }