You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(148) |
Jun
(48) |
Jul
(107) |
Aug
(292) |
Sep
(301) |
Oct
(530) |
Nov
(142) |
Dec
(37) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
|
Feb
|
Mar
(4) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-26 19:36:20
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/io In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv14368/src/test/net/sf/tail/io Modified Files: SerializerTest.java Log Message: Index: SerializerTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/io/SerializerTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** SerializerTest.java 4 Sep 2007 13:09:16 -0000 1.5 --- SerializerTest.java 26 Sep 2007 19:36:22 -0000 1.6 *************** *** 14,18 **** import net.sf.tail.Strategy; import net.sf.tail.TimeSeries; - import net.sf.tail.Walker; import net.sf.tail.analysis.Stock; import net.sf.tail.analysis.StockAnalysis; --- 14,17 ---- *************** *** 22,26 **** import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.BestStrategyEvaluator; - import net.sf.tail.analysis.walk.WalkForward; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.EMAIndicator; --- 21,24 ---- *************** *** 28,37 **** import net.sf.tail.indicator.tracker.WilliamsRIndicator; import net.sf.tail.io.reader.CedroTimeSeriesLoader; - import net.sf.tail.report.Report; import net.sf.tail.runner.HistoryRunner; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.series.SlicerByTimePeriod; import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy; - import net.sf.tail.strategy.JustBuyOnceStrategy; import org.joda.time.DateTime; --- 26,33 ---- *************** *** 64,85 **** @Test ! public void testReportSerializer() { ! ! Walker w = new WalkForward(new BestStrategyEvaluator(runner)); ! ! ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); ! SMAIndicator sma = new SMAIndicator(close, 8); ! ! Set<Strategy> strategies = new HashSet<Strategy>(); ! strategies.add(new IndicatorCrossedIndicatorStrategy(close, sma)); ! strategies.add(new JustBuyOnceStrategy()); ! ! Report report = w.walk(strategies, slicer, applyedCriterion); ! ! Serializer<Report> serializer = new Serializer<Report>(); ! String xml = serializer.toXML(report); ! Report reportAfter = serializer.fromXML(xml); ! ! assertEquals(report, reportAfter); } --- 60,70 ---- @Test ! public void testStockSerializer() throws FileNotFoundException, IOException { ! Stock stock = new Stock("test", "BaseBovespa/15min/ambv4.csv",new CedroTimeSeriesLoader()); ! StockSerializer serializer = new StockSerializer(); ! String serializedStock = serializer.toXML(stock); ! Stock newStock = serializer.fromXML(serializedStock); ! assertEquals(stock, newStock); ! assertEquals(stock.getSeries(), newStock.getSeries()); } *************** *** 129,133 **** stockAnalysis.createReport(strategies); ! Serializer<StockAnalysis> serializer = new Serializer<StockAnalysis>(); String xml = serializer.toXML(stockAnalysis); --- 114,118 ---- stockAnalysis.createReport(strategies); ! StockAnalysisSerializer serializer = new StockAnalysisSerializer(); String xml = serializer.toXML(stockAnalysis); *************** *** 135,139 **** assertEquals(stockAnalysis, afterStockAnalysis); ! } } --- 120,125 ---- assertEquals(stockAnalysis, afterStockAnalysis); ! assertEquals(stockAnalysis.getStock().getSeries(), afterStockAnalysis.getStock().getSeries()); ! } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-26 19:36:20
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv14368/src/java/net/sf/tail/analysis Modified Files: StockAnalysis.java Log Message: Index: StockAnalysis.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/StockAnalysis.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** StockAnalysis.java 4 Sep 2007 13:09:16 -0000 1.6 --- StockAnalysis.java 26 Sep 2007 19:36:21 -0000 1.7 *************** *** 99,103 **** return additionalCriteria; } ! @Override public int hashCode() { --- 99,103 ---- return additionalCriteria; } ! @Override public int hashCode() { |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-26 19:36:20
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv14368/src/java/net/sf/tail/report Modified Files: Report.java Log Message: Index: Report.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/Report.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Report.java 26 Sep 2007 18:42:33 -0000 1.15 --- Report.java 26 Sep 2007 19:36:22 -0000 1.16 *************** *** 15,19 **** private transient List<Decision> decisions; ! private TimeSeriesSlicer slicer; private AnalysisCriterion applyedCriterion; --- 15,19 ---- private transient List<Decision> decisions; ! private transient TimeSeriesSlicer slicer; private AnalysisCriterion applyedCriterion; *************** *** 63,73 **** } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((applyedCriterion == null) ? 0 : applyedCriterion.hashCode()); result = prime * result + ((criterionValue == null) ? 0 : criterionValue.hashCode()); - result = prime * result + ((slicer == null) ? 0 : slicer.hashCode()); return result; } --- 63,75 ---- } + + @Override public int hashCode() { final int prime = 31; int result = 1; + result = prime * result + ((additionalCriteria == null) ? 0 : additionalCriteria.hashCode()); result = prime * result + ((applyedCriterion == null) ? 0 : applyedCriterion.hashCode()); result = prime * result + ((criterionValue == null) ? 0 : criterionValue.hashCode()); return result; } *************** *** 97,110 **** } else if (!criterionValue.equals(other.criterionValue)) return false; - if (slicer == null) { - if (other.slicer != null) - return false; - } else if (!slicer.equals(other.slicer)) - return false; return true; } public String getName() { ! return slicer.getSeries().getName() + ": " + slicer.getSeries().getPeriod(); } --- 99,108 ---- } else if (!criterionValue.equals(other.criterionValue)) return false; return true; } + public String getName() { ! return name; } *************** *** 112,116 **** this.name = name; } ! public String getFileName() { return this.getClass().getSimpleName() --- 110,114 ---- this.name = name; } ! public String getFileName() { return this.getClass().getSimpleName() |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-26 19:36:20
|
Update of /cvsroot/tail/Tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv14368 Modified Files: .classpath Log Message: Index: .classpath =================================================================== RCS file: /cvsroot/tail/Tail/.classpath,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** .classpath 24 Sep 2007 17:15:45 -0000 1.18 --- .classpath 26 Sep 2007 19:36:22 -0000 1.19 *************** *** 1,5 **** <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" path="src/test"/> <classpathentry kind="src" path="dsl"/> --- 1,4 ---- *************** *** 24,29 **** <classpathentry kind="lib" path="lib/dsl/ruby/jarjar-0.7.jar"/> <classpathentry kind="lib" path="lib/dsl/ruby/jline-0.9.91.jar"/> - <classpathentry kind="lib" path="lib/dsl/ruby/jruby.jar"/> <classpathentry kind="lib" path="lib/dsl/ruby/jruby-engine.jar"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JavaFX"/> <classpathentry kind="output" path="bin"/> --- 23,28 ---- <classpathentry kind="lib" path="lib/dsl/ruby/jarjar-0.7.jar"/> <classpathentry kind="lib" path="lib/dsl/ruby/jline-0.9.91.jar"/> <classpathentry kind="lib" path="lib/dsl/ruby/jruby-engine.jar"/> + <classpathentry kind="lib" path="lib/dsl/ruby/jruby.jar"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JavaFX"/> <classpathentry kind="output" path="bin"/> |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-26 19:36:20
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv14368/src/test/net/sf/tail/indicator/tracker Modified Files: OnBalanceVolumeIndicatorTest.java Log Message: Index: OnBalanceVolumeIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/tracker/OnBalanceVolumeIndicatorTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** OnBalanceVolumeIndicatorTest.java 19 Sep 2007 21:14:15 -0000 1.1 --- OnBalanceVolumeIndicatorTest.java 26 Sep 2007 19:36:21 -0000 1.2 *************** *** 1,4 **** --- 1,6 ---- package net.sf.tail.indicator.tracker; + import static junit.framework.Assert.assertEquals; + import java.util.ArrayList; import java.util.List; *************** *** 8,12 **** import org.junit.Test; - import static junit.framework.Assert.*; public class OnBalanceVolumeIndicatorTest { --- 10,13 ---- |
|
From: xanaot <xa...@us...> - 2007-09-26 19:32:41
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13044/src/java/net/sf/tail Modified Files: TimeSeriesSlicer.java Log Message: coloquei o import... =( Index: TimeSeriesSlicer.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/TimeSeriesSlicer.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** TimeSeriesSlicer.java 26 Sep 2007 19:15:06 -0000 1.7 --- TimeSeriesSlicer.java 26 Sep 2007 19:32:38 -0000 1.8 *************** *** 1,4 **** --- 1,6 ---- package net.sf.tail; + import org.joda.time.Period; + public interface TimeSeriesSlicer { |
|
From: Thies <tg...@us...> - 2007-09-26 19:24:07
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv9471/src/test/net/sf/tail/strategy Added Files: ParabolicSarAndDMIStrategyTest.java Log Message: Acerto em indicador e nova estrategia --- NEW FILE: ParabolicSarAndDMIStrategyTest.java --- package net.sf.tail.strategy; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.sample.SampleTimeSeries; import org.junit.Test; public class ParabolicSarAndDMIStrategyTest { @Test public void shouldEnterTest() { TimeSeries series1 = new SampleTimeSeries(new double[] {10, 9, 6, 10, 5 }); TimeSeries series2 = new SampleTimeSeries(new double[] {8, 7, 7, 8, 6 }); IndicatorCrossedIndicatorStrategy indicatorCrossedIndicator = new IndicatorCrossedIndicatorStrategy(new ClosePriceIndicator(series1), new ClosePriceIndicator(series2)); ParabolicSarAndDMIStrategy parabolicStrategy = new ParabolicSarAndDMIStrategy(indicatorCrossedIndicator, null); assertFalse(parabolicStrategy.shouldEnter(0)); assertFalse(parabolicStrategy.shouldEnter(1)); assertTrue(parabolicStrategy.shouldEnter(2)); assertFalse(parabolicStrategy.shouldEnter(3)); assertTrue(parabolicStrategy.shouldEnter(4)); } @Test public void shouldExitTest() { TimeSeries series1 = new SampleTimeSeries(new double[] {6, 11, 6, 5, 9 }); TimeSeries series2 = new SampleTimeSeries(new double[] {10, 9, 7, 6, 6 }); TimeSeries series3 = new SampleTimeSeries(new double[] {1, 1, 1, 1, 1} ); TimeSeries series4 = new SampleTimeSeries(new double[] {2, 2, 2, 2, 0} ); IndicatorCrossedIndicatorStrategy indicatorCrossedIndicator = new IndicatorCrossedIndicatorStrategy(new ClosePriceIndicator(series1), new ClosePriceIndicator(series2)); IndicatorOverIndicatorStrategy indicatorOverIndicator = new IndicatorOverIndicatorStrategy(new ClosePriceIndicator(series3), new ClosePriceIndicator(series4)); ParabolicSarAndDMIStrategy parabolicStrategy = new ParabolicSarAndDMIStrategy(indicatorCrossedIndicator, indicatorOverIndicator); assertFalse(parabolicStrategy.shouldExit(0)); assertFalse(parabolicStrategy.shouldExit(1)); assertFalse(parabolicStrategy.shouldExit(2)); assertFalse(parabolicStrategy.shouldExit(3)); assertTrue(parabolicStrategy.shouldExit(4)); } } |
|
From: Thies <tg...@us...> - 2007-09-26 19:24:07
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv9471/src/java/net/sf/tail/strategy Added Files: ParabolicSarAndDMIStrategy.java Log Message: Acerto em indicador e nova estrategia --- NEW FILE: ParabolicSarAndDMIStrategy.java --- package net.sf.tail.strategy; public class ParabolicSarAndDMIStrategy extends AbstractStrategy { private IndicatorCrossedIndicatorStrategy parabolicStrategy; private IndicatorOverIndicatorStrategy dmiStrategy; public String getName() { return getClass().getSimpleName(); } public ParabolicSarAndDMIStrategy(IndicatorCrossedIndicatorStrategy indicatorCrossedIndicatorStrategy, IndicatorOverIndicatorStrategy indicatorOverIndicatorStrategy) { this.parabolicStrategy = indicatorCrossedIndicatorStrategy; this.dmiStrategy = indicatorOverIndicatorStrategy; } public boolean shouldEnter(int index) { return parabolicStrategy.shouldEnter(index); } public boolean shouldExit(int index) { return dmiStrategy.and(parabolicStrategy).shouldExit(index); } } |
|
From: Thies <tg...@us...> - 2007-09-26 19:24:05
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv9471/src/java/net/sf/tail/indicator/tracker Modified Files: ParabolicSarIndicator.java Log Message: Acerto em indicador e nova estrategia Index: ParabolicSarIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/ParabolicSarIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ParabolicSarIndicator.java 24 Sep 2007 22:45:26 -0000 1.1 --- ParabolicSarIndicator.java 26 Sep 2007 19:24:06 -0000 1.2 *************** *** 55,59 **** sar = series.getTick(index - 2).getMaxPrice(); if (sar <= series.getTick(index).getMaxPrice()) { ! sar = series.getTick(index).getMaxPrice(); } --- 55,59 ---- sar = series.getTick(index - 2).getMaxPrice(); if (sar <= series.getTick(index).getMaxPrice()) { ! sar = series.getTick(index).getMinPrice(); } *************** *** 71,75 **** sar = series.getTick(index - 2).getMinPrice(); if (sar >= series.getTick(index).getMinPrice()) { ! sar = series.getTick(index).getMinPrice(); } --- 71,75 ---- sar = series.getTick(index - 2).getMinPrice(); if (sar >= series.getTick(index).getMinPrice()) { ! sar = series.getTick(index).getMaxPrice(); } |
|
From: Thies <tg...@us...> - 2007-09-26 19:24:05
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv9471/src/test/net/sf/tail/indicator/tracker Modified Files: ParabolicSarIndicatorTest.java Log Message: Acerto em indicador e nova estrategia Index: ParabolicSarIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/tracker/ParabolicSarIndicatorTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ParabolicSarIndicatorTest.java 24 Sep 2007 22:45:26 -0000 1.1 --- ParabolicSarIndicatorTest.java 26 Sep 2007 19:24:06 -0000 1.2 *************** *** 66,71 **** assertEquals(17d, sar.getValue(1)); assertEquals(11.38d, sar.getValue(2)); ! assertEquals(11.38, sar.getValue(3)); ! assertEquals(9d, sar.getValue(4)); } --- 66,71 ---- assertEquals(17d, sar.getValue(1)); assertEquals(11.38d, sar.getValue(2)); ! assertEquals(11.38d, sar.getValue(3)); ! assertEquals(18d, sar.getValue(4)); } *************** *** 89,93 **** assertEquals(0.04d * (14d - 18.8d) + 18.8d, sar.getValue(3)); assertEquals(0.06d * (11d - value) + value, sar.getValue(4)); ! assertEquals(30d, sar.getValue(5)); } --- 89,93 ---- assertEquals(0.04d * (14d - 18.8d) + 18.8d, sar.getValue(3)); assertEquals(0.06d * (11d - value) + value, sar.getValue(4)); ! assertEquals(11d, sar.getValue(5)); } |
|
From: xanaot <xa...@us...> - 2007-09-26 19:16:05
|
Update of /cvsroot/tail/Tail/reports/PNGCharts In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv5975/reports/PNGCharts Added Files: report.xls Log Message: Pasta PNGChart --- NEW FILE: report.xls --- (This appears to be a binary file; contents omitted.) |
|
From: xanaot <xa...@us...> - 2007-09-26 19:15:05
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv5200/src/java/net/sf/tail Modified Files: TimeSeriesSlicer.java Log Message: refatoração do period... Index: TimeSeriesSlicer.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/TimeSeriesSlicer.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TimeSeriesSlicer.java 4 Sep 2007 13:09:15 -0000 1.6 --- TimeSeriesSlicer.java 26 Sep 2007 19:15:06 -0000 1.7 *************** *** 12,17 **** String getName(); ! ! // String getPeriod(); SlicerType getSlicerType(); --- 12,20 ---- String getName(); ! ! String getPeriodName(); ! ! Period getPeriod(); ! SlicerType getSlicerType(); |
|
From: xanaot <xa...@us...> - 2007-09-26 19:13:51
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/series In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv4744/src/java/net/sf/tail/series Modified Files: SlicerByTimePeriod.java Log Message: refatorado o getPeriod que retornava uma string para getPeriodName... criado o getter do Period para utilizá-lo no generate do xls e html. Index: SlicerByTimePeriod.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/series/SlicerByTimePeriod.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SlicerByTimePeriod.java 4 Sep 2007 13:09:16 -0000 1.3 --- SlicerByTimePeriod.java 26 Sep 2007 19:13:51 -0000 1.4 *************** *** 135,143 **** } ! public String getPeriod() { return this.periodBegin.toString("hh:mm dd/MM/yyyy - ") + series.getTick(series.getEnd()).getDate().toString("hh:mm dd/MM/yyyy"); } public SlicerType getSlicerType() { return this.slicerType; --- 135,147 ---- } ! public String getPeriodName() { return this.periodBegin.toString("hh:mm dd/MM/yyyy - ") + series.getTick(series.getEnd()).getDate().toString("hh:mm dd/MM/yyyy"); } + public Period getPeriod() { + return period; + } + public SlicerType getSlicerType() { return this.slicerType; |
|
From: xanaot <xa...@us...> - 2007-09-26 18:42:41
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv23691/src/java/net/sf/tail/report Modified Files: Report.java Log Message: Colocado um getName no report para mostrar nas telas do TailS. Index: Report.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/Report.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Report.java 24 Sep 2007 16:19:07 -0000 1.14 --- Report.java 26 Sep 2007 18:42:33 -0000 1.15 *************** *** 22,25 **** --- 22,27 ---- private Map<Number, AnalysisCriterion> additionalCriteria; + + private String name; public Report(AnalysisCriterion criterion, TimeSeriesSlicer slicer, List<Decision> decisions) { *************** *** 106,109 **** --- 108,115 ---- return slicer.getSeries().getName() + ": " + slicer.getSeries().getPeriod(); } + + public void setName(String name) { + this.name = name; + } public String getFileName() { |
|
From: xanaot <xa...@us...> - 2007-09-26 18:25:52
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16481/src/java/net/sf/tail/report/xls Modified Files: ReportXlsGenerator.java CompleteXlsGenerator.java CellStylist.java SliceXlsGenerator.java Log Message: Refatoracao dos report e criacao de teste Index: CellStylist.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/CellStylist.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CellStylist.java 25 Sep 2007 00:04:22 -0000 1.3 --- CellStylist.java 26 Sep 2007 18:25:47 -0000 1.4 *************** *** 99,103 **** style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); ! style.setFillBackgroundColor(HSSFColor.AQUA.index); HSSFFont font = workbook.createFont(); --- 99,103 ---- style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); ! style.setFillBackgroundColor(HSSFColor.BLUE_GREY.index); HSSFFont font = workbook.createFont(); *************** *** 110,116 **** } ! protected void drawImage(File reportPNG, HSSFSheet sheet) throws IOException { HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); ! HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1, (short) 7, 17); anchor.setAnchorType(3); --- 110,116 ---- } ! protected void drawImage(File reportPNG, HSSFSheet sheet, int columnStart, int columnEnd) throws IOException { HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); ! HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 1, columnStart, (short) columnEnd, 17); anchor.setAnchorType(3); Index: CompleteXlsGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/CompleteXlsGenerator.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** CompleteXlsGenerator.java 25 Sep 2007 00:04:22 -0000 1.7 --- CompleteXlsGenerator.java 26 Sep 2007 18:25:47 -0000 1.8 *************** *** 22,28 **** criteria.add(new TotalProfitCriterion()); return generate(report, criteria, period); - } ! public List<HSSFSheet> generate(Report report, List<AnalysisCriterion> criteria, Period period) throws IOException { List<HSSFSheet> sheets = new LinkedList<HSSFSheet>(); --- 22,27 ---- criteria.add(new TotalProfitCriterion()); return generate(report, criteria, period); } ! public List<HSSFSheet> generate(Report report, List<AnalysisCriterion> criteria, Period period) throws IOException { List<HSSFSheet> sheets = new LinkedList<HSSFSheet>(); *************** *** 44,46 **** --- 43,46 ---- return sheets; } + } Index: SliceXlsGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/SliceXlsGenerator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SliceXlsGenerator.java 25 Sep 2007 00:04:22 -0000 1.4 --- SliceXlsGenerator.java 26 Sep 2007 18:25:47 -0000 1.5 *************** *** 68,72 **** File reportPNG = image.generateImage(decision); ! stylist.drawImage(reportPNG, sheet); stylist.rearrangeSheet(sheet, 10); --- 68,72 ---- File reportPNG = image.generateImage(decision); ! stylist.drawImage(reportPNG, sheet, 1, 7); stylist.rearrangeSheet(sheet, 10); *************** *** 91,95 **** createCell(rowHeader, "Trade", (short) columnIndex++, style); createCell(rowHeader, "Buy Date", (short) columnIndex++, style); ! createCell(rowHeader, "Bue Price", (short) columnIndex++, style); createCell(rowHeader, "Sell Date", (short) columnIndex++, style); createCell(rowHeader, "Sell Price", (short) columnIndex++, style); --- 91,95 ---- createCell(rowHeader, "Trade", (short) columnIndex++, style); createCell(rowHeader, "Buy Date", (short) columnIndex++, style); ! createCell(rowHeader, "Buy Price", (short) columnIndex++, style); createCell(rowHeader, "Sell Date", (short) columnIndex++, style); createCell(rowHeader, "Sell Price", (short) columnIndex++, style); Index: ReportXlsGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/ReportXlsGenerator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReportXlsGenerator.java 25 Sep 2007 00:04:22 -0000 1.4 --- ReportXlsGenerator.java 26 Sep 2007 18:25:47 -0000 1.5 *************** *** 65,69 **** File reportPNG = image.generateImage(report, period); ! stylist.drawImage(reportPNG, sheet); stylist.rearrangeSheet(sheet, 10); --- 65,69 ---- File reportPNG = image.generateImage(report, period); ! stylist.drawImage(reportPNG, sheet, 1, 6); stylist.rearrangeSheet(sheet, 10); *************** *** 79,84 **** createCell(rowHeader, "Period", (short) columnIndex++, style); ! createCell(rowHeader, "First Date", (short) columnIndex++, style); ! createCell(rowHeader, "Last Date", (short) columnIndex++, style); createCell(rowHeader, "Strategy", (short) columnIndex++, style); createCell(rowHeader, "Time Frame", (short) columnIndex++, style); --- 79,84 ---- createCell(rowHeader, "Period", (short) columnIndex++, style); ! createCell(rowHeader, "Initial Date", (short) columnIndex++, style); ! createCell(rowHeader, "Final Date", (short) columnIndex++, style); createCell(rowHeader, "Strategy", (short) columnIndex++, style); createCell(rowHeader, "Time Frame", (short) columnIndex++, style); *************** *** 122,125 **** --- 122,126 ---- HSSFRow rowDecision = sheet.createRow((short) firtRow++); strategyTimeFrame = decision.getStrategy().getName().split(":"); + createCell(rowDecision, index++, (short) indexcolumn++, style); createCell(rowDecision, decision.getSeries().getTick(decision.getSeries().getBegin()).getDateName(), *************** *** 127,131 **** createCell(rowDecision, decision.getSeries().getTick(decision.getSeries().getEnd()).getDateName(), (short) indexcolumn++, style); ! createCell(rowDecision, strategyTimeFrame[0], (short) indexcolumn++, style); createCell(rowDecision, Integer.parseInt(strategyTimeFrame[1].trim()), (short) indexcolumn++, style); calculate = report.getApplyedCriterion().calculate(decision.getSeries(), decision.getTrades()); --- 128,132 ---- createCell(rowDecision, decision.getSeries().getTick(decision.getSeries().getEnd()).getDateName(), (short) indexcolumn++, style); ! createCell(rowDecision, strategyTimeFrame[0].split("time")[0], (short) indexcolumn++, style); createCell(rowDecision, Integer.parseInt(strategyTimeFrame[1].trim()), (short) indexcolumn++, style); calculate = report.getApplyedCriterion().calculate(decision.getSeries(), decision.getTrades()); |
|
From: xanaot <xa...@us...> - 2007-09-26 18:25:52
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/report/html In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16461/src/test/net/sf/tail/report/html Modified Files: CompleteHtmlGeneratorExecutor.java Log Message: Refatoracao dos report e criacao de teste Index: CompleteHtmlGeneratorExecutor.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/report/html/CompleteHtmlGeneratorExecutor.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CompleteHtmlGeneratorExecutor.java 25 Sep 2007 00:04:23 -0000 1.1 --- CompleteHtmlGeneratorExecutor.java 26 Sep 2007 18:25:35 -0000 1.2 *************** *** 56,61 **** CompleteHtmlGenerator complete = new CompleteHtmlGenerator(r, new Period().withMonths(1)); ! complete.generate(); ! } --- 56,60 ---- CompleteHtmlGenerator complete = new CompleteHtmlGenerator(r, new Period().withMonths(1)); ! complete.generate(); } |
|
From: xanaot <xa...@us...> - 2007-09-26 17:01:39
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12525/src/java/net/sf/tails/swing/frame Modified Files: OpenStockAnalysis.java Log Message: atualizando Index: OpenStockAnalysis.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame/OpenStockAnalysis.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** OpenStockAnalysis.java 25 Sep 2007 00:07:08 -0000 1.10 --- OpenStockAnalysis.java 26 Sep 2007 17:01:41 -0000 1.11 *************** *** 258,262 **** private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) { ! // TODO adicione seu código de manipulação aqui: } --- 258,262 ---- private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) { ! System.exit(0); } *************** *** 288,292 **** private void stockAnalysisMenuItemActionPerformed(java.awt.event.ActionEvent evt) { ! // TODO adicione seu código de manipulação aqui: } } --- 288,293 ---- private void stockAnalysisMenuItemActionPerformed(java.awt.event.ActionEvent evt) { ! new NewStockAnalysis().setVisible(true); ! this.dispose(); } } |
|
From: Thies <tg...@us...> - 2007-09-25 00:09:45
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2925/src/test/net/sf/tail/analysis Modified Files: StockTest.java Log Message: Acerto nos testes Index: StockTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/StockTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** StockTest.java 25 Sep 2007 00:02:28 -0000 1.2 --- StockTest.java 25 Sep 2007 00:09:47 -0000 1.3 *************** *** 45,49 **** String serialized = serializer.toXML(stock); Stock afterSerializedStock = serializer.fromXML(serialized); - assertNull(afterSerializedStock.getSeries()); assertEquals(stock.getSeries(), afterSerializedStock.reloadSeries()); assertEquals(stock.getSeries(), afterSerializedStock.getSeries()); --- 45,48 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-25 00:07:24
|
Update of /cvsroot/tail/TailS/Data/StockAnalysis In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1162/Data/StockAnalysis Modified Files: arquivo.xml Log Message: terminato tela de new report Index: arquivo.xml =================================================================== RCS file: /cvsroot/tail/TailS/Data/StockAnalysis/arquivo.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** arquivo.xml 24 Sep 2007 22:27:47 -0000 1.1 --- arquivo.xml 25 Sep 2007 00:07:07 -0000 1.2 *************** *** 51,57 **** <iValues> <int>0</int> <int>0</int> <int>0</int> - <int>2</int> <int>0</int> <int>0</int> --- 51,57 ---- <iValues> <int>0</int> [...98407 lines suppressed...] ! <trades>29</trades> ! </net.sf.tail.Tick> ! </ticks> ! <name>vgdrsers</name> ! </series> </stock> <evaluator class="net.sf.tail.analysis.evaluator.BestStrategyEvaluator"> --- 74,85 ---- <slicerType>MEMORIZED</slicerType> </slicer> ! <applyedCriterion class="net.sf.tail.analysis.criteria.MaximumDrawDownCriterion"/> <additionalCriteria> <net.sf.tail.analysis.criteria.NumberOfTicksCriterion/> + <net.sf.tail.analysis.criteria.TotalProfitCriterion/> </additionalCriteria> <stock> ! <name>testeKadu</name> ! <seriesAdress>D:\workspace\TailS\Data\Bovespa\tests\Cedro-ReaderTest.csv</seriesAdress> </stock> <evaluator class="net.sf.tail.analysis.evaluator.BestStrategyEvaluator"> |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-25 00:07:07
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1162/src/java/net/sf/tails/swing/frame Modified Files: OpenStockAnalysis.java Log Message: terminato tela de new report Index: OpenStockAnalysis.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame/OpenStockAnalysis.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** OpenStockAnalysis.java 24 Sep 2007 23:43:40 -0000 1.9 --- OpenStockAnalysis.java 25 Sep 2007 00:07:08 -0000 1.10 *************** *** 24,27 **** --- 24,28 ---- import net.sf.tail.analysis.StockAnalysis; import net.sf.tail.io.Serializer; + import net.sf.tails.swing.frame.report.NewReportFrame; public class OpenStockAnalysis extends javax.swing.JFrame { *************** *** 252,256 **** private void addReportButtonActionPerformed(java.awt.event.ActionEvent evt) { ! // TODO adicione seu código de manipulação aqui: } --- 253,258 ---- private void addReportButtonActionPerformed(java.awt.event.ActionEvent evt) { ! new NewReportFrame(stockAnalysis).setVisible(true); ! this.dispose(); } *************** *** 260,264 **** private void saveMenuItemActionPerformed(java.awt.event.ActionEvent evt) { ! int value = directoryFileChooser.showSaveDialog(this); switch(value) { --- 262,266 ---- private void saveMenuItemActionPerformed(java.awt.event.ActionEvent evt) { ! int value = directoryFileChooser.showOpenDialog(this); switch(value) { |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-25 00:07:07
|
Update of /cvsroot/tail/TailS/lib In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1162/lib Modified Files: Tail.jar Log Message: terminato tela de new report Index: Tail.jar =================================================================== RCS file: /cvsroot/tail/TailS/lib/Tail.jar,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvspOt7Jq and /tmp/cvsRJqz2n differ |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-25 00:07:07
|
Update of /cvsroot/tail/TailS/Data/Stock In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1162/Data/Stock Added Files: testeKadu.xml Log Message: terminato tela de new report --- NEW FILE: testeKadu.xml --- <net.sf.tail.analysis.Stock> <name>testeKadu</name> <seriesAdress>D:\workspace\TailS\Data\Bovespa\tests\Cedro-ReaderTest.csv</seriesAdress> </net.sf.tail.analysis.Stock> |
|
From: Márcio V. d. S. <mv...@us...> - 2007-09-25 00:07:07
|
Update of /cvsroot/tail/TailS In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1162 Modified Files: .classpath Log Message: terminato tela de new report Index: .classpath =================================================================== RCS file: /cvsroot/tail/TailS/.classpath,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** .classpath 3 Sep 2007 23:17:10 -0000 1.4 --- .classpath 25 Sep 2007 00:07:08 -0000 1.5 *************** *** 2,11 **** --- 2,14 ---- <classpath> <classpathentry kind="src" path="src/java"/> + <classpathentry kind="src" path="src/test"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JavaFX"/> + <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> <classpathentry kind="lib" path="lib/Tail.jar" sourcepath="/Tail/src"/> <classpathentry kind="lib" path="lib/joda-time-1.4.jar" sourcepath="lib/joda-time-1.4-src-ide.zip"/> <classpathentry kind="lib" path="lib/joda-time-1.4-src-ide.zip"/> <classpathentry combineaccessrules="false" kind="src" path="/Tail"/> + <classpathentry kind="src" path="dsl"/> <classpathentry kind="output" path="bin"/> </classpath> |
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv645/src/java/net/sf/tail/report/xls Modified Files: SliceXlsGenerator.java ReportXlsGenerator.java CompleteXlsGenerator.java CellStylist.java Added Files: TimeSeriesXlsGenerator.java XLSReportGenerator.java Removed Files: ReportGenerator.java Log Message: Finalização das classes de geração de xls, refatoração e teste --- NEW FILE: XLSReportGenerator.java --- package net.sf.tail.report.xls; import java.io.IOException; import java.util.List; import net.sf.tail.AnalysisCriterion; import net.sf.tail.report.Report; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.joda.time.Period; public interface XLSReportGenerator { List<HSSFSheet> generate(Report report, List<AnalysisCriterion> criteria, Period period) throws IOException; List<HSSFSheet> generate(Report report, Period period) throws IOException; } Index: CellStylist.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/CellStylist.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CellStylist.java 24 Sep 2007 18:40:21 -0000 1.2 --- CellStylist.java 25 Sep 2007 00:04:22 -0000 1.3 *************** *** 16,27 **** public class CellStylist { - protected static final int INDEX_FIRST_COLUMN = 1; - - protected static final int INDEX_FIRST_ROW = 18; - - protected static final String FM_REPORT_DIR = "reports/"; - - protected static final String FM_CHART_DIR = "PNGCharts/"; - public CellStylist(HSSFWorkbook workbook) { this.workbook = workbook; --- 16,19 ---- *************** *** 57,61 **** } ! protected HSSFCellStyle createHeaderCellStyle(HSSFWorkbook workbook) { HSSFCellStyle style = workbook.createCellStyle(); style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); --- 49,53 ---- } ! protected HSSFCellStyle createHeaderCellStyle() { HSSFCellStyle style = workbook.createCellStyle(); style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); *************** *** 72,77 **** } ! protected HSSFCellStyle createFirstCellStyle(HSSFWorkbook wb) { ! HSSFCellStyle style = wb.createCellStyle(); style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM); --- 64,69 ---- } ! protected HSSFCellStyle createFirstCellStyle() { ! HSSFCellStyle style = workbook.createCellStyle(); style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM); *************** *** 79,83 **** style.setFillBackgroundColor(HSSFColor.AQUA.index); ! HSSFFont font = wb.createFont(); font.setFontName("Arial"); font.setFontHeightInPoints((short) 12); --- 71,75 ---- style.setFillBackgroundColor(HSSFColor.AQUA.index); ! HSSFFont font = workbook.createFont(); font.setFontName("Arial"); font.setFontHeightInPoints((short) 12); *************** *** 86,96 **** } ! protected HSSFCellStyle createInternalCellStyle(HSSFWorkbook wb) { ! HSSFCellStyle style = wb.createCellStyle(); style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); ! HSSFFont font = wb.createFont(); font.setFontName("Arial"); font.setFontHeightInPoints((short) 12); --- 78,88 ---- } ! protected HSSFCellStyle createInternalCellStyle() { ! HSSFCellStyle style = workbook.createCellStyle(); style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); ! HSSFFont font = workbook.createFont(); font.setFontName("Arial"); font.setFontHeightInPoints((short) 12); *************** *** 99,104 **** } ! protected HSSFCellStyle createSummaryCellStyle(HSSFWorkbook wb) { ! HSSFCellStyle style = wb.createCellStyle(); style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM); --- 91,96 ---- } ! protected HSSFCellStyle createSummaryCellStyle() { ! HSSFCellStyle style = workbook.createCellStyle(); style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM); *************** *** 109,113 **** style.setFillBackgroundColor(HSSFColor.AQUA.index); ! HSSFFont font = wb.createFont(); font.setFontName("Courier New"); font.setFontHeightInPoints((short) 15); --- 101,105 ---- style.setFillBackgroundColor(HSSFColor.AQUA.index); ! HSSFFont font = workbook.createFont(); font.setFontName("Courier New"); font.setFontHeightInPoints((short) 15); *************** *** 126,128 **** --- 118,136 ---- } + public HSSFCellStyle createLastCellStyle() { + HSSFCellStyle style = workbook.createCellStyle(); + + style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM); + style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM); + style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); + style.setAlignment(HSSFCellStyle.ALIGN_CENTER); + style.setFillBackgroundColor(HSSFColor.AQUA.index); + + HSSFFont font = workbook.createFont(); + font.setFontName("Arial"); + font.setFontHeightInPoints((short) 12); + style.setFont(font); + return style; + } + } \ No newline at end of file --- ReportGenerator.java DELETED --- Index: SliceXlsGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/SliceXlsGenerator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SliceXlsGenerator.java 24 Sep 2007 18:40:21 -0000 1.3 --- SliceXlsGenerator.java 25 Sep 2007 00:04:22 -0000 1.4 *************** *** 3,21 **** import java.io.File; import java.io.IOException; - import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import net.sf.tail.AnalysisCriterion; - import net.sf.tail.Indicator; - import net.sf.tail.TimeSeries; import net.sf.tail.Trade; import net.sf.tail.analysis.criteria.NumberOfTicksCriterion; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; - import net.sf.tail.graphics.SeriesChart; - import net.sf.tail.graphics.SeriesDataset; - import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.report.Report; import org.apache.poi.hssf.usermodel.HSSFCell; --- 3,16 ---- import java.io.File; import java.io.IOException; import java.util.LinkedList; import java.util.List; import net.sf.tail.AnalysisCriterion; import net.sf.tail.Trade; import net.sf.tail.analysis.criteria.NumberOfTicksCriterion; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.report.Report; + import net.sf.tail.report.ReportImage; import org.apache.poi.hssf.usermodel.HSSFCell; *************** *** 25,33 **** import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; - import org.jfree.chart.ChartUtilities; - import org.jfree.chart.JFreeChart; import org.joda.time.Period; ! public class SliceXlsGenerator implements ReportGenerator { protected static final int INDEX_FIRST_COLUMN = 1; --- 20,26 ---- import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.joda.time.Period; ! public class SliceXlsGenerator implements XLSReportGenerator { protected static final int INDEX_FIRST_COLUMN = 1; *************** *** 42,51 **** private CellStylist stylist; ! public SliceXlsGenerator(HSSFWorkbook workbook) { this.workbook = workbook; this.stylist = new CellStylist(workbook); } ! public List<HSSFSheet> generate(Report report, Period period) throws IOException { List<AnalysisCriterion> criteria = new LinkedList<AnalysisCriterion>(); --- 35,44 ---- private CellStylist stylist; ! public SliceXlsGenerator(HSSFWorkbook workbook) { this.workbook = workbook; this.stylist = new CellStylist(workbook); } ! public List<HSSFSheet> generate(Report report, Period period) throws IOException { List<AnalysisCriterion> criteria = new LinkedList<AnalysisCriterion>(); *************** *** 60,78 **** throws IOException { int row = INDEX_FIRST_ROW; List<HSSFSheet> sheets = new LinkedList<HSSFSheet>(); HSSFSheet sheet = workbook.createSheet(decision.getFileName()); ! HSSFCellStyle style = stylist.createHeaderCellStyle(workbook); row = generateHeader(row, workbook, sheet, criteria, style); ! style = stylist.createInternalCellStyle(workbook); row = generateInternalRow(row, workbook, sheet, decision, criteria, style); ! style = stylist.createSummaryCellStyle(workbook); generateSummaryRow(row, workbook, sheet, decision, criteria, style); ! // File reportPNG = generatePNGFile(decision); ! // stylist.drawImage(reportPNG , sheet); stylist.rearrangeSheet(sheet, 10); --- 53,72 ---- throws IOException { int row = INDEX_FIRST_ROW; + ReportImage image = new ReportImage(); List<HSSFSheet> sheets = new LinkedList<HSSFSheet>(); HSSFSheet sheet = workbook.createSheet(decision.getFileName()); ! HSSFCellStyle style = stylist.createHeaderCellStyle(); row = generateHeader(row, workbook, sheet, criteria, style); ! style = stylist.createInternalCellStyle(); row = generateInternalRow(row, workbook, sheet, decision, criteria, style); ! style = stylist.createSummaryCellStyle(); generateSummaryRow(row, workbook, sheet, decision, criteria, style); ! File reportPNG = image.generateImage(decision); ! stylist.drawImage(reportPNG, sheet); stylist.rearrangeSheet(sheet, 10); *************** *** 115,126 **** HSSFRow rowDecision = sheet.createRow((short) firtRow++); createCell(rowDecision, index++, (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(trade.getEntry().getIndex()).getDateName(), (short) indexcolumn++, ! style); ! createCell(rowDecision, decision.getSeries().getTick(trade.getEntry().getIndex()) ! .getClosePrice(), (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(trade.getExit().getIndex()).getDateName(), (short) indexcolumn++, ! style); ! createCell(rowDecision, decision.getSeries().getTick(trade.getExit().getIndex()) ! .getClosePrice(), (short) indexcolumn++, style); for (AnalysisCriterion criterium : criteria) { calculate = criterium.calculate(decision.getSeries(), decision.getTrades().get(index - 2)); --- 109,120 ---- HSSFRow rowDecision = sheet.createRow((short) firtRow++); createCell(rowDecision, index++, (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(trade.getEntry().getIndex()).getDateName(), ! (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(trade.getEntry().getIndex()).getClosePrice(), ! (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(trade.getExit().getIndex()).getDateName(), ! (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(trade.getExit().getIndex()).getClosePrice(), ! (short) indexcolumn++, style); for (AnalysisCriterion criterium : criteria) { calculate = criterium.calculate(decision.getSeries(), decision.getTrades().get(index - 2)); *************** *** 159,164 **** cell.setCellStyle(cellStyle); } ! ! private static void createCell(HSSFRow row, double value, short column, HSSFCellStyle cellStyle) { HSSFCell cell = row.createCell(column); --- 153,157 ---- cell.setCellStyle(cellStyle); } ! private static void createCell(HSSFRow row, double value, short column, HSSFCellStyle cellStyle) { HSSFCell cell = row.createCell(column); *************** *** 167,186 **** } - private static File generatePNGFile(Decision decision) throws IOException { - TimeSeries timeSeries = decision.getSeries(); - List<Indicator<? extends Number>> indicators; - String imagePath = FM_REPORT_DIR + FM_CHART_DIR + decision.getFileName() + ".png"; - - Indicator<Double> close = new ClosePriceIndicator(timeSeries); - indicators = new ArrayList<Indicator<? extends Number>>(); - indicators.add(close); - - SeriesDataset seriesData = new SeriesDataset(timeSeries, indicators, decision.getTrades()); - SeriesChart seriesChart = new SeriesChart(seriesData); - JFreeChart jfreechart = seriesChart.createChart(""); - File reportPNG = new File(imagePath); - ChartUtilities.saveChartAsPNG(reportPNG, jfreechart, 800, 300); - return reportPNG; - } - } --- 160,162 ---- Index: CompleteXlsGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/CompleteXlsGenerator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** CompleteXlsGenerator.java 24 Sep 2007 16:52:23 -0000 1.6 --- CompleteXlsGenerator.java 25 Sep 2007 00:04:22 -0000 1.7 *************** *** 15,19 **** import org.joda.time.Period; ! public class CompleteXlsGenerator implements ReportGenerator { public List<HSSFSheet> generate(Report report, Period period) throws IOException { --- 15,19 ---- import org.joda.time.Period; ! public class CompleteXlsGenerator implements XLSReportGenerator { public List<HSSFSheet> generate(Report report, Period period) throws IOException { *************** *** 22,41 **** criteria.add(new TotalProfitCriterion()); return generate(report, criteria, period); } - /* - * (non-Javadoc) - * - * @see net.sf.tail.report.xls.ReportGenerator#generate() - */ public List<HSSFSheet> generate(Report report, List<AnalysisCriterion> criteria, Period period) throws IOException { List<HSSFSheet> sheets = new LinkedList<HSSFSheet>(); HSSFWorkbook workbook = new HSSFWorkbook(); ! ReportGenerator reportXls = new ReportXlsGenerator(workbook); ! ReportGenerator slicerXls = new SliceXlsGenerator(workbook); ! sheets.addAll(reportXls.generate(report, criteria, period)); sheets.addAll(slicerXls.generate(report, criteria, period)); FileOutputStream fileOut = new FileOutputStream("report.xls"); --- 22,40 ---- criteria.add(new TotalProfitCriterion()); return generate(report, criteria, period); + } public List<HSSFSheet> generate(Report report, List<AnalysisCriterion> criteria, Period period) throws IOException { List<HSSFSheet> sheets = new LinkedList<HSSFSheet>(); HSSFWorkbook workbook = new HSSFWorkbook(); ! XLSReportGenerator reportXls = new ReportXlsGenerator(workbook); ! XLSReportGenerator slicerXls = new SliceXlsGenerator(workbook); ! TimeSeriesXlsGenerator seriesXls = new TimeSeriesXlsGenerator(workbook); ! sheets.add(seriesXls.generate(report.getSlicer().getSeries())); ! sheets.addAll(reportXls.generate(report, criteria, period)); sheets.addAll(slicerXls.generate(report, criteria, period)); + FileOutputStream fileOut = new FileOutputStream("report.xls"); --- NEW FILE: TimeSeriesXlsGenerator.java --- package net.sf.tail.report.xls; import java.io.IOException; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class TimeSeriesXlsGenerator { protected static final int INDEX_FIRST_COLUMN = 1; protected static final int INDEX_FIRST_ROW = 1; private HSSFSheet sheet; private CellStylist stylist; public TimeSeriesXlsGenerator(HSSFWorkbook workbook) { this.sheet = workbook.createSheet("Time Series"); stylist = new CellStylist(workbook); } public HSSFSheet generate(TimeSeries series) throws IOException { int row = INDEX_FIRST_ROW; HSSFCellStyle style = stylist.createHeaderCellStyle(); row = generateHeader(row, style); style = stylist.createInternalCellStyle(); generateInternalRow(row, series, style); stylist.rearrangeSheet(sheet, 10); return this.sheet; } private int generateHeader(int firtRow, HSSFCellStyle style) { HSSFRow rowHeader = sheet.createRow((short) firtRow++); int columnIndex = INDEX_FIRST_COLUMN; createCell(rowHeader, "Data e Hora", (short) columnIndex++, style); createCell(rowHeader, "Abertura", (short) columnIndex++, style); createCell(rowHeader, "Fechamento", (short) columnIndex++, style); createCell(rowHeader, "Máximo", (short) columnIndex++, style); createCell(rowHeader, "Variação", (short) columnIndex++, style); createCell(rowHeader, "Anterior", (short) columnIndex++, style); createCell(rowHeader, "Montante", (short) columnIndex++, style); createCell(rowHeader, "Vol($)", (short) columnIndex++, style); createCell(rowHeader, "Quantidade", (short) columnIndex++, style); return firtRow; } private void generateInternalRow(int firtRow, TimeSeries series, HSSFCellStyle style) { int i; for (i = 0; i < series.getSize() - 1; i++) { Tick tick = series.getTick(i); int indexcolumn = INDEX_FIRST_COLUMN; HSSFRow row = sheet.createRow((short) firtRow++); createCell(row, tick.getDate().toString("hh:mm dd/MM/yyyy"), (short) indexcolumn++, style); createCell(row, tick.getOpenPrice(), (short) indexcolumn++, style); createCell(row, tick.getClosePrice(), (short) indexcolumn++, style); createCell(row, tick.getMaxPrice(), (short) indexcolumn++, style); createCell(row, tick.getVariation(), (short) indexcolumn++, style); createCell(row, tick.getPreviousPrice(), (short) indexcolumn++, style); createCell(row, tick.getAmount(), (short) indexcolumn++, style); createCell(row, tick.getVolume(), (short) indexcolumn++, style); createCell(row, tick.getTrades(), (short) indexcolumn++, style); } style = stylist.createLastCellStyle(); Tick tick = series.getTick(i); int indexcolumn = INDEX_FIRST_COLUMN; HSSFRow row = sheet.createRow((short) firtRow++); createCell(row, tick.getDate().toString("hh:mm dd/MM/yyyy"), (short) indexcolumn++, style); createCell(row, tick.getOpenPrice(), (short) indexcolumn++, style); createCell(row, tick.getClosePrice(), (short) indexcolumn++, style); createCell(row, tick.getMaxPrice(), (short) indexcolumn++, style); createCell(row, tick.getVariation(), (short) indexcolumn++, style); createCell(row, tick.getPreviousPrice(), (short) indexcolumn++, style); createCell(row, tick.getAmount(), (short) indexcolumn++, style); createCell(row, tick.getVolume(), (short) indexcolumn++, style); createCell(row, tick.getTrades(), (short) indexcolumn++, style); } private static void createCell(HSSFRow row, String value, short column, HSSFCellStyle cellStyle) { HSSFCell cell = row.createCell(column); HSSFRichTextString hssfString = new HSSFRichTextString(value); cellStyle.setDataFormat((short) 0); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(hssfString); cell.setCellStyle(cellStyle); } private static void createCell(HSSFRow row, double value, short column, HSSFCellStyle cellStyle) { HSSFCell cell = row.createCell(column); cell.setCellValue(value); cell.setCellStyle(cellStyle); } } Index: ReportXlsGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/ReportXlsGenerator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ReportXlsGenerator.java 24 Sep 2007 18:40:21 -0000 1.3 --- ReportXlsGenerator.java 25 Sep 2007 00:04:22 -0000 1.4 *************** *** 3,45 **** import java.io.File; import java.io.IOException; - import java.util.Date; import java.util.LinkedList; import java.util.List; import net.sf.tail.AnalysisCriterion; - import net.sf.tail.Indicator; - import net.sf.tail.TimeSeries; import net.sf.tail.analysis.criteria.NumberOfTicksCriterion; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; - import net.sf.tail.flow.CashFlow; - import net.sf.tail.graphics.StockAndCashFlowChart; - import net.sf.tail.graphics.StockAndCashFlowDataset; - import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.report.Report; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; - import org.apache.poi.hssf.usermodel.HSSFDataFormat; - import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; - import org.apache.poi.hssf.util.HSSFColor; - import org.jfree.chart.ChartUtilities; - import org.jfree.chart.JFreeChart; - import org.joda.time.DateTime; import org.joda.time.Period; ! public class ReportXlsGenerator implements ReportGenerator { ! ! protected static final int INDEX_FIRST_COLUMN = 1; ! ! protected static final int INDEX_FIRST_ROW = 18; ! protected static final String FM_REPORT_DIR = "reports/"; ! protected static final String FM_CHART_DIR = "PNGCharts/"; private HSSFWorkbook workbook; --- 3,29 ---- import java.io.File; import java.io.IOException; import java.util.LinkedList; import java.util.List; import net.sf.tail.AnalysisCriterion; import net.sf.tail.analysis.criteria.NumberOfTicksCriterion; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.report.Report; + import net.sf.tail.report.ReportImage; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.joda.time.Period; ! public class ReportXlsGenerator implements XLSReportGenerator { ! private static final int INDEX_FIRST_COLUMN = 1; ! private static final int INDEX_FIRST_ROW = 18; private HSSFWorkbook workbook; *************** *** 60,86 **** return generate(report, criteria, period); } ! public List<HSSFSheet> generate(Report report, List<AnalysisCriterion> criteria, Period period) throws IOException { int row = INDEX_FIRST_ROW; List<HSSFSheet> sheets = new LinkedList<HSSFSheet>(); HSSFSheet sheet = workbook.createSheet("Complete Report"); ! HSSFCellStyle style = stylist.createHeaderCellStyle(workbook); ! row = generateHeader(row, workbook, sheet, report, criteria, style); ! style = stylist.createFirstCellStyle(workbook); ! row = generateFirstRow(row, workbook, sheet, report, criteria, style); ! style = stylist.createInternalCellStyle(workbook); ! row = generateInternalRow(row, workbook, sheet, report, criteria, style); ! style = stylist.createSummaryCellStyle(workbook); ! generateSummaryRow(row, workbook, sheet, report, criteria, style); ! // File reportPNG = generatePNGFile(report, period); ! // stylist.drawImage(reportPNG, sheet); ! stylist.rearrangeSheet(sheet, 5); sheets.add(sheet); --- 44,71 ---- return generate(report, criteria, period); } ! public List<HSSFSheet> generate(Report report, List<AnalysisCriterion> criteria, Period period) throws IOException { int row = INDEX_FIRST_ROW; + ReportImage image = new ReportImage(); List<HSSFSheet> sheets = new LinkedList<HSSFSheet>(); HSSFSheet sheet = workbook.createSheet("Complete Report"); ! HSSFCellStyle style = stylist.createHeaderCellStyle(); ! row = generateHeader(row, sheet, report, criteria, style); ! style = stylist.createFirstCellStyle(); ! row = generateFirstRow(row, sheet, report, criteria, style); ! style = stylist.createInternalCellStyle(); ! row = generateInternalRow(row, sheet, report, criteria, style); ! style = stylist.createSummaryCellStyle(); ! generateSummaryRow(row, sheet, report, criteria, style); ! File reportPNG = image.generateImage(report, period); ! stylist.drawImage(reportPNG, sheet); ! stylist.rearrangeSheet(sheet, 10); sheets.add(sheet); *************** *** 88,93 **** } ! private int generateHeader(int firtRow, HSSFWorkbook workbook, HSSFSheet sheet, Report report, ! List<AnalysisCriterion> criteria, HSSFCellStyle style) { HSSFRow rowHeader = sheet.createRow((short) firtRow++); int columnIndex = INDEX_FIRST_COLUMN; --- 73,78 ---- } ! private int generateHeader(int firtRow, HSSFSheet sheet, Report report, List<AnalysisCriterion> criteria, ! HSSFCellStyle style) { HSSFRow rowHeader = sheet.createRow((short) firtRow++); int columnIndex = INDEX_FIRST_COLUMN; *************** *** 98,103 **** createCell(rowHeader, "Strategy", (short) columnIndex++, style); createCell(rowHeader, "Time Frame", (short) columnIndex++, style); ! createCell(rowHeader, report.getApplyedCriterion().getClass().getSimpleName().split("Criterion")[0], (short) columnIndex++, ! style); for (AnalysisCriterion criterium : criteria) { createCell(rowHeader, criterium.getClass().getSimpleName(), (short) columnIndex++, style); --- 83,88 ---- createCell(rowHeader, "Strategy", (short) columnIndex++, style); createCell(rowHeader, "Time Frame", (short) columnIndex++, style); ! createCell(rowHeader, report.getApplyedCriterion().getClass().getSimpleName().split("Criterion")[0], ! (short) columnIndex++, style); for (AnalysisCriterion criterium : criteria) { createCell(rowHeader, criterium.getClass().getSimpleName(), (short) columnIndex++, style); *************** *** 106,111 **** } ! private int generateFirstRow(int firtRow, HSSFWorkbook wb, HSSFSheet sheet, Report report, ! List<AnalysisCriterion> criteria, HSSFCellStyle style) { int indexcolumn; HSSFRow rowFirst = sheet.createRow((short) firtRow++); --- 91,96 ---- } ! private int generateFirstRow(int firtRow, HSSFSheet sheet, Report report, List<AnalysisCriterion> criteria, ! HSSFCellStyle style) { int indexcolumn; HSSFRow rowFirst = sheet.createRow((short) firtRow++); *************** *** 127,132 **** } ! private int generateInternalRow(int firtRow, HSSFWorkbook wb, HSSFSheet sheet, Report report, ! List<AnalysisCriterion> criteria, HSSFCellStyle style) { double calculate; --- 112,117 ---- } ! private int generateInternalRow(int firtRow, HSSFSheet sheet, Report report, List<AnalysisCriterion> criteria, ! HSSFCellStyle style) { double calculate; *************** *** 134,145 **** String[] strategyTimeFrame; for (Decision decision : report.getDecisions()) { ! int indexcolumn = 1; HSSFRow rowDecision = sheet.createRow((short) firtRow++); strategyTimeFrame = decision.getStrategy().getName().split(":"); createCell(rowDecision, index++, (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(decision.getSeries().getBegin()).getDateName(), (short) indexcolumn++, ! style); ! createCell(rowDecision, decision.getSeries().getTick(decision.getSeries().getEnd()).getDateName(), (short) indexcolumn++, ! style); createCell(rowDecision, strategyTimeFrame[0], (short) indexcolumn++, style); createCell(rowDecision, Integer.parseInt(strategyTimeFrame[1].trim()), (short) indexcolumn++, style); --- 119,130 ---- String[] strategyTimeFrame; for (Decision decision : report.getDecisions()) { ! int indexcolumn = 1; HSSFRow rowDecision = sheet.createRow((short) firtRow++); strategyTimeFrame = decision.getStrategy().getName().split(":"); createCell(rowDecision, index++, (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(decision.getSeries().getBegin()).getDateName(), ! (short) indexcolumn++, style); ! createCell(rowDecision, decision.getSeries().getTick(decision.getSeries().getEnd()).getDateName(), ! (short) indexcolumn++, style); createCell(rowDecision, strategyTimeFrame[0], (short) indexcolumn++, style); createCell(rowDecision, Integer.parseInt(strategyTimeFrame[1].trim()), (short) indexcolumn++, style); *************** *** 150,160 **** createCell(rowDecision, calculate, (short) indexcolumn++, style); } ! } return firtRow; } ! private void generateSummaryRow(int firtRow, HSSFWorkbook wb, HSSFSheet sheet, Report report, ! List<AnalysisCriterion> criteria, HSSFCellStyle style) { int indexcolumn; double calculate; --- 135,145 ---- createCell(rowDecision, calculate, (short) indexcolumn++, style); } ! } return firtRow; } ! private void generateSummaryRow(int firtRow, HSSFSheet sheet, Report report, List<AnalysisCriterion> criteria, ! HSSFCellStyle style) { int indexcolumn; double calculate; *************** *** 185,190 **** cell.setCellStyle(cellStyle); } ! ! private static void createCell(HSSFRow row, double value, short column, HSSFCellStyle cellStyle) { HSSFCell cell = row.createCell(column); --- 170,174 ---- cell.setCellStyle(cellStyle); } ! private static void createCell(HSSFRow row, double value, short column, HSSFCellStyle cellStyle) { HSSFCell cell = row.createCell(column); *************** *** 192,207 **** cell.setCellStyle(cellStyle); } - - private static File generatePNGFile(Report report, Period period) throws IOException { - TimeSeries timeSeries = report.getSlicer().getSeries(); - Indicator<Double> close = new ClosePriceIndicator(timeSeries); - CashFlow cashflow = new CashFlow(timeSeries, report.getAllTrades()); - String imagePath = FM_REPORT_DIR + FM_CHART_DIR + report.getFileName() + ".png"; - StockAndCashFlowDataset stockData = new StockAndCashFlowDataset(timeSeries, close, cashflow, period); - StockAndCashFlowChart stockChart = new StockAndCashFlowChart(stockData, false); - JFreeChart jfreechart = stockChart.createChart(""); - File reportPNG = new File(imagePath); - ChartUtilities.saveChartAsPNG(reportPNG, jfreechart, 800, 300); - return reportPNG; - } } \ No newline at end of file --- 176,178 ---- |
|
From: xanaot <xa...@us...> - 2007-09-25 00:04:26
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv645/src/java/net/sf/tail/report Modified Files: ReportHTMLGenerator.java Added Files: ReportImage.java Log Message: Finalização das classes de geração de xls, refatoração e teste --- NEW FILE: ReportImage.java --- package net.sf.tail.report; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import net.sf.tail.Indicator; import net.sf.tail.TimeSeries; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.flow.CashFlow; import net.sf.tail.graphics.SeriesChart; import net.sf.tail.graphics.SeriesDataset; import net.sf.tail.graphics.StockAndCashFlowChart; import net.sf.tail.graphics.StockAndCashFlowDataset; import net.sf.tail.indicator.simple.ClosePriceIndicator; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.joda.time.Period; public class ReportImage { protected static final String FM_REPORT_DIR = "reports/"; protected static final String FM_CHART_DIR = "PNGCharts/"; public File generateImage(Decision decision) throws IOException { TimeSeries timeSeries = decision.getSeries(); List<Indicator<? extends Number>> indicators; String imagePath = FM_REPORT_DIR + FM_CHART_DIR + decision.getFileName() + ".png"; Indicator<Double> close = new ClosePriceIndicator(timeSeries); indicators = new ArrayList<Indicator<? extends Number>>(); indicators.add(close); SeriesDataset seriesData = new SeriesDataset(timeSeries, indicators, decision.getTrades()); SeriesChart seriesChart = new SeriesChart(seriesData); JFreeChart jfreechart = seriesChart.createChart(""); File reportPNG = new File(imagePath); ChartUtilities.saveChartAsPNG(reportPNG, jfreechart, 800, 300); return reportPNG; } public File generateImage(Report report, Period period) throws IOException { TimeSeries timeSeries = report.getSlicer().getSeries(); Indicator<Double> close = new ClosePriceIndicator(timeSeries); CashFlow cashflow = new CashFlow(timeSeries, report.getAllTrades()); String imagePath = FM_REPORT_DIR + FM_CHART_DIR + report.getFileName() + ".png"; StockAndCashFlowDataset stockData = new StockAndCashFlowDataset(timeSeries, close, cashflow, period); StockAndCashFlowChart stockChart = new StockAndCashFlowChart(stockData, false); JFreeChart jfreechart = stockChart.createChart(""); File reportPNG = new File(imagePath); ChartUtilities.saveChartAsPNG(reportPNG, jfreechart, 800, 300); return reportPNG; } } Index: ReportHTMLGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/ReportHTMLGenerator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ReportHTMLGenerator.java 24 Sep 2007 16:19:07 -0000 1.2 --- ReportHTMLGenerator.java 25 Sep 2007 00:04:22 -0000 1.3 *************** *** 21,30 **** static final String DEFAULT_TEMPLATE_DIR = "reports/templates/total"; ! public StringBuffer generate(Report report, String imageName, List<String> urls) throws IOException { ! return generate(report, Collections.<AnalysisCriterion> emptyList(), imageName, urls); } ! public StringBuffer generate(Decision decision, String imagePath) throws IOException { ! return generate(decision, Collections.<AnalysisCriterion> emptyList(), imagePath); } --- 21,30 ---- static final String DEFAULT_TEMPLATE_DIR = "reports/templates/total"; ! public StringBuffer generate(Report report, String imagePath, List<String> urls) throws IOException { ! return generate(report, Collections.<AnalysisCriterion> emptyList(), imagePath, urls); } ! public StringBuffer generate(Decision decision, String image) throws IOException { ! return generate(decision, Collections.<AnalysisCriterion> emptyList(), image); } |