您不能在自己的帖子上投票 0
我正在尝试使用MA(15)创建每日数据的库存蜡烛。
我可以毫无问题地用OHLC栏创建图表。
但是当我开始使用DataManipulator.FinancialFormula作为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");
答案 0 :(得分:2)
虽然年纪很大,但我认为我离开了自己的贡献,因为我正在努力奋斗 相同的错误消息和发布的代码实际上指出了我正确的方向。
我相信在设置XValueMember和YValueMembers之后需要移动chart1.DataBind()。像这样:
chart1.Series["Daily"].XValueMember = "DateStamp";
chart1.Series["Daily"].YValueMembers = "HighPrice, LowPrice, OpenPrice, ClosePrice";
chart1.DataBind();
当应用FinancialFormula时,数据将不会被加载到系列对象中。 你可能会遇到其他问题;)
答案 1 :(得分:0)
请添加
Chart1.DataManipulator.IsStartFromFirst = True