Update of /cvsroot/tail/Tail/src/test/net/sf/tail/graphics
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv24551/src/test/net/sf/tail/graphics
Added Files:
StockAndFlowChartTest.java
Log Message:
Novo construtor no cashflow para o valor inicial não necessariamente ser 1.
Stockandcashflow criado para o report geral, imprime o cash flow versus buy and hold de todo o timeseries, sem setas de trade.
--- NEW FILE: StockAndFlowChartTest.java ---
package net.sf.tail.graphics;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import javax.swing.JPanel;
import net.sf.tail.Indicator;
import net.sf.tail.OperationType;
import net.sf.tail.TimeSeries;
import net.sf.tail.Trade;
import net.sf.tail.flow.CashFlow;
import net.sf.tail.indicator.simple.ClosePriceIndicator;
import net.sf.tail.indicator.tracker.SMAIndicator;
import net.sf.tail.reader.CedroTimeSeriesLoader;
import net.sf.tail.runner.HistoryRunner;
import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class StockAndFlowChartTest extends ApplicationFrame{
private static final long serialVersionUID = -6626066873257820845L;
private StockAndCashFlowDataset seriesDataset;
private Indicator<? extends Number> indicator;
private CashFlow cashFlow;
private final TimeSeries timeSeries;
public StockAndFlowChartTest(String chartName) {
super(chartName);
timeSeries = readFileData();
JPanel chartPanel = createSmaAndStrategyChart();
chartPanel.setPreferredSize(new Dimension(800, 600));
JPanel mainPanel = new JPanel(new FlowLayout());
mainPanel.add(chartPanel,"North");
mainPanel.setPreferredSize(new Dimension(1280, 1024));
setContentPane(mainPanel);
}
public static void main(String args[])
{
StockAndFlowChartTest chart = new StockAndFlowChartTest("Chart test");
chart.pack();
RefineryUtilities.centerFrameOnScreen(chart);
chart.setVisible(true);
}
public JPanel createSmaAndStrategyChart()
{
indicator = new ClosePriceIndicator(timeSeries);
SMAIndicator sma = new SMAIndicator(indicator, 8);
List<Trade> trades = new HistoryRunner(OperationType.BUY).run(new IndicatorCrossedIndicatorStrategy(indicator,sma), 0, timeSeries.getSize() - 1);
cashFlow = new CashFlow(timeSeries, trades, indicator.getValue(0).doubleValue());
seriesDataset = new StockAndCashFlowDataset(timeSeries, indicator, cashFlow, 0, timeSeries.getSize() - 1);
StockAndCashFlowChart seriesAndFlowChart = new StockAndCashFlowChart(seriesDataset);
JFreeChart jfreechart = seriesAndFlowChart.createChart("Test Chart");
return new ChartPanel(jfreechart);
}
/**
* @return
*/
private TimeSeries readFileData() {
CedroTimeSeriesLoader ctsl = new CedroTimeSeriesLoader();
TimeSeries timeSeries = null;
try {
timeSeries = ctsl.load(new FileInputStream("BaseBovespa/diario/aces4Dia.csv"), "");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return timeSeries;
}
}
|