Gráfico de análise: Distribuição básica

2 respostas

seaton

Cliente, bbp_participante, comunidade, 161 respostas.

Perfil da visita

8 anos atrás #114157

Esta noite, estive brincando com algumas extensões de gráfico do Analysis

 

O resultado é um gráfico de distribuição de Profit muito básico.

 

 

Preciso de uma maneira de fazer o intervalo de compartimentos para o histograma. PS: ignore também os rótulos dos eixos, pois estou brincando aqui

 

Mark: Você poderia criar um SQChart wrapper em torno do gráfico de histograma JFreeChart para que o SQ possa criar gráficos de histograma adequados? No momento, estou usando o gráfico de linhas.

/* * Copyright (c) 2015, StrategyQuant - Todos os direitos reservados.
 *
 * O código contido neste arquivo foi criado de boa-fé, garantindo que está correto e faz o que deveria.
 * Se você encontrou um bug neste código OU tem uma sugestão de melhoria OU deseja incluir
 * seu próprio trecho de código em nossa biblioteca padrão, entre em contato conosco em:
 * http://tasks.strategyquant.com/projects/snippets/
 *
 * Este código pode ser usado somente em produtos StrategyQuant.
 * Todo proprietário de uma licença válida (gratuita, de teste ou comercial) de qualquer produto StrategyQuant
 * tem permissão para usar, copiar, modificar ou fazer trabalhos derivados desse código livremente, sem limitações,
 * para ser usado em todos os produtos StrategyQuant e compartilhar suas modificações ou trabalhos derivados
 * com a comunidade StrategyQuant.
 *
 * O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA,
 * INCLUINDO, MAS NÃO SE LIMITANDO A, GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO
 * FINALIDADE ESPECÍFICA E NÃO VIOLAÇÃO. EM NENHUMA HIPÓTESE OS AUTORES SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANO
 * OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE,
 * DECORRENTES DE, FORA DE OU EM CONEXÃO COM O SOFTWARE OU COM O USO OU OUTRAS NEGOCIAÇÕES COM O SOFTWARE.
 *
 */
package com.strategyquant.extend.TradeAnalysisPanes;


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


importar java.util.Arrays;
Importar 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;
import 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;


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("Frequency");
      
      HistogramDataset dataset = new HistogramDataset();
      
se(strategyResult==null) {
return chart.render();
}


     SQOrderList orderList = filterOrders(strategyResult, data);


 double[] trades = new double[orderList.size()]; // HistogramDataSet requer double[] como entrada.


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

Cumprimentos,

 

Stephen...

0

seaton

Cliente, bbp_participante, comunidade, 161 respostas.

Perfil da visita

8 anos atrás #132429

 

Gráfico de barras também

0

Tamas

Cliente, bbp_participante, comunidade, sq-ultimate, 73 respostas.

Perfil da visita

8 anos atrás #132433

Olá, seaton,

 

O método drawChart() retorna uma instância de JFreeChart.

Você pode criar diferentes tipos de gráficos com o ChartFactory.

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

 

JFreeChart chart = ChartFactory.createHistogram();

 

Para obter mais detalhes, consulte o link abaixo ou pesquise por "ChartFactory.createHistogram"

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

 

Com os melhores cumprimentos,

Tomas

0

Visualizando 2 respostas - 1 até 2 (de um total de 2)