c# MSChart蜡烛棒&移动平均图.错误:公式错误-期间没有足够的数据点

本文关键字:错误 -期 数据 蜡烛 MSChart 移动 | 更新日期: 2023-09-27 18:07:15

您不能在自己的帖子上投票0

我正在尝试在日数据上创建MA(15)的股票蜡烛。

我可以用OHLC条创建图表,没有任何问题。

但是当我开始使用数据操纵器。对于MA的财务公式,我总是遇到"公式错误-没有足够的数据点用于该时期"的错误。

有人能帮我一下吗?由于

代码如下:

        DataSet ds = new DataSet();
        SqlConnection connection = new SqlConnection();
        connection.ConnectionString = @"Data Source=XXX;Database=Stock;Integrated Security=SSPI;";
        connection.Open();
        string sql = "Select datestamp, highprice, lowprice,openprice, closeprice from daymarketdata where tickname='GS' and datestamp>'1/1/2011' order by datestamp asc";
        System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, connection);
        cmd.CommandType = CommandType.Text;
        SqlDataAdapter sa = new SqlDataAdapter();
        sa.SelectCommand = cmd;
        sa.Fill(ds, "Cos");
        connection.Close();
        chart1.Series["Daily"].ChartType = SeriesChartType.Candlestick;
        chart1.DataSource = sa;
        chart1.DataBind();

        chart1.Series["Daily"].XValueMember = "DateStamp";
        chart1.Series["Daily"].YValueMembers = "HighPrice, LowPrice, OpenPrice, ClosePrice";
        chart1.Series["Daily"].IsXValueIndexed = true;
        chart1.Series["Daily"].BorderColor = System.Drawing.Color.Black;
        chart1.Series["Daily"].Color = System.Drawing.Color.Black;
        chart1.Series["Daily"].CustomProperties = "PriceDownColor=Green, PriceUpColor=Red";
        chart1.Series["Daily"].XValueType = ChartValueType.Date;
        chart1.ChartAreas[0].AxisY.Minimum = 100;
        chart1.ChartAreas[0].AxisY.Maximum = 180;
        chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage, "15", "Daily", "MA");

c# MSChart蜡烛棒&移动平均图.错误:公式错误-期间没有足够的数据点

虽然我很老了,但我想我留下了我的贡献,因为我很挣扎同样的错误信息和张贴的代码实际上为我指明了正确的方向。

我认为chart1.DataBind()需要在设置XValueMember和yvaluemember后移动。像这样:

    chart1.Series["Daily"].XValueMember = "DateStamp";
    chart1.Series["Daily"].YValueMembers = "HighPrice, LowPrice, OpenPrice, ClosePrice";   
    chart1.DataBind();

到应用FinancialFormula时,数据将不会被加载到序列对象中。你可能会遇到其他问题;)

请添加

Chart1.DataManipulator。IsStartFromFirst = True