C # MSChart Подсвечник и скользящее среднее. Ошибка: ошибка формулы - недостаточно точек данных для периода - PullRequest
1 голос
/ 31 августа 2011

Вы не можете голосовать за свой пост 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");

Ответы [ 2 ]

2 голосов
/ 06 июля 2013

Хотя довольно старый я думал, что я оставляю свой вклад, так как я боролся с тем же самым сообщением об ошибке, и отправленный код фактически указал меня в правильном направлении.

Я считаю, что chart1.DataBind () должендвигаться после установки XValueMember и YValueMembers.Например:

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

к моменту применения FinancialFormula данные не будут загружены в объект серии в противном случае.Вы можете столкнуться с другой проблемой;)

0 голосов
/ 06 сентября 2011

пожалуйста, добавьте

Chart1.DataManipulator.IsStartFromFirst = True

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...