示例#1
0
        public void BuildSeries(ChartControl chart)
        {
            seriesOutline.data.Clear();

            var candles = chart.StockSeries.Data.Candles;

            if (SeriesSources.Any(s => s is CandlestickSeries))
            {
                candles = ((CandlestickSeries)SeriesSources.First(s => s is CandlestickSeries)).Data.Candles;
            }

            var finder       = new CandleConsumptionFinder(candles, MinCount);
            var consumptions = finder.Search();

            foreach (var cons in consumptions)
            {
                seriesOutline.data.Add(new BarRegion
                {
                    Color      = ClLine,
                    lineStyle  = LineStyle == DashStyle.Solid ? BarRegionLineStyle.SolidThin : BarRegionLineStyle.DotThick,
                    IndexStart = cons.startIndex,
                    IndexEnd   = cons.consumerIndex,
                    LowerBound = (float)cons.lower,
                    UpperBound = (float)cons.upper
                });
            }
        }
        private void FindConsumptions(int minConsumes)
        {
            var indi = chart.indicators.FirstOrDefault(i => i is IndicatorExternSeries) as IndicatorExternSeries;

            if (indi == null)
            {
                return;
            }

            caymanCandles = indi.candleSeries.Data.Candles;
            if (caymanCandles.Count == 0)
            {
                return;
            }

            var finder = new CandleConsumptionFinder(caymanCandles, minConsumes);
            var cons   = finder.Search();

            consumeIndices.Clear();
            consumeIndices.AddRange(cons.Select(c => c.consumerIndex));
        }