コード例 #1
0
ファイル: SmartStorage.cs プロジェクト: ifzz/FDK
        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);
            }
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
        }