Analyse-Diagramm: Grundlegende Verteilung

2 Antworten

seaton

Kunde, bbp_participant, community, 161 Antworten.

Profil besuchen

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...

0

seaton

Kunde, bbp_participant, community, 161 Antworten.

Profil besuchen

vor 8 Jahren #132429

 

Auch Balkendiagramm

0

Tamas

Kunde, bbp_participant, community, sq-ultimate, 73 Antworten.

Profil besuchen

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

0

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)