Gráfico de análisis: Distribución básica

2 respuestas

seaton

Cliente, bbp_participante, comunidad, 161 respuestas.

Visitar el perfil

hace 8 años #114157

Esta noche he estado jugando con algunas extensiones del gráfico de análisis

 

El resultado es un gráfico de distribución Profit muy básico.

 

 

Necesito una manera de hacer rango bin para el histograma. PS también ignorar las etiquetas de eje como estoy jugando aquí

 

Mark: ¿Puedes por favor una envoltura SQChart alrededor del gráfico de histograma JFreeChart para que SQ pueda hacer gráficos de histograma adecuados? Por el momento estoy usando Line graph en su lugar.

/* * Copyright (c) 2015, StrategyQuant - Todos los derechos reservados.
 *
 * Código en este archivo se hizo de buena fe que es correcto y hace lo que debe.
 * Si has encontrado un error en este código O tienes una sugerencia de mejora O quieres incluir
 * su propio fragmento de código en nuestra biblioteca estándar por favor póngase en contacto con nosotros en:
 * http://tasks.strategyquant.com/projects/snippets/
 *
 * Este código sólo se puede utilizar en los productos StrategyQuant.
 * Todo propietario de una licencia válida (gratuita, de prueba o comercial) de cualquier producto StrategyQuant
 * está autorizado a utilizar, copiar, modificar o hacer trabajos derivados de este código libremente y sin limitaciones,
 * para ser utilizado en todos los productos StrategyQuant y compartir sus modificaciones o trabajos derivados
 * con la comunidad StrategyQuant.
 *
 * EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA,
 * INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN DETERMINADO
 * PROPÓSITO Y NO INFRACCIÓN. EN NINGÚN CASO SERÁN LOS AUTORES RESPONSABLES DE CUALQUIER RECLAMACIÓN, DAÑO
 * U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE,
 * O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS OPERACIONES CON EL SOFTWARE.
 *
 */
paquete 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;
import com.strategyquant.lib.results.SQOrderList;
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 Distribución (Línea)");
}


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


     SQOrderList orderList = filterOrders(strategyResult, data);


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


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


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


      for(int index=0 ; index < dataset.getItemCount(0) ; index++){
        chart.add("Ganancia (%)", dataset.getXValue(0, index),dataset.getYValue(0, index));
      }


//chart.setIntegerRangeAxis(true);


return chart.render();
}
}

Saludos,

 

Stephen...

0

seaton

Cliente, bbp_participante, comunidad, 161 respuestas.

Visitar el perfil

hace 8 años #132429

 

Gráfico de barras también

0

Tamas

Cliente, bbp_participant, comunidad, sq-ultimate, 73 respuestas.

Visitar el perfil

hace 8 años #132433

Hola seaton,

 

el método drawChart() devuelve una instancia de JFreeChart.

Puede crear diferentes tipos de gráficos con ChartFactory.

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

 

JFreeChart gráfico = ChartFactory.createHistogram();

 

para más detalles ver el enlace de abajo o buscar "ChartFactory.createHistogram"

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

 

Saludos cordiales,

Tomas

0

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)