Analyse-Diagramm: Grundlegende Verteilung
2 Antworten
seaton
vor 8 Jahren #114157
Ich habe heute Abend mit einigen Erweiterungen für Analysediagramme herumgespielt
Das Ergebnis ist ein sehr einfaches Profit-Verteilungsdiagramm.
Ich brauche eine Möglichkeit, Bin-Bereich für das Histogramm zu tun. PS auch ignorieren die Achsenbeschriftungen, wie ich bin hier spielen
Mark: Können Sie bitte ein SQChart Wrapper um die JFreeChart Histogram Chart so SQ tun können richtige Histogramm-Diagramme? Im Moment bin ich mit Line Graph statt.
/* * Copyright (c) 2015, StrategyQuant - Alle Rechte vorbehalten. * * Der Code in dieser Datei wurde in dem guten Glauben erstellt, dass er korrekt ist und das tut, was er soll. * Wenn Sie einen Fehler in diesem Code gefunden haben ODER Sie haben einen Verbesserungsvorschlag ODER Sie wollen * Ihren eigenen Codeschnipsel in unsere Standardbibliothek aufnehmen möchten, kontaktieren Sie uns bitte unter: * http://tasks.strategyquant.com/projects/snippets/ * * Dieser Code kann nur innerhalb von StrategyQuant-Produkten verwendet werden. * Jeder Besitzer einer gültigen (kostenlosen, Test- oder kommerziellen) Lizenz eines StrategyQuant-Produkts * darf diesen Code ohne Einschränkungen frei verwenden, kopieren, modifizieren oder davon abgeleitete Arbeiten erstellen, * in allen StrategyQuant-Produkten zu verwenden und seine Modifikationen oder abgeleiteten Arbeiten * mit der StrategyQuant-Gemeinschaft zu teilen. * * DIE SOFTWARE WIRD "SO WIE SIE IST" ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE GARANTIE, WEDER AUSDRÜCKLICH NOCH STILLSCHWEIGEND, * EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN * ZWECK UND NICHTVERLETZUNG VON RECHTEN. IN KEINEM FALL SIND DIE AUTOREN HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN * ODER ANDERE HAFTUNG, OB IN EINER KLAGE AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS, * AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER DEM SONSTIGEN UMGANG MIT DER SOFTWARE. * */ Paket com.strategyquant.extend.TradeAnalysisPanes; import org.jfree.chart.JFreeChart; import org.jfree.data.statistics.HistogramDataset; import java.util.Arrays; import java.util.List; import com.strategyquant.lib.charts.common.SQLineChart; import com.strategyquant.lib.language.L; import com.strategyquant.lib.results.SQData; import com.strategyquant.lib.results.SQOrder; importieren com.strategyquant.lib.results.SQOrderList; import com.strategyquant.lib.results.SQResultsGroup; import com.strategyquant.lib.results.SQResultsGroup; import com.strategyquant.lib.settings.SQConst; import com.strategyquant.lib.snippets.TradeAnalysisChartPane; import com.strategyquant.lib.time.SQTime; import com.strategyquant.lib.time.SQTime; public class PLDistributionChart extends TradeAnalysisChartPane { public PLDistributionChart() { this.name = L.t("% Profit Verteilung (Linie)"); } @Override public JFreeChart drawChart(SQResultsGroup strategyResult, SQData data) { SQLineChart chart = new SQLineChart(); chart.xLegend = L.t("PDF"); chart.yLegend = L.t("Häufigkeit"); HistogrammDatensatz dataset = new HistogrammDatensatz(); if(strategyResult==null) { return chart.render(); } SQOrderList orderList = filterOrders(strategyResult, data); double[] trades = new double[orderList.size()]; // HistogramDataSet benötigt double[] als Eingabe. for(SQOrder order : orderList) { trades[orderList.indexOf(order)] = order.PctPL; } dataset.addSeries("Gain (%)", trades, 10); for(int index=0 ; index < dataset.getItemCount(0) ; index++){ chart.add("Gain (%)", dataset.getXValue(0, index),dataset.getYValue(0, index)); } //chart.setIntegerRangeAxis(true); return chart.render(); } }
Herzliche Grüße,
Stephen...
seaton
vor 8 Jahren #132429
Tamas
vor 8 Jahren #132433
Hallo seaton,
die Methode drawChart() gibt eine Instanz von JFreeChart zurück.
Sie können mit ChartFactory verschiedene Arten von Diagrammen erstellen.
http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/ChartFactory.html
JFreeChart chart = ChartFactory.createHistogram();
Weitere Einzelheiten finden Sie unter dem unten stehenden Link oder suchen Sie nach "ChartFactory.createHistogram".
http://www.roseindia.net/tutorial/java/jfreechart/createhistogram.html
Mit freundlichen Grüßen,
Tomas
Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)