public override DataSeries AddDataSeries(Instrument instrument, byte type, BarType barType = BarType.Time, long barSize = 60) { if (type == DataObjectType.Bar) { return(GetBarDataSeriesInCache(instrument, barType, barSize, true)); } var series = this.byType[type][instrument.Id]; if (series == null) { string name = DataSeriesNameHelper.GetName(instrument, type); series = GetDataSeries(name); if (series == null) { series = CreateDataSeries(name); this.dataFile.Write(name, series); } this.byType[type][instrument.Id] = series; } return(series); }
public override List <DataSeries> GetDataSeriesList(Instrument instrument = null, string pattern = null) { var keys = this.dataFile.Keys.Values.Where(k => k.TypeId == ObjectType.DataSeries && (instrument == null || DataSeriesNameHelper.GetSymbol(k.Name) == instrument.Symbol) && (pattern == null || k.Name.Contains(pattern))); return(keys.Select(k => GetDataSeries(k.Name)).ToList()); }
private void Subscribe(Instrument instrument, DateTime dateTime1, DateTime dateTime2) { Console.WriteLine($"{DateTime.Now} DataSimulator::Subscribe {instrument.Symbol}"); var list = new List <DataSeries>(); if (SubscribeTrade) { var series = this.framework.DataManager.GetDataSeries(instrument, DataObjectType.Trade, BarType.Time, 60); if (series != null) { list.Add(series); } } if (SubscribeBid) { var series = this.framework.DataManager.GetDataSeries(instrument, DataObjectType.Bid, BarType.Time, 60); if (series != null) { list.Add(series); } } if (SubscribeAsk) { var series = this.framework.DataManager.GetDataSeries(instrument, DataObjectType.Ask, BarType.Time, 60); if (series != null) { list.Add(series); } } if (SubscribeQuote) { var series = this.framework.DataManager.GetDataSeries(instrument, DataObjectType.Quote, BarType.Time, 60); if (series != null) { list.Add(series); } } if (SubscribeBar) { var dataSeriesList = this.framework.DataManager.GetDataSeriesList(instrument, "Bar"); foreach (DataSeries series in dataSeriesList) { if (BarFilter.Count != 0) { BarType barType; long barSize; DataSeriesNameHelper.TryGetBarTypeSize(series, out barType, out barSize); if (!BarFilter.Contains(barType, barSize)) { continue; } } list.Add(series); } } if (SubscribeLevelII) { var series = this.framework.DataManager.GetDataSeries(instrument, DataObjectType.Level2, BarType.Time, 60); if (series != null) { list.Add(series); } } if (SubscribeFundamental) { var series = this.framework.DataManager.GetDataSeries(instrument, DataObjectType.Fundamental, BarType.Time, 60); if (series != null) { list.Add(series); } } if (SubscribeNews) { var series = this.framework.DataManager.GetDataSeries(instrument, DataObjectType.News, BarType.Time, 60); if (series != null) { list.Add(series); } } foreach (var s in list) { this.emitters.Add(CreateDataSeriesEmitter(s, dateTime1, dateTime2)); } }