Candlestick mehrere Y-Werte
Ich bin auf einer mission, um eine candlestick-Diagramm mit MSChart in einer windows-form. Ich habe bereits gelungen, ein 3D-Balkendiagramm mit keine Probleme. Aber nach langer Suche auf das internet, Microsoft-Quellcode (WinSamples) und eine Menge von headscratching ich kann nicht finden, den richtigen Weg zu erstellen Sie ein candlestick-Diagramm.
Was mir helfen konnte, ist ein deutliches Beispiel für das hinzufügen einer serie, um das Diagramm mit mehreren Y-Werte oder eine Korrektur von meinem code (wenn ich ausführen, Debuggen nichts zeigt, außer der Legende, Beschriftung).
Einen bonus wäre, dass das Beispiel basiert auf OleDB (meine Werte sind in einer Access-Datenbank).
Also meine Frage: Wenn Sie haben Erfahrung mit der Erstellung eines Candlestick-chart in C# in einer windows form-können Sie mir einen Tipp geben oder (noch besser) können Sie mir einige c# - code?
Hier ist meine derzeitige (funktioniert nicht) code:
using System.Windows.Forms.DataVisualization.Charting;
public partial class CandleStick : Form
{
public CandleStick()
{
InitializeComponent();
}
private void CandleStick_Load(object sender, EventArgs e)
{
GrafiekLaden();
}
public void GrafiekLaden()
{
Koers k = new Koers();
//This method fills up a list, the data comes from my database
//it contains Date, High, Low, Open, Close
k.meerdereOphalen();
Series price = new Series();
chart1.Series.Add(price);
//Set series chart type
chart1.Series["price"].ChartType = SeriesChartType.Candlestick;
//Set the style of the open-close marks
chart1.Series["price"]["OpenCloseStyle"] = "Triangle";
//Show both open and close marks
chart1.Series["price"]["ShowOpenClose"] = "Both";
//Set point width
chart1.Series["price"]["PointWidth"] = "1.0";
//Set colors bars
chart1.Series[0]["PriceUpColor"] = "Green";
chart1.Series[0]["PriceDownColor"] = "Red";
for (int i = 0; i < k.Lijst.Count; i++)
{
//adding date and high
chart1.Series["price"].Points.AddXY(DateTime.Parse(k.Lijst[i].Datum), k.Lijst[i].Hoog);
//adding low
chart1.Series["price"].Points[i].YValues[1] = k.Lijst[i].Laag;
//adding open
chart1.Series["price"].Points[i].YValues[2] = k.Lijst[i].PrijsOpen;
//adding close
chart1.Series["price"].Points[i].YValues[3] = k.Lijst[i].PrijsGesloten;
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code fügt eine
Series
nicht mit dem Namen "Preis", dann verweisen beideSeries["price"]
undSeries[0]
werden und nicht die gleiche Sache, wenn die anderen Serien bereits existieren. Ich lief eine leicht modifizierte version (faking db-Daten mit einemList<>
) ohne jedes problem.Sie sollten überprüfen, dass die Daten aus deiner DB ist ok.