Ejemplo n.º 1
0
 public ChartService(IChart chart)
 {
     Chart                    = chart;
     ScaleHorizontal          = new ScaleHorizontal();
     ScaleVertical            = new ScaleVertical();
     HorizontalLinePrice      = new HorizontalLinePrice();
     AdditionalHorizontalLine = new AdditionalHorizontalLine();
 }
Ejemplo n.º 2
0
        public void ChartBuild(IEnumerable <IElementChart> candles, double heightPanel, double widthPanel, double currentPrice, int digits)
        {
            GetMaxAllChart(candles);
            GetMinAllChart(candles);
            GetDeltaAllChart();
            GetScaleIntervalPrice(heightPanel);

            // строим горизонтальную сетку
            ScaleHorizontal.ScaleBuild(heightPanel, widthPanel, MaxAllChart, DeltaAllChart, digits);

            // строим основной график
            Chart.Create(MaxAllChart, ScaleIntervalPrice);

            // строим вертикальную сетку
            ScaleVertical.ScaleBuild(Chart.ElementChartViews, heightPanel, widthPanel);

            // отображение текущей цены
            HorizontalLinePrice.LineCurrentPriceBuild(widthPanel, MaxAllChart, currentPrice, ScaleIntervalPrice);

            // отображение сделок
            var trades = new List <BuySellView>();

            for (int i = 0; i < candles.Count(); i++)
            {
                if (i % 13 == 0)
                {
                    var isBuy = false;
                    if (i % 2 == 0)
                    {
                        isBuy = true;
                    }
                    trades.Add(new BuySellView()
                    {
                        Price = candles.ElementAt(i).High,
                        IsBuy = isBuy
                    });
                }
            }
            AdditionalHorizontalLine.AdditionalLinesBuild(trades, widthPanel, MaxAllChart, ScaleIntervalPrice);
            //------
        }