Grafico di analisi: Distribuzione di base

2 risposte

seaton

Cliente, bbp_partecipante, comunità, 161 risposte.

Visita il profilo

8 anni fa #114157

Stasera ho giocato con alcune estensioni dei grafici di analisi.

 

Il risultato è un grafico di distribuzione Profit molto semplice.

 

 

Ho bisogno di un modo per creare un intervallo di bin per l'istogramma. PS ignora anche le etichette degli assi perché sto giocando qui.

 

Mark: Puoi creare un wrapper SQChart attorno al grafico istogramma JFreeChart in modo che SQ possa creare grafici istogramma corretti? Al momento sto usando il grafico a linee.

/* * Copyright (c) 2015, StrategyQuant - Tutti i diritti riservati.
 *
 * Il codice contenuto in questo file è stato realizzato in buona fede, in modo che sia corretto e faccia ciò che dovrebbe.
 * Se avete trovato un bug in questo codice O avete un suggerimento per migliorarlo O volete includere
 * un vostro frammento di codice nella nostra libreria standard, contattateci all'indirizzo:
 * http://tasks.strategyquant.com/projects/snippets/
 *
 * Questo codice può essere utilizzato solo all'interno dei prodotti StrategyQuant.
 * Ogni proprietario di una licenza valida (gratuita, di prova o commerciale) di qualsiasi prodotto StrategyQuant
 * è autorizzato a utilizzare, copiare, modificare o fare lavori derivati da questo codice senza limitazioni,
 * da utilizzare in tutti i prodotti StrategyQuant e condividere le sue modifiche o i suoi lavori derivati
 * con la comunità StrategyQuant.
 *
 * IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIE DI ALCUN TIPO, ESPRESSE O IMPLICITE,
 * INCLUSE, A TITOLO ESEMPLIFICATIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE
 * SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI POTRANNO ESSERE RITENUTI RESPONSABILI PER QUALSIASI RECLAMO, DANNO
 * O ALTRE RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, CHE IN UN ILLECITO O ALTRO, DERIVANTI DA,
 * DA O IN RELAZIONE AL SOFTWARE O ALL'USO O AD ALTRI RAPPORTI CON IL SOFTWARE.
 *
 */
package com.strategyquant.extend.TradeAnalysisPanes;


importare org.jfree.chart.JFreeChart;
import org.jfree.data.statistics.HistogramDataset;


importare java.util.Arrays;
importare java.util.List;


importare com.strategyquant.lib.charts.common.SQLineChart;
importare com.strategyquant.lib.language.L;
importare com.strategyquant.lib.results.SQData;
importare com.strategyquant.lib.results.SQOrder;
importare com.strategyquant.lib.results.SQOrderList;
importare com.strategyquant.lib.results.SQResultsGroup;
importare com.strategyquant.lib.settings.SQConst;
importare com.strategyquant.lib.snippets.TradeAnalysisChartPane;
importare com.strategyquant.lib.time.SQTime;


public class PLDistributionChart extends TradeAnalysisChartPane {


public PLDistributionChart() {
this.name = L.t("% Profit Distribution (Line)");
}


@Override
public JFreeChart drawChart(SQResultsGroup strategyResult, SQData data) {
SQLineChart chart = new SQLineChart();
chart.xLegend = L.t("PDF");
      chart.yLegend = L.t("Frequenza");
      
      HistogramDataset dataset = new HistogramDataset();
      
if(strategyResult==null) {
return chart.render();
}


     SQOrderList orderList = filterOrders(strategyResult, data);


 double[] trades = new double[orderList.size()]; // HistogramDataSet richiede double[] come input.


     for(SQOrder order : orderList) {
         trades[orderList.indexOf(order)] = order.PctPL;
      }


    dataset.addSeries("Gain (%)", trades, 10);


      per(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();
}
}

Saluti,

 

Stephen...

0

seaton

Cliente, bbp_partecipante, comunità, 161 risposte.

Visita il profilo

8 anni fa #132429

 

Anche il grafico a barre

0

Tamas

Cliente, bbp_partecipante, comunità, sq-ultimate, 73 risposte.

Visita il profilo

8 anni fa #132433

Ciao seaton,

 

il metodo drawChart() restituisce un'istanza di JFreeChart.

È possibile creare diversi tipi di grafici con ChartFactory.

http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/ChartFactory.html

 

JFreeChart chart = ChartFactory.createHistogram();

 

Per maggiori dettagli, vedere il link qui sotto o cercare "ChartFactory.createHistogram".

http://www.roseindia.net/tutorial/java/jfreechart/createhistogram.html

 

Cordiali saluti,

Tomas

0

Stai visualizzando 2 risposte - da 1 al 2 (di 2 totali)