public Quote[] GetQuotes(string symbol, DateTime startTime, DateTime endTime, int depth) { try { if (depth == 0) depth = int.MaxValue; var manager = this.storage.GetOrCreateHistoryManager(symbol); var includeLevel2 = depth != 1; if (this.source != null) { // online mode if (!manager.TicksAreSynchronized(this.source, symbol, includeLevel2, startTime, endTime, false)) manager.SynchronizeTicks(this.source, symbol, includeLevel2, startTime, endTime, false, NullCallback); } var ticks = new List<TickValue>(); if (startTime < endTime) ForwardFillTicks(manager, symbol, includeLevel2, startTime, endTime, ticks); else BackwardFillTicks(manager, symbol, includeLevel2, startTime, endTime, ticks); var converter = new StorageConvert(); var result = ticks.Select(o => converter.ToQuote(symbol, o, depth)).ToArray(); return result; } catch (StorageHistoryNotFoundException ex) { throw new HistoryNotFoundException("GetQuotes", ex); } }
Quote[] GetOfflineQuotes(string symbol, DateTime startTime, int quotesNumber, int depth) { var includeLevel2 = depth != 1; var manager = this.storage.GetOrCreateHistoryManager(symbol); var report = manager.QueryTickHistory(startTime, -quotesNumber, symbol, includeLevel2); var items = report.Items; var converter = new StorageConvert(); if (quotesNumber > 0) { return(items.Select(o => converter.ToQuote(symbol, o, depth)).ToArray()); } else if (quotesNumber < 0) { return(items.Select(o => converter.ToQuote(symbol, o, depth)).Reverse().ToArray()); } return(Enumerable.Empty <Quote>().ToArray()); }
public Quote[] GetQuotes(string symbol, DateTime startTime, DateTime endTime, int depth) { try { if (depth == 0) { depth = int.MaxValue; } var manager = this.storage.GetOrCreateHistoryManager(symbol); var includeLevel2 = depth != 1; if (this.source != null) { // online mode if (!manager.TicksAreSynchronized(this.source, symbol, includeLevel2, startTime, endTime, false)) { manager.SynchronizeTicks(this.source, symbol, includeLevel2, startTime, endTime, false, NullCallback); } } var ticks = new List <TickValue>(); if (startTime < endTime) { ForwardFillTicks(manager, symbol, includeLevel2, startTime, endTime, ticks); } else { BackwardFillTicks(manager, symbol, includeLevel2, startTime, endTime, ticks); } var converter = new StorageConvert(); var result = ticks.Select(o => converter.ToQuote(symbol, o, depth)).ToArray(); return(result); } catch (StorageHistoryNotFoundException ex) { throw new HistoryNotFoundException("GetQuotes", ex); } }
Quote[] GetOnlineQuotes(string symbol, DateTime startTime, int quotesNumber, int depth) { var includeLevel2 = depth != 1; var manager = this.storage.GetOrCreateHistoryManager(symbol); var ticks = new List <TickValue>(); if (quotesNumber > 0) { ForwardFillTicks(manager, symbol, includeLevel2, startTime, quotesNumber, ticks); } else if (quotesNumber < 0) { BackwardFillTicks(manager, symbol, includeLevel2, startTime, -quotesNumber, ticks); } var converter = new StorageConvert(); var result = ticks.Select(o => converter.ToQuote(symbol, o, depth)).ToArray(); return(result); }