如何在C#中组合烛台图表和音量条形图

时间:2017-09-18 07:28:55

标签: c# bar-chart mschart candlestick-chart

如何组合烛台图表和音量条形图

我目前正在使用visual C#中的mschart开发烛台图表。

蜡烛图是在你的帮助下完成的。

enter image description here

我想使用交易量创建一个与蜡烛图对应的条形图,如上图所示。

这是迄今为止开发的一个来源。

DataTable table_ChartData = new DataTable();
table_ChartData.Columns.Add("Id");
table_ChartData.Columns.Add("Open");
table_ChartData.Columns.Add("Close");
table_ChartData.Columns.Add("High");
table_ChartData.Columns.Add("Low");
table_ChartData.Columns.Add("Day");
dataGridView1.DataSource = table_ChartData;  

chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineWidth = 1;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineWidth = 1;
chart1.ChartAreas["ChartArea1"].AxisY.Maximum = max;
chart1.ChartAreas["ChartArea1"].AxisY.Minimum = min;

chart1.Series["Daily"].XValueMember = "Day";
chart1.Series["Daily"].YValueMembers = "High,Low,Open,Close";
chart1.Series["Daily"].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Date;

chart1.Series["Daily"].CustomProperties = "PriceDownColor=Blue,PriceUpColor=Red";
chart1.Series["Daily"]["OpenCloseStyle"] = "Triangle";
chart1.Series["Daily"]["ShowOpenClose"] = "Both";

chart1.DataSource = table_ChartData;
chart1.DataBind();

private void chart1_MouseMove(object sender, MouseEventArgs e)
{
    Point mousePoint = new Point(e.X, e.Y);
    chart1.ChartAreas[0].CursorX.SetCursorPixelPosition(mousePoint, true);
    chart1.ChartAreas[0].CursorY.SetCursorPixelPosition(mousePoint, rue);          
    var pos = e.Location;
    if (prevPosition.HasValue && pos == prevPosition.Value)
        return;
    tooltip.RemoveAll();
    prevPosition = pos;
    var results = chart1.HitTest(pos.X, pos.Y, false, ChartElementType.DataPoint); // set ChartElementType.PlottingArea for full area, not only DataPoints

    foreach (var result in results)
    {
            if (result.ChartElementType == ChartElementType.DataPoint) // set ChartElementType.PlottingArea for full area, not only DataPoints
            {
                var prop = result.Object as DataPoint;
                if(prop != null)
                {
                    tooltip.Show("Date : " + prop.AxisLabel + "\r\nHigh : " + prop.YValues[0] + "\r\nLow : " + prop.YValues[1] + "\r\nOpen : " + prop.YValues[2] + "\r\nClose : " + prop.YValues[3], chart1, e.X, e.Y - 15);                       
                }
            }
    }
}

我想介绍一些有用的例子。

我需要帮助。谢谢。

0 个答案:

没有答案