Я обнаружил элементы управления диаграммами Microsoft .Net из другого поста здесь, и до сих пор они мне нравятся. Для тех, кому это нужно, вот ссылка: http://code.msdn.microsoft.com/mschart< /а>
Я делаю все во время выполнения, например, создаю ряды и накладываю их на область диаграммы. Я могу успешно создать график Candlestick, предоставив ему значение X и 4 значения Y, и когда я добавлю его на график следующим образом:
// "Price" is the .Name property of this series
chart1.Series.Add(priceseries);
Это прекрасно работает. Затем я внимательно изучил образцы, которые поставлялись с этим прекрасным элементом управления для финансовых формул. В образце говорится, что нужно использовать формулу скользящего среднего (просто используя это в качестве примера, я не могу заставить ни одну из них работать), код таков:
chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage,"5","Input","Simple");
Где «5» — это период, который нужно использовать, так что это может быть все, что я захочу. Кажется, что «Вход» — это серия источника данных, а «Простой» — это серия вывода. Чтобы превратить это в способ, который работает с моим кодом, я создал кнопку и сделал это:
private void button1_Click(object sender, EventArgs e)
{
chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage, "5", "Price", "SMA");
}
Красиво и просто, а? Что ж, как только я нажимаю эту кнопку, мой элемент управления диаграммой отображает большой красный недовольный X, а НЕ серию скользящих средних (которую я назвал «SMA») на графике в любом виде, форме или форме.
Добавляя к приведенному выше коду, я попытался предварительно создать серию «SMA», я попытался добавить серию «SMA» на график после выполнения вызова Financialformula, и оба заканчиваются большим средним красным X. Проходя через пример кода снова, кажется, что одна строка кода — это все, что нужно для генерации дополнительной серии данных, но я застрял! Не помогает и то, что красный X не имеет никакой отладочной информации :(
Любые идеи о том, как избавиться от большого X и вместо этого отображать новую серию данных?
Обновление: просто в качестве теста я удалил бит о добавлении серии в Chart1, а затем добавил бит chart1.DataManipulator сразу после него. Как и ожидалось, исходный ряд, в котором есть все мои исходные данные, не появляется (потому что я удалил часть, добавляющую ее на диаграмму), но когда следующая строка кода выполняет применение формулы - большого красного крестика нет. Данных нет. показано, но также нет кода ошибки - так что я думаю, что это улучшение? Это наводит меня на мысль, что существует какая-то проблема либо с исходным набором данных, к которому я применяю формулу, либо с чем-то, связанным с представлением/границами самого элемента управления диаграммой. Если я найду что-нибудь еще по этому треку, я опубликую это как второе обновление.