Ich habe Microsofts .Net-Diagrammsteuerungen in einem anderen Beitrag hier entdeckt, und bis jetzt liebe ich sie. Für alle, die es brauchen, hier ist der Link: http://code.msdn.microsoft.com/mschart
Ich mache alles während der Laufzeit, wie z. B. das Erstellen von Serien und das Einfügen in einen Diagrammbereich. Ich kann erfolgreich ein Candlestick-Diagramm erstellen, indem ich es mit einem X-Wert und 4 Y-Werten versorge, und wenn ich es dem Diagramm wie folgt hinzufüge:
// "Price" is the .Name property of this series
chart1.Series.Add(priceseries);
Es funktioniert großartig. Als Nächstes habe ich mir die Beispiele angesehen, die mit diesem schönen Steuerelement für die Finanzformeln geliefert wurden. Die Probe sagt, um den gleitenden Durchschnitt Formel verwenden (nur mit diesem als Beispiel, ich kann nicht bekommen, eine von ihnen zu arbeiten), der Code ist dies:
chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage,"5","Input","Simple");
Wobei "5" die zu verwendende Periode ist, die ich also beliebig wählen kann. "Input" ist die Reihe der Datenquelle und "Simple" ist die Reihe der Ausgabe. Um dies in eine Art und Weise, die mit meinem Code funktioniert zu drehen, habe ich eine Schaltfläche erstellt und tat dies:
private void button1_Click(object sender, EventArgs e)
{
chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage, "5", "Price", "SMA");
}
Schön einfach, nicht wahr? Nun, sobald ich auf diese Schaltfläche klicken, mein Diagramm-Steuerelement zeigt ein großes, rotes, unglücklich X und NICHT die gleitenden Durchschnitt Serie (die ich benannt "SMA") auf dem Diagramm in irgendeiner Weise, Form, oder Form.
Um den obigen Code zu ergänzen, habe ich versucht, die "SMA"-Serie im Voraus zu erstellen, und ich habe versucht, die "SMA"-Serie zum Diagramm hinzuzufügen, nachdem ich den Financialformula-Aufruf durchgeführt habe, und beide enden mit dem großen, gemeinen roten X. Wenn ich den Beispielcode noch einmal durchgehe, scheint es, dass die einzelne Codezeile alles ist, was benötigt wird, um die zusätzliche Datenserie zu generieren, aber ich komme nicht weiter! Es hilft auch nicht, dass das rote X keinerlei Debugging-Informationen enthält :(
Irgendwelche Ideen, wie man das große X loswerden und stattdessen die neue Datenreihe anzeigen kann?
Aktualisierung: Nur als Test, ich entfernt das Bit über das Hinzufügen der Serie zu Chart1, dann fügte ich die chart1.DataManipulator Bit direkt nach ihm. Wie erwartet, erscheint die anfängliche Serie, die alle meine anfänglichen Daten hat, nicht (weil ich den Teil entfernt habe, der sie zum Diagramm hinzufügt), aber wenn die nächste Codezeile die Formelanwendung ausführt - kein großes rotes X. Es werden keine Daten angezeigt, aber auch kein Fehlercode - also schätze ich, dass das eine Verbesserung ist? Dies führt mich zu der Annahme, dass es entweder ein Problem mit dem ursprünglichen Datensatz gibt, auf den ich die Formel anwende, oder etwas, das mit der Ansicht/den Grenzen des Diagrammsteuerelements selbst zu tun hat. Wenn ich etwas mehr auf dieser Spur finde, werde ich es als zweites Update veröffentlichen.