GetName() public static method

public static GetName ( Instrument instrument, BarType barType, long barSize ) : string
instrument Instrument
barType BarType
barSize long
return string
Beispiel #1
0
        public override void DeleteDataSeries(Instrument instrument, byte type, BarType barType = BarType.Time, long barSize = 60)
        {
            DataSeries dataSeries;

            if (type == DataObjectType.Bar)
            {
                var iId = instrument.Id;
                dataSeries = GetBarDataSeriesInCache(instrument, barType, barSize, false);
                if (barType == BarType.Time && barSize <= TimeSpan.TicksPerDay / TimeSpan.TicksPerSecond)
                {
                    this.byIId_BSize[iId][(int)barSize] = null;
                }
                else
                {
                    this.byType_IId_BSize[type]      = this.byType_IId_BSize[type] ?? new IdArray <Dictionary <long, DataSeries> >();
                    this.byType_IId_BSize[type][iId] = this.byType_IId_BSize[type][iId] ?? new Dictionary <long, DataSeries>();
                    this.byType_IId_BSize[type][iId].Remove(barSize);
                }
                this.dataFile.Delete(DataSeriesNameHelper.GetName(instrument, barType, barSize));
            }
            else
            {
                dataSeries = this.byType[type][instrument.Id];
                if (dataSeries != null)
                {
                    this.byType[type].Remove(instrument.Id);
                }
                this.dataFile.Delete(DataSeriesNameHelper.GetName(instrument, type));
            }
        }
Beispiel #2
0
        public override DataSeries GetDataSeries(Instrument instrument, byte type, BarType barType = BarType.Time, long barSize = 60)
        {
            if (type == DataObjectType.Bar)
            {
                return(GetBarDataSeriesInCache(instrument, barType, barSize, false));
            }

            var series = this.byType[type][instrument.Id];

            if (series == null)
            {
                string name = DataSeriesNameHelper.GetName(instrument, type);
                series = (this.dataFile.Get(name) as DataSeries);
                this.byType[type][instrument.Id] = series;
            }
            return(series);
        }
Beispiel #3
0
        private DataSeries GetBarDataSeriesInCache(Instrument instrument, BarType barType, long barSize, bool createNotExist)
        {
            var        iId = instrument.Id;
            DataSeries dataSeries;

            if (barType == BarType.Time && barSize <= TimeSpan.TicksPerDay / TimeSpan.TicksPerSecond)
            {
                this.byIId_BSize[iId] = this.byIId_BSize[iId] ?? new IdArray <DataSeries>();
                dataSeries            = this.byIId_BSize[iId][(int)barSize];
            }
            else
            {
                this.byType_IId_BSize[(int)barType]      = this.byType_IId_BSize[(int)barType] ?? new IdArray <Dictionary <long, DataSeries> >();
                this.byType_IId_BSize[(int)barType][iId] = this.byType_IId_BSize[(int)barType][iId] ?? new Dictionary <long, DataSeries>();
                this.byType_IId_BSize[(int)barType][iId].TryGetValue(barSize, out dataSeries);
            }
            if (dataSeries != null)
            {
                return(dataSeries);
            }

            string name = DataSeriesNameHelper.GetName(instrument, barType, barSize);

            dataSeries = GetDataSeries(name);
            if (dataSeries == null && createNotExist)
            {
                dataSeries = CreateDataSeries(name);
                this.dataFile.Write(name, dataSeries);
                this.dataFile.Flush();
            }

            // Save to cache
            if (barType == BarType.Time && barSize <= TimeSpan.TicksPerDay / TimeSpan.TicksPerSecond)
            {
                this.byIId_BSize[iId][(int)barSize] = dataSeries;
            }
            else
            {
                this.byType_IId_BSize[(int)barType][iId][barSize] = dataSeries;
            }

            return(dataSeries);
        }