示例#1
0
        private Object.QuoteRange GetSeriesYRange(Series series, double s, double e)
        {
            if (series is ThresholdSeries && series.Visibility == C1.Chart.SeriesVisibility.Visible)
            {
                var value = (series as ThresholdSeries).Threshold.Value;
                return(new Object.QuoteRange()
                {
                    Min = value, Max = value
                });
            }

            Object.QuoteRange    qr        = null;
            IEnumerable <double> quoteData = series.GetValues(0);

            var period = GetSeriesPeriod(series);

            var start = period == 0 ? Convert.ToInt32(s) : (Convert.ToInt32(s) < (period - 1) ? 0 : (Convert.ToInt32(s) - (period - 1)));
            var len   = Convert.ToInt32(e) - Convert.ToInt32(s) + 1;

            IEnumerable <double> quoteCache = quoteData.Skip(start).Take(len);

            if (quoteCache.Any())
            {
                qr = new Object.QuoteRange();
                var min = quoteCache.Min();
                var max = quoteCache.Max();
                qr.Min = min;
                qr.Max = max;
            }
            return(qr);
        }
示例#2
0
        public Object.QuoteRange GetSymbolYRange(IEnumerable <Object.QuoteData> quoteData, double s, double e)
        {
            Object.QuoteRange qr = null;


            var start = Convert.ToInt32(s);
            var len   = Convert.ToInt32(e) - start + 1;


            IEnumerable <Object.QuoteData> quoteCache = quoteData.Skip(start).Take(len);

            if (quoteCache.Any())
            {
                qr     = new Object.QuoteRange();
                qr.Min = quoteCache.Min((k) =>
                {
                    return(k.Low);
                });
                qr.Max = quoteCache.Max((k) =>
                {
                    return(k.High);
                });
            }
            return(qr);
        }
        private Object.QuoteRange GetSeriesYRange(Series series, double s, double e)
        {
            Object.QuoteRange    qr        = null;
            double[]             quoteX    = series.GetValues(1).ToArray();
            IEnumerable <double> quoteData = series.GetValues(0);

            var start = -1;
            var end   = -1;

            for (int i = 0; i < quoteX.Count(); i++)
            {
                var x = quoteX[i];
                if (start == -1 && x > s)
                {
                    start = i - 1;
                    end   = quoteX.Count() - 3;
                }
                if (end == -1 && x > e)
                {
                    end = i - 1;
                }
            }



            var len = end - start + 1;

            IEnumerable <double> quoteCache = quoteData.Skip(start).Take(len);

            if (quoteCache.Any())
            {
                qr = new Object.QuoteRange();
                var min = quoteCache.Min();
                var max = quoteCache.Max();
                qr.Min = min;
                qr.Max = max;
            }
            return(qr);
        }
示例#4
0
        public Object.QuoteRange GetOverlayYRange(double[] data, int period, double s, double e)
        {
            Object.QuoteRange qr = null;
            int halfLen          = data.Length / 2;
            var dl1 = data.Take(halfLen);
            var dl2 = data.Skip(halfLen).Take(halfLen);

            var start = s < period ? 0 : s - period;

            var len = e - Math.Max(s, period);

            IEnumerable <double> quoteCache1 = dl1.Skip(Convert.ToInt32(start)).Take(Convert.ToInt32(len));
            IEnumerable <double> quoteCache2 = dl2.Skip(Convert.ToInt32(start)).Take(Convert.ToInt32(len));

            var quoteCache = quoteCache1.Union(quoteCache2);

            if (quoteCache.Any())
            {
                qr     = new Object.QuoteRange();
                qr.Min = quoteCache.Min();
                qr.Max = quoteCache.Max();
            }
            return(qr);
        }