Grafico di analisi: Distribuzione di base
2 risposte
seaton
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...
seaton
8 anni fa #132429
Tamas
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
Stai visualizzando 2 risposte - da 1 al 2 (di 2 totali)