Exemple #1
0
        private SelectedPointInfo GetBlockInfo(KLineBar_KLineData chart, KLineBar_KLineData lastChart)
        {
            SelectedPointInfo b = new SelectedPointInfo();

            b.LineHeight = 20;
            b.Width      = 58;
            b.StartPoint = new Point(drawer.DisplayRect.X - b.Width, drawer.DisplayRect.Y);

            double lastEndPrice = lastChart != null ? lastChart.End : chart.Start;
            Pen    pen          = new Pen(Color.White);

            Brush brushNormal = new SolidBrush(Color.White);
            Font  font        = new Font("New Times Roman", 10, FontStyle.Regular);

            b.Lines.Add(new BlockLineInfo(FormatTime(chart.Time), brushNormal, font));
            b.Lines.Add(new BlockLineInfo("开盘", brushNormal, font));
            b.Lines.Add(new BlockLineInfo(chart.Start.ToString(), GetPriceBrush(chart.Start, lastEndPrice), font));
            b.Lines.Add(new BlockLineInfo("最高", brushNormal, font));
            b.Lines.Add(new BlockLineInfo(chart.High.ToString(), GetPriceBrush(chart.High, lastEndPrice), font));
            b.Lines.Add(new BlockLineInfo("最低", brushNormal, font));
            b.Lines.Add(new BlockLineInfo(chart.Low.ToString(), GetPriceBrush(chart.Low, lastEndPrice), font));
            b.Lines.Add(new BlockLineInfo("收盘", brushNormal, font));
            b.Lines.Add(new BlockLineInfo(chart.End.ToString(), GetPriceBrush(chart.End, lastEndPrice), font));

            double uprange = Math.Round(chart.End - lastEndPrice, 2);

            b.Lines.Add(new BlockLineInfo(uprange.ToString(), GetPriceBrush(uprange, 0), font));
            //涨幅
            //double uppercent = Math.Round((chart.EndPrice - lastEndPrice) / lastEndPrice,2);
            double uppercent = Math.Round(uprange / lastEndPrice * 100, 2);

            b.Lines.Add(new BlockLineInfo(uppercent.ToString(), GetPriceBrush(uppercent, 0), font));
            return(b);
        }
Exemple #2
0
        public void DrawSelectBlock(Graphics g)
        {
            if (drawer.SelectIndex < 0)
            {
                return;
            }
            SelectedPointInfo blockInfo = GetBlockInfo(drawer.SelectIndex);

            if (blockInfo == null)
            {
                return;
            }
            blockInfo.DrawGraph(g, drawer.ColorConfig);
        }
Exemple #3
0
        public SelectedPointInfo GetBlockInfo(int index, int timeIndex)
        {
            ITimeLineData data = drawer.DataProvider.GetRealData();

            SelectedPointInfo info = new SelectedPointInfo();

            info.LineHeight = 20;
            info.Width      = 58;
            info.StartPoint = new Point(drawer.DisplayRect.X - info.Width, drawer.DisplayRect.Y);

            Brush brushNormal = new SolidBrush(Color.White);
            Font  font        = new Font("New Times Roman", 10, FontStyle.Regular);
            Brush brushRed    = drawer.ColorConfig.Brush_CandleBlockUp;
            Brush brushGreen  = drawer.ColorConfig.Brush_CandleBlockDown;

            //TODO
            info.Lines.Add(new BlockLineInfo("----", new SolidBrush(ColorUtils.GetColor("#CCCC00")), font));
            info.Lines.Add(new BlockLineInfo("时间", brushNormal, font));
            info.Lines.Add(new BlockLineInfo(GetTimeString(data.Arr_Time[timeIndex]), brushNormal, font));
            info.Lines.Add(new BlockLineInfo("价格", brushNormal, font));
            info.Lines.Add(new BlockLineInfo(data.Arr_Price[index].ToString(), brushNormal, font));
            info.Lines.Add(new BlockLineInfo("均价", brushNormal, font));
            //TODO
            info.Lines.Add(new BlockLineInfo("----", brushNormal, font));
            info.Lines.Add(new BlockLineInfo("涨跌", brushNormal, font));
            info.Lines.Add(new BlockLineInfo(data.Arr_UpRange[index].ToString(), brushNormal, font));
            info.Lines.Add(new BlockLineInfo((data.Arr_UpPercent[index] + "%").ToString(), brushNormal, font));
            info.Lines.Add(new BlockLineInfo("量", brushNormal, font));
            info.Lines.Add(new BlockLineInfo(data.Arr_Mount[index].ToString(), brushNormal, font));
            info.Lines.Add(new BlockLineInfo("持仓", brushNormal, font));
            info.Lines.Add(new BlockLineInfo(data.Arr_Hold[index].ToString(), brushNormal, font));
            int   add = GetHoldAdd(index);
            Brush b;

            if (index == 0 || add == 0)
            {
                b = brushNormal;
            }
            else if (add > 0)
            {
                b = brushRed;
            }
            else
            {
                b = brushGreen;
            }
            info.Lines.Add(new BlockLineInfo(add.ToString(), b, font));
            return(info);
        }
Exemple #4
0
        public void DrawSelectBlock(Graphics g)
        {
            if (drawer.SelectIndex < 0)
            {
                return;
            }
            int index = drawer.SelectIndex > drawer.DataProvider.CurrentIndex ? drawer.DataProvider.CurrentIndex : drawer.SelectIndex;
            SelectedPointInfo blockInfo = GetBlockInfo(index, drawer.SelectIndex);

            if (blockInfo == null)
            {
                return;
            }
            blockInfo.DrawGraph(g, drawer.ColorConfig);
        }