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-10-15 20:23:23
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21382/src/test/net/sf/tail/indicator/tracker Modified Files: WilliamsRIndicatorTest.java Log Message: refatoração gigante! Stock virou TimeSeries Index: WilliamsRIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/tracker/WilliamsRIndicatorTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** WilliamsRIndicatorTest.java 20 Aug 2007 18:15:31 -0000 1.4 --- WilliamsRIndicatorTest.java 15 Oct 2007 20:23:24 -0000 1.5 *************** *** 6,9 **** --- 6,10 ---- import java.util.List; + import net.sf.tail.DummyStock; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; *************** *** 37,41 **** ticks.add(new Tick(45.58, 45.55, 45.61, 45.39)); ! data = new DefaultTimeSeries(ticks); } --- 38,42 ---- ticks.add(new Tick(45.58, 45.55, 45.61, 45.39)); ! data = new DummyStock(new DefaultTimeSeries(ticks)); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-10-15 20:23:23
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21382/src/java/net/sf/tail/analysis Modified Files: StockAnalysis.java Added Files: SerializableTimeSeries.java Removed Files: Stock.java Log Message: refatoração gigante! Stock virou TimeSeries Index: StockAnalysis.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/StockAnalysis.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** StockAnalysis.java 8 Oct 2007 19:38:14 -0000 1.10 --- StockAnalysis.java 15 Oct 2007 20:23:24 -0000 1.11 *************** *** 25,29 **** private List<AnalysisCriterion> additionalCriteria; ! private Stock stock; private StrategyEvaluator evaluator; --- 25,29 ---- private List<AnalysisCriterion> additionalCriteria; ! private SerializableTimeSeries stock; private StrategyEvaluator evaluator; *************** *** 33,37 **** private WalkForward walker; ! public StockAnalysis(Stock stock, AnalysisCriterion applyedCriterion, TimeSeriesSlicer slicer, StrategyEvaluator evaluator) { this.stock = stock; this.applyedCriterion = applyedCriterion; --- 33,37 ---- private WalkForward walker; ! public StockAnalysis(SerializableTimeSeries stock, AnalysisCriterion applyedCriterion, TimeSeriesSlicer slicer, StrategyEvaluator evaluator) { this.stock = stock; this.applyedCriterion = applyedCriterion; *************** *** 44,51 **** } ! public Report createReport(String reportName, Set<Strategy> strategies) { Report report = walker.walk(strategies, slicer, applyedCriterion); report.setName(reportName); ! reports.add(report); for (AnalysisCriterion criterion : additionalCriteria) { report.addSummarizedCriteria(criterion); --- 44,58 ---- } ! public Report addReport(String reportName, Set<Strategy> strategies) { ! Report report = createReport(reportName, strategies); ! ! reports.add(report); ! return report; ! } ! ! private Report createReport(String reportName, Set<Strategy> strategies) { Report report = walker.walk(strategies, slicer, applyedCriterion); report.setName(reportName); ! for (AnalysisCriterion criterion : additionalCriteria) { report.addSummarizedCriteria(criterion); *************** *** 75,79 **** } ! public Stock getStock() { return stock; } --- 82,86 ---- } ! public SerializableTimeSeries getStock() { return stock; } *************** *** 84,96 **** public List<Report> getReports() { - if (reports.size() > 0 && reports.get(0).getDecisions() == null) { - reloadReports(); - } return reports; } ! private void reloadReports() { ! // TODO criar regeneração de reports em um stockAnalysis serializado ! } --- 91,112 ---- public List<Report> getReports() { return reports; } ! public void reloadReports() { ! List<Report> newReports = new ArrayList<Report>(); ! for (int i = 0; i < reports.size(); i++) { ! System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); ! Report newReport = createReport(reports.get(i).getName(), reports.get(i).getStrategies()); ! newReports.add(newReport); ! } ! ! ! //for (Report report : reports) { ! // Report newReport = createReport(report.getName(), report.getStrategies()); ! // newReports.add(newReport); ! //} ! System.out.println("=-----------------------------------------------------------------"); ! reports = newReports; } --- Stock.java DELETED --- --- NEW FILE: SerializableTimeSeries.java --- package net.sf.tail.analysis; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import net.sf.tail.TimeSeriesLoader; import net.sf.tail.series.DefaultTimeSeries; public class SerializableTimeSeries implements TimeSeries { private String name; private String seriesAdress; private transient DefaultTimeSeries defaultTimeSeries; private TimeSeriesLoader loader; public SerializableTimeSeries(String name, String seriesAdress, TimeSeriesLoader loader) throws FileNotFoundException, IOException { this.name = name; this.seriesAdress = seriesAdress; this.loader = loader; this.defaultTimeSeries = loader.load(new FileInputStream(seriesAdress), name); } public String getName() { return name; } public String getSeriesAdress() { return seriesAdress; } public DefaultTimeSeries getSeries() { if(defaultTimeSeries == null) reloadSeries(); return defaultTimeSeries; } public DefaultTimeSeries reloadSeries() { try { this.defaultTimeSeries = loader.load(new FileInputStream(seriesAdress), name); } catch (FileNotFoundException e) { e.printStackTrace(); throw new RuntimeException(e); } return defaultTimeSeries; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((seriesAdress == null) ? 0 : seriesAdress.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final SerializableTimeSeries other = (SerializableTimeSeries) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (seriesAdress == null) { if (other.seriesAdress != null) return false; } else if (!seriesAdress.equals(other.seriesAdress)) return false; return true; } public int getBegin() { return getSeries().getBegin(); } public int getEnd() { return getSeries().getEnd(); } public String getPeriod() { return getSeries().getPeriod(); } public int getSize() { return getSeries().getSize(); } public Tick getTick(int i) { return getSeries().getTick(i); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-10-15 20:23:23
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21382/src/java/net/sf/tail Modified Files: TimeSeriesLoader.java TimeSeries.java Log Message: refatoração gigante! Stock virou TimeSeries Index: TimeSeriesLoader.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/TimeSeriesLoader.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TimeSeriesLoader.java 25 Aug 2007 12:30:01 -0000 1.3 --- TimeSeriesLoader.java 15 Oct 2007 20:23:25 -0000 1.4 *************** *** 1,8 **** package net.sf.tail; - import java.io.IOException; import java.io.InputStream; public interface TimeSeriesLoader { ! TimeSeries load(InputStream stream, String seriesName) throws IOException; } --- 1,9 ---- package net.sf.tail; import java.io.InputStream; + import net.sf.tail.series.DefaultTimeSeries; + public interface TimeSeriesLoader { ! DefaultTimeSeries load(InputStream stream, String seriesName); } Index: TimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/TimeSeries.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** TimeSeries.java 25 Aug 2007 12:30:01 -0000 1.9 --- TimeSeries.java 15 Oct 2007 20:23:25 -0000 1.10 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail; + /** * Time Series é um conjunto de {@link Tick} ordenados por um determinado *************** *** 20,23 **** String getName(); ! String getPeriod(); } --- 21,24 ---- String getName(); ! String getPeriod(); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-10-15 20:23:23
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21382/src/java/net/sf/tail/analysis/walk Modified Files: WalkForward.java Log Message: refatoração gigante! Stock virou TimeSeries Index: WalkForward.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk/WalkForward.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** WalkForward.java 8 Oct 2007 19:38:15 -0000 1.21 --- WalkForward.java 15 Oct 2007 20:23:24 -0000 1.22 *************** *** 53,57 **** } ! return new Report(criterion, slicer, decisions); } --- 53,57 ---- } ! return new Report(strategies, criterion, slicer, decisions); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-10-15 20:23:23
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/io/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21382/src/java/net/sf/tail/io/reader Modified Files: CedroTimeSeriesLoader.java Log Message: refatoração gigante! Stock virou TimeSeries Index: CedroTimeSeriesLoader.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/io/reader/CedroTimeSeriesLoader.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CedroTimeSeriesLoader.java 25 Sep 2007 00:02:28 -0000 1.3 --- CedroTimeSeriesLoader.java 15 Oct 2007 20:23:23 -0000 1.4 *************** *** 23,66 **** transient private static final Logger LOG = Logger.getLogger(CedroTimeSeriesLoader.class); ! public DefaultTimeSeries load(InputStream stream, String seriesName) throws IOException { ! LOG.info("Reading " + stream); ! CsvReader reader = new CsvReader(stream, Charset.defaultCharset()); ! reader.readHeaders(); ! List<Tick> ticks = new ArrayList<Tick>(); ! while (reader.readRecord()) { ! SimpleDateFormat simpleDate; ! if (reader.get(0).length() > 10) ! simpleDate = new SimpleDateFormat("dd/M/yyyy HH:mm:ss"); ! else ! simpleDate = new SimpleDateFormat("dd/M/yyyy"); ! Date dateUtil; ! try { ! dateUtil = simpleDate.parse(reader.get(0)); ! } catch (ParseException e) { ! throw new RuntimeException(e); ! } ! DateTime date = new DateTime(dateUtil.getTime()); ! double open = java.lang.Double.parseDouble(reader.get(1)); ! double close = java.lang.Double.parseDouble(reader.get(2)); ! double high = java.lang.Double.parseDouble(reader.get(3)); ! double low = java.lang.Double.parseDouble(reader.get(4)); ! double change = java.lang.Double.parseDouble(reader.get(5)); ! double previous = java.lang.Double.parseDouble(reader.get(6)); ! double volumeAmount = java.lang.Double.parseDouble(reader.get(7)); ! double volumeFinancier = java.lang.Double.parseDouble(reader.get(8)); ! double quantity = java.lang.Double.parseDouble(reader.get(9)); ! Tick tick = new Tick(date, open, close, high, low, change, previous, volumeAmount, volumeFinancier, ! (int) quantity); ! ticks.add(0, tick); ! } ! LOG.info("Reading done for " + stream); return new DefaultTimeSeries(seriesName, ticks); --- 23,73 ---- transient private static final Logger LOG = Logger.getLogger(CedroTimeSeriesLoader.class); ! public DefaultTimeSeries load(InputStream stream, String seriesName) { ! List<Tick> ticks= new ArrayList<Tick>(); ! try { ! LOG.info("Reading " + stream); ! CsvReader reader = new CsvReader(stream, Charset.defaultCharset()); ! ! reader.readHeaders(); ! while (reader.readRecord()) { ! SimpleDateFormat simpleDate; ! if (reader.get(0).length() > 10) ! simpleDate = new SimpleDateFormat("dd/M/yyyy HH:mm:ss"); ! else ! simpleDate = new SimpleDateFormat("dd/M/yyyy"); ! Date dateUtil = simpleDate.parse(reader.get(0)); ! DateTime date = new DateTime(dateUtil.getTime()); ! double open = java.lang.Double.parseDouble(reader.get(1)); ! double close = java.lang.Double.parseDouble(reader.get(2)); ! double high = java.lang.Double.parseDouble(reader.get(3)); ! double low = java.lang.Double.parseDouble(reader.get(4)); ! double change = java.lang.Double.parseDouble(reader.get(5)); ! double previous = java.lang.Double.parseDouble(reader.get(6)); ! double volumeAmount = java.lang.Double.parseDouble(reader.get(7)); ! double volumeFinancier = java.lang.Double.parseDouble(reader.get(8)); ! double quantity = java.lang.Double.parseDouble(reader.get(9)); ! Tick tick = new Tick(date, open, close, high, low, change, previous, volumeAmount, volumeFinancier, ! (int) quantity); ! ticks.add(0, tick); ! } ! LOG.info("Reading done for " + stream); ! } catch (NumberFormatException e) { ! e.printStackTrace(); ! throw new RuntimeException(e); ! } catch (IOException e) { ! e.printStackTrace(); ! throw new RuntimeException(e); ! } catch (ParseException e) { ! e.printStackTrace(); ! throw new RuntimeException(e); ! } return new DefaultTimeSeries(seriesName, ticks); |
|
From: Carlos <ma...@us...> - 2007-10-15 20:15:12
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17909/src/java/net/sf/tails/swing/frame Modified Files: Index.java Log Message: Update de tela. Index: Index.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame/Index.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Index.java 15 Oct 2007 20:09:36 -0000 1.20 --- Index.java 15 Oct 2007 20:15:12 -0000 1.21 *************** *** 175,179 **** reportTable.setAutoCreateRowSorter(false); ! reportTable.setModel(new DefaultTableModel(new Object[]{"-"}, 6)); reportTable.setGridColor(new java.awt.Color(255, 255, 255)); reportTable.setEnabled(true); --- 175,179 ---- reportTable.setAutoCreateRowSorter(false); ! reportTable.setModel(new DefaultTableModel(new Object[]{" "}, 6)); reportTable.setGridColor(new java.awt.Color(255, 255, 255)); reportTable.setEnabled(true); |
|
From: Carlos <ma...@us...> - 2007-10-15 20:15:12
|
Update of /cvsroot/tail/TailS/src/test/net/sf/tails/i18n In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17909/src/test/net/sf/tails/i18n Modified Files: InternationalizationTest.java Log Message: Update de tela. Index: InternationalizationTest.java =================================================================== RCS file: /cvsroot/tail/TailS/src/test/net/sf/tails/i18n/InternationalizationTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InternationalizationTest.java 24 Sep 2007 22:21:32 -0000 1.1 --- InternationalizationTest.java 15 Oct 2007 20:15:12 -0000 1.2 *************** *** 19,23 **** @Test public void internationalizationTest() { ! assertEquals("Enter here the description", bundle.getString("SMAIndicator")); } } --- 19,23 ---- @Test public void internationalizationTest() { ! assertEquals("Generate default strategy for SMA indicator using Indicator Crossed Indicator Strategy.", bundle.getString("SMAIndicator")); } } |
|
From: Carlos <ma...@us...> - 2007-10-15 20:15:11
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/helper In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17909/src/java/net/sf/tails/swing/helper Added Files: TailSTabelModel.java Removed Files: MyTabelModel.java Log Message: Update de tela. --- NEW FILE: TailSTabelModel.java --- package net.sf.tails.swing.helper; import javax.swing.table.AbstractTableModel; class MyTableModel extends AbstractTableModel { private static final long serialVersionUID = 3617540321014880366L; private Object[][] data; private String[] columnNames; public MyTableModel(Object [][] data, String[] columnNames) { this.data = data; this.columnNames = columnNames; } public int getColumnCount() { return columnNames.length; } public int getRowCount() { return data.length; } public String getColumnName(int col) { return columnNames[col]; } public Object getValueAt(int row, int col) { return data[row][col]; } public Class<?> getColumnClass(int c) { return getValueAt(0, c).getClass(); } public boolean isCellEditable(int row, int col) { return false; } public void setValueAt(Object value, int row, int col) { data[row][col] = value; } @SuppressWarnings("unused") private void printDebugData() { int numRows = getRowCount(); int numCols = getColumnCount(); for (int i=0; i < numRows; i++) { System.out.print(" row " + i + ":"); for (int j=0; j < numCols; j++) { System.out.print(" " + data[i][j]); } } } } --- MyTabelModel.java DELETED --- |
|
From: Carlos <ma...@us...> - 2007-10-15 20:10:24
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/helper In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv15311/src/java/net/sf/tails/swing/helper Modified Files: CompleteReportGenerator.java FrameHelper.java Added Files: MyTabelModel.java Log Message: Atualização de tela... Criado console e progressbar e ajustes de detalhes na table do stock analysis. --- NEW FILE: MyTabelModel.java --- package net.sf.tails.swing.helper; import javax.swing.table.AbstractTableModel; class MyTableModel extends AbstractTableModel { private static final long serialVersionUID = 3617540321014880366L; private Object[][] data; private String[] columnNames; public MyTableModel(Object [][] data, String[] columnNames) { this.data = data; this.columnNames = columnNames; } public int getColumnCount() { return columnNames.length; } public int getRowCount() { return data.length; } public String getColumnName(int col) { return columnNames[col]; } public Object getValueAt(int row, int col) { return data[row][col]; } public Class<?> getColumnClass(int c) { return getValueAt(0, c).getClass(); } public boolean isCellEditable(int row, int col) { return false; } public void setValueAt(Object value, int row, int col) { data[row][col] = value; } @SuppressWarnings("unused") private void printDebugData() { int numRows = getRowCount(); int numCols = getColumnCount(); for (int i=0; i < numRows; i++) { System.out.print(" row " + i + ":"); for (int j=0; j < numCols; j++) { System.out.print(" " + data[i][j]); } } } } Index: FrameHelper.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/helper/FrameHelper.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** FrameHelper.java 15 Oct 2007 16:14:24 -0000 1.17 --- FrameHelper.java 15 Oct 2007 20:09:35 -0000 1.18 *************** *** 17,21 **** import java.util.ResourceBundle; - import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; --- 17,20 ---- *************** *** 148,152 **** public TableModel getTableModel(StockAnalysis stockAnalysis) { ! return new DefaultTableModel(getReportMatrix(stockAnalysis), getColumnNames(stockAnalysis)); } --- 147,152 ---- public TableModel getTableModel(StockAnalysis stockAnalysis) { ! TableModel table = new MyTableModel(getReportMatrix(stockAnalysis), getColumnNames(stockAnalysis)); ! return table; } Index: CompleteReportGenerator.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/helper/CompleteReportGenerator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CompleteReportGenerator.java 11 Oct 2007 00:17:50 -0000 1.2 --- CompleteReportGenerator.java 15 Oct 2007 20:09:35 -0000 1.3 *************** *** 29,32 **** --- 29,33 ---- import net.sf.tail.report.html.ReportHTMLGenerator; import net.sf.tail.report.xls.WorkbookGenerator; + import net.sf.tails.swing.frame.Index; import org.apache.log4j.Logger; *************** *** 39,44 **** private static final ResourceBundle folderBundle = ResourceBundle.getBundle("net.sf.tails.i18n.Folders"); private transient static Logger LOG = Logger.getLogger(CompleteReportGenerator.class); ! public void generateXLSFile(final Report report, final List<AnalysisCriterion> criteria, final Period period, final String filePath, final String fileName){ final WorkbookGenerator xlsGenerator = new WorkbookGenerator(); --- 40,51 ---- private static final ResourceBundle folderBundle = ResourceBundle.getBundle("net.sf.tails.i18n.Folders"); private transient static Logger LOG = Logger.getLogger(CompleteReportGenerator.class); + private Index index; ! public CompleteReportGenerator(Index index) ! { ! this.index = index; ! } ! ! public void generateXLSFile(final Report report, final List<AnalysisCriterion> criteria, final Period period, final String filePath, final String fileName){ final WorkbookGenerator xlsGenerator = new WorkbookGenerator(); *************** *** 49,56 **** public void run() { try { for (Decision decision : report.getDecisions()) { charts.add(generateImage(decision, filePath)); } ! charts.add(0, generateImage(report, period, filePath)); HSSFWorkbook workbook = xlsGenerator.generate(report, criteria, period, charts); --- 56,67 ---- public void run() { try { + index.updateReportProgress(0); + int percent = 44 / report.getDecisions().size(); for (Decision decision : report.getDecisions()) { charts.add(generateImage(decision, filePath)); + index.updateReportProgress(charts.size() * percent); } ! charts.add(0, generateImage(report, period, filePath)); ! index.updateReportProgress(84); HSSFWorkbook workbook = xlsGenerator.generate(report, criteria, period, charts); *************** *** 58,61 **** --- 69,73 ---- workbook.write(fileOut); fileOut.close(); + index.updateReportProgress(100); } catch (Exception e) { *************** *** 70,74 **** final ReportHTMLGenerator generator = new ReportHTMLGenerator(); final String reportDir = filePath + File.separatorChar + fileName; - System.out.println(fileName+"----------"); final String styleDir = reportDir + File.separatorChar + "style"; final String chartDir = reportDir + File.separatorChar + "Charts"; --- 82,85 ---- *************** *** 78,81 **** --- 89,94 ---- public void run() { + index.updateReportProgress(0); + int percent = 43 / report.getDecisions().size(); new File(reportDir).mkdir(); new File(styleDir).mkdir(); *************** *** 91,102 **** --- 104,119 ---- StringBuffer decisionHtml = generator.generate(decision, criteria, chartFile.getAbsolutePath()); + index.updateReportProgress((urls.size() + 1) * percent); File decisionFile = createHTML(decision.getFileName() + ".html", decisionHtml, decisionDir); urls.add(decisionFile.getAbsolutePath()); + index.updateReportProgress(urls.size() * percent + 1); } File reportChartFile = generateImage(report, period, chartDir); + index.updateReportProgress(98); StringBuffer reportHtml = generator.generate(report, criteria, reportChartFile.getAbsolutePath(), urls); createHTML(report.getName() + ".html", reportHtml, reportDir); + index.updateReportProgress(100); } catch (IOException e) { e.printStackTrace(); *************** *** 134,137 **** --- 151,155 ---- public File generateImage(Decision decision, String chartDir) throws IOException { LOG.info("Initializing image generator for " + decision.getFileName()); + index.appendConsoleArea("Initializing image generator for " + decision.getFileName() + "."); TimeSeries timeSeries = decision.getSeries(); List<Indicator<? extends Number>> indicators; *************** *** 148,151 **** --- 166,170 ---- ChartUtilities.saveChartAsPNG(reportPNG, jfreechart, 800, 300); LOG.info("Ending image generator"); + index.appendConsoleArea("Ending image generator."); return reportPNG; } *************** *** 153,156 **** --- 172,176 ---- public File generateImage(Report report, Period period, String chartDir) throws IOException { LOG.info("Initializing image generator for " + report.getFileName()); + index.appendConsoleArea("Initializing image generator for " + report.getFileName() + "."); TimeSeries timeSeries = report.getSlicer().getSeries(); Indicator<Double> close = new ClosePriceIndicator(timeSeries); *************** *** 163,166 **** --- 183,187 ---- ChartUtilities.saveChartAsPNG(reportPNG, jfreechart, 800, 300); LOG.info("Ending image generator"); + index.appendConsoleArea("Ending image generator."); return reportPNG; |
Update of /cvsroot/tail/TailS/src/test/net/sf/tails/swing/helper In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv15311/src/test/net/sf/tails/swing/helper Modified Files: CompleteXLSGeneratorTest.java ReportImageTest.java CompleteHtmlGeneratorTest.java CompleteHtmlGeneratorExecutor.java CompleteXlsGeneratorExecutor.java Log Message: Atualização de tela... Criado console e progressbar e ajustes de detalhes na table do stock analysis. Index: ReportImageTest.java =================================================================== RCS file: /cvsroot/tail/TailS/src/test/net/sf/tails/swing/helper/ReportImageTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ReportImageTest.java 10 Oct 2007 19:04:47 -0000 1.1 --- ReportImageTest.java 15 Oct 2007 20:09:35 -0000 1.2 *************** *** 19,22 **** --- 19,23 ---- import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.FakeStrategy; + import net.sf.tails.swing.frame.Index; import org.joda.time.Period; *************** *** 51,55 **** report = new Report(new TotalProfitCriterion(), slicer, decisions); ! image = new CompleteReportGenerator(); } --- 52,56 ---- report = new Report(new TotalProfitCriterion(), slicer, decisions); ! image = new CompleteReportGenerator(new Index()); } Index: CompleteXlsGeneratorExecutor.java =================================================================== RCS file: /cvsroot/tail/TailS/src/test/net/sf/tails/swing/helper/CompleteXlsGeneratorExecutor.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CompleteXlsGeneratorExecutor.java 10 Oct 2007 19:04:47 -0000 1.1 --- CompleteXlsGeneratorExecutor.java 15 Oct 2007 20:09:35 -0000 1.2 *************** *** 32,35 **** --- 32,36 ---- import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy; + import net.sf.tails.swing.frame.Index; import org.joda.time.Period; *************** *** 63,67 **** Report r = w.walk(strategies,slicer , new TotalProfitCriterion()); ! CompleteReportGenerator report = new CompleteReportGenerator(); List<AnalysisCriterion> criteria = new ArrayList<AnalysisCriterion>(); --- 64,68 ---- Report r = w.walk(strategies,slicer , new TotalProfitCriterion()); ! CompleteReportGenerator report = new CompleteReportGenerator(new Index()); List<AnalysisCriterion> criteria = new ArrayList<AnalysisCriterion>(); Index: CompleteHtmlGeneratorExecutor.java =================================================================== RCS file: /cvsroot/tail/TailS/src/test/net/sf/tails/swing/helper/CompleteHtmlGeneratorExecutor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CompleteHtmlGeneratorExecutor.java 10 Oct 2007 22:00:50 -0000 1.2 --- CompleteHtmlGeneratorExecutor.java 15 Oct 2007 20:09:35 -0000 1.3 *************** *** 31,34 **** --- 31,35 ---- import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy; + import net.sf.tails.swing.frame.Index; import org.joda.time.DateTime; *************** *** 73,77 **** criteria.add(new VersusBuyAndHoldCriterion(new TotalProfitCriterion())); ! CompleteReportGenerator complete = new CompleteReportGenerator(); r.setName("teste"); complete.generateHTMLFile(r, criteria, new Period().withMonths(1), "./", "test"); --- 74,78 ---- criteria.add(new VersusBuyAndHoldCriterion(new TotalProfitCriterion())); ! CompleteReportGenerator complete = new CompleteReportGenerator(new Index()); r.setName("teste"); complete.generateHTMLFile(r, criteria, new Period().withMonths(1), "./", "test"); Index: CompleteXLSGeneratorTest.java =================================================================== RCS file: /cvsroot/tail/TailS/src/test/net/sf/tails/swing/helper/CompleteXLSGeneratorTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CompleteXLSGeneratorTest.java 10 Oct 2007 19:04:47 -0000 1.1 --- CompleteXLSGeneratorTest.java 15 Oct 2007 20:09:35 -0000 1.2 *************** *** 22,25 **** --- 22,26 ---- import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.FakeStrategy; + import net.sf.tails.swing.frame.Index; import org.joda.time.Period; *************** *** 54,58 **** report = new Report(new TotalProfitCriterion(), slicer, decisions); ! xls = new CompleteReportGenerator(); List<AnalysisCriterion> criteria = new ArrayList<AnalysisCriterion>(); --- 55,59 ---- report = new Report(new TotalProfitCriterion(), slicer, decisions); ! xls = new CompleteReportGenerator(new Index()); List<AnalysisCriterion> criteria = new ArrayList<AnalysisCriterion>(); Index: CompleteHtmlGeneratorTest.java =================================================================== RCS file: /cvsroot/tail/TailS/src/test/net/sf/tails/swing/helper/CompleteHtmlGeneratorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CompleteHtmlGeneratorTest.java 10 Oct 2007 22:00:50 -0000 1.2 --- CompleteHtmlGeneratorTest.java 15 Oct 2007 20:09:35 -0000 1.3 *************** *** 20,23 **** --- 20,24 ---- import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.FakeStrategy; + import net.sf.tails.swing.frame.Index; import org.joda.time.Period; *************** *** 56,60 **** report = new Report(new TotalProfitCriterion(), slicer, decisions); ! html = new CompleteReportGenerator(); List<AnalysisCriterion> criteria = new ArrayList<AnalysisCriterion>(); criteria.add(new TotalProfitCriterion()); --- 57,61 ---- report = new Report(new TotalProfitCriterion(), slicer, decisions); ! html = new CompleteReportGenerator(new Index()); List<AnalysisCriterion> criteria = new ArrayList<AnalysisCriterion>(); criteria.add(new TotalProfitCriterion()); |
|
From: Carlos <ma...@us...> - 2007-10-15 20:10:23
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv15311/src/java/net/sf/tails/swing/frame Modified Files: Index.java Log Message: Atualização de tela... Criado console e progressbar e ajustes de detalhes na table do stock analysis. Index: Index.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame/Index.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Index.java 11 Oct 2007 00:17:50 -0000 1.19 --- Index.java 15 Oct 2007 20:09:36 -0000 1.20 *************** *** 24,27 **** --- 24,30 ---- import javax.swing.JFrame; import javax.swing.JOptionPane; + import javax.swing.JProgressBar; + import javax.swing.ScrollPaneConstants; + import javax.swing.table.DefaultTableModel; import net.sf.tail.analysis.StockAnalysis; *************** *** 60,64 **** --- 63,71 ---- private javax.swing.JFileChooser xlsFileChooser; private javax.swing.JFileChooser htmlFileChooser; + private javax.swing.JScrollPane consoleScrollPane; + private javax.swing.JTextArea consoleArea; private FrameHelper helper; + + private JProgressBar reportProgress; /** Creates new form OpenStockAnalysis *************** *** 101,104 **** --- 108,114 ---- separator2 = new javax.swing.JSeparator(); exitMenuItem = new javax.swing.JMenuItem(); + consoleScrollPane = new javax.swing.JScrollPane(); + consoleArea = new javax.swing.JTextArea(); + reportProgress = new javax.swing.JProgressBar(); addReportButton = new javax.swing.JButton(); *************** *** 113,116 **** --- 123,137 ---- htmlFileChooser = new javax.swing.JFileChooser(); + consoleArea.setVisible(true); + consoleArea.setEditable(false); + consoleArea.setAutoscrolls(true); + consoleArea.setLineWrap(true); + + reportProgress.setMaximum(100); + reportProgress.setMinimum(0); + reportProgress.setToolTipText("Loading"); + reportProgress.setVisible(false); + reportProgress.setStringPainted(true); + directoryFileChooser.setFileSelectionMode(javax.swing.JFileChooser.FILES_ONLY); directoryFileChooser.setCurrentDirectory(new File("Data/StockAnalysis")); *************** *** 128,133 **** reportScrollPane.setAutoscrolls(true); reportScrollPane.setHorizontalScrollBar(null); ! if (stockAnalysis != null) { stockNameLabel.setText(stockNameLabel.getText() + stockAnalysis.getStock().getName()); --- 149,162 ---- reportScrollPane.setAutoscrolls(true); reportScrollPane.setHorizontalScrollBar(null); + reportScrollPane.setWheelScrollingEnabled(true); + + consoleScrollPane.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + consoleScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + consoleScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + consoleScrollPane.setViewportBorder(javax.swing.BorderFactory.createEtchedBorder()); + consoleScrollPane.setViewportView(consoleArea); + consoleScrollPane.setWheelScrollingEnabled(true); ! if (stockAnalysis != null) { stockNameLabel.setText(stockNameLabel.getText() + stockAnalysis.getStock().getName()); *************** *** 138,148 **** reportTable.setModel(helper.getTableModel(stockAnalysis)); reportTable.setGridColor(new java.awt.Color(255, 255, 255)); ! ! reportScrollPane.setViewportView(reportTable); } else { ! reportTable.setVisible(false); } addReportButton.setFont(new java.awt.Font("Dialog", 0, 12)); --- 167,189 ---- reportTable.setModel(helper.getTableModel(stockAnalysis)); reportTable.setGridColor(new java.awt.Color(255, 255, 255)); ! reportTable.setEnabled(true); } else { ! stockNameLabel.setText(stockNameLabel.getText() + "No Stock"); ! seriesIntervalLabel.setText(seriesIntervalLabel.getText() + " -"); ! reportTable.setAutoCreateRowSorter(false); ! ! reportTable.setModel(new DefaultTableModel(new Object[]{"-"}, 6)); ! reportTable.setGridColor(new java.awt.Color(255, 255, 255)); ! reportTable.setEnabled(true); } + + + reportScrollPane.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + reportScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + reportScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + reportScrollPane.setViewportView(reportTable); + reportScrollPane.setViewportBorder(javax.swing.BorderFactory.createEtchedBorder()); addReportButton.setFont(new java.awt.Font("Dialog", 0, 12)); *************** *** 254,257 **** --- 295,299 ---- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(reportScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 776, Short.MAX_VALUE) + .addComponent(consoleScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 776, Short.MAX_VALUE) .addComponent(stockNameLabel) .addGroup(layout.createSequentialGroup() *************** *** 260,264 **** .addComponent(htmlButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) ! .addComponent(xlsButton)) .addComponent(seriesIntervalLabel)) .addContainerGap()) --- 302,308 ---- .addComponent(htmlButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) ! .addComponent(xlsButton) ! .addGap(200) ! .addComponent(reportProgress)) .addComponent(seriesIntervalLabel)) .addContainerGap()) *************** *** 277,282 **** .addComponent(addReportButton, javax.swing.GroupLayout.PREFERRED_SIZE, 17, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) ! .addComponent(reportScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 339, javax.swing.GroupLayout.PREFERRED_SIZE) ! .addContainerGap(163, Short.MAX_VALUE)) ); pack(); --- 321,330 ---- .addComponent(addReportButton, javax.swing.GroupLayout.PREFERRED_SIZE, 17, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) ! .addComponent(reportScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE) ! .addGap(20) ! .addComponent(consoleScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) ! .addContainerGap(163, Short.MAX_VALUE) ! .addComponent(reportProgress)) ! ); pack(); *************** *** 301,305 **** fileName += ".xls"; } ! CompleteReportGenerator complete = new CompleteReportGenerator(); complete.generateXLSFile(stockAnalysis.getReports().get(reportTable.getSelectedRow()), stockAnalysis.getAdditionalCriteria(), stockAnalysis.getSlicer().getPeriod(), filePath, fileName); --- 349,353 ---- fileName += ".xls"; } ! CompleteReportGenerator complete = new CompleteReportGenerator(this); complete.generateXLSFile(stockAnalysis.getReports().get(reportTable.getSelectedRow()), stockAnalysis.getAdditionalCriteria(), stockAnalysis.getSlicer().getPeriod(), filePath, fileName); *************** *** 324,328 **** directoryPath = directoryPath.substring(0, directoryPath.length() - (1 + directoryName.length())); ! CompleteReportGenerator complete = new CompleteReportGenerator(); try { complete.generateHTMLFile(stockAnalysis.getReports().get(reportTable.getSelectedRow()), stockAnalysis.getAdditionalCriteria(), stockAnalysis.getSlicer().getPeriod(), directoryPath, directoryName); --- 372,376 ---- directoryPath = directoryPath.substring(0, directoryPath.length() - (1 + directoryName.length())); ! CompleteReportGenerator complete = new CompleteReportGenerator(this); try { complete.generateHTMLFile(stockAnalysis.getReports().get(reportTable.getSelectedRow()), stockAnalysis.getAdditionalCriteria(), stockAnalysis.getSlicer().getPeriod(), directoryPath, directoryName); *************** *** 380,384 **** reportTable.setModel(helper.getTableModel(analysis)); reportTable.setGridColor(new java.awt.Color(255, 255, 255)); ! reportScrollPane.setViewportView(reportTable); --- 428,433 ---- reportTable.setModel(helper.getTableModel(analysis)); reportTable.setGridColor(new java.awt.Color(255, 255, 255)); ! reportTable.setEnabled(true); ! reportScrollPane.setViewportView(reportTable); *************** *** 442,446 **** private void stockAnalysisMenuItemActionPerformed(java.awt.event.ActionEvent evt) { new NewStockAnalysis(this).setVisible(true); ! } } --- 491,514 ---- private void stockAnalysisMenuItemActionPerformed(java.awt.event.ActionEvent evt) { new NewStockAnalysis(this).setVisible(true); ! } ! ! public void appendConsoleArea(String message) ! { ! consoleArea.setText(consoleArea.getText() + message + "\n"); ! consoleArea.setCaretPosition(consoleArea.getText().length()); ! } ! ! public void updateReportProgress(int value) { ! if (value == 100) ! { ! reportProgress.setVisible(false); ! reportProgress.setValue(value); ! } ! else ! { ! reportProgress.setVisible(true); ! reportProgress.setValue(value); ! } ! } } |
|
From: xanaot <xa...@us...> - 2007-10-15 19:24:12
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29965/src/test/net/sf/tail/indicator/simple Added Files: AverageHighLowIndicatorTest.java Log Message: Novos indicadores: AverageHighLowIndicator -> Média entre o max e o min AwesomeOscillatorIndicator -> sma(indicador, 5) - sma(indicator, 34) AcceleratorDecelerationIndicator-> awesome - sma(awesome, 5); --- NEW FILE: AverageHighLowIndicatorTest.java --- package net.sf.tail.indicator.simple; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import net.sf.tail.sample.SampleTimeSeries; import org.junit.Before; import org.junit.Test; public class AverageHighLowIndicatorTest { private AverageHighLowIndicator average; TimeSeries timeSeries; @Before public void setUp() { List<Tick> ticks = new ArrayList<Tick>(); ticks.add(new Tick(0, 0, 16, 8)); ticks.add(new Tick(0, 0, 12, 6)); ticks.add(new Tick(0, 0, 18, 14)); ticks.add(new Tick(0, 0, 10, 6)); ticks.add(new Tick(0, 0, 32, 6)); ticks.add(new Tick(0, 0, 2, 2)); ticks.add(new Tick(0, 0, 0, 0)); ticks.add(new Tick(0, 0, 8, 1)); ticks.add(new Tick(0, 0, 83, 32)); ticks.add(new Tick(0, 0, 9, 3)); this.timeSeries = new SampleTimeSeries(ticks); average = new AverageHighLowIndicator(timeSeries); } @Test public void testIndicatorShouldRetrieveTickClosePrice() { double result; for (int i = 0; i < 10; i++) { result = (timeSeries.getTick(i).getMaxPrice() + timeSeries.getTick(i).getMinPrice()) / 2; assertEquals(average.getValue(i), result); } } @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { average.getValue(10); } @Test public void testGetName() { assertEquals("AverageHighLowIndicator", average.getName()); } } |
|
From: xanaot <xa...@us...> - 2007-10-15 19:24:12
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/oscilator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29965/src/test/net/sf/tail/indicator/oscilator Added Files: AwesomeOscillatorIndicatorTest.java Log Message: Novos indicadores: AverageHighLowIndicator -> Média entre o max e o min AwesomeOscillatorIndicator -> sma(indicador, 5) - sma(indicator, 34) AcceleratorDecelerationIndicator-> awesome - sma(awesome, 5); --- NEW FILE: AwesomeOscillatorIndicatorTest.java --- package net.sf.tail.indicator.oscilator; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.AverageHighLowIndicator; import net.sf.tail.sample.SampleTimeSeries; import org.junit.Before; import org.junit.Test; public class AwesomeOscillatorIndicatorTest { private TimeSeries series; @Before public void setUp() throws Exception { List<Tick> ticks = new ArrayList<Tick>(); ticks.add(new Tick(0, 0, 16, 8));//12 ticks.add(new Tick(0, 0, 12, 6));//9 ticks.add(new Tick(0, 0, 18, 14));//16 ticks.add(new Tick(0, 0, 10, 6));//8 ticks.add(new Tick(0, 0, 8, 4));//6 this.series = new SampleTimeSeries(ticks); } @Test public void testCalculateWithSma2AndSma3() throws Exception { AwesomeOscillatorIndicator awesome = new AwesomeOscillatorIndicator(new AverageHighLowIndicator(series), 2, 3); assertEquals(0d, awesome.getValue(0)); assertEquals(0d, awesome.getValue(1)); assertEquals(0.1666666d, awesome.getValue(2), 0.001); assertEquals(1d, awesome.getValue(3), 0.001); assertEquals(-3d, awesome.getValue(4)); } @Test public void testWithSma1AndSma2() throws Exception { AwesomeOscillatorIndicator awesome = new AwesomeOscillatorIndicator(new AverageHighLowIndicator(series), 1, 2); assertEquals(0d, awesome.getValue(0)); assertEquals(-1.5d, awesome.getValue(1)); assertEquals(3.5d, awesome.getValue(2)); assertEquals(-4d, awesome.getValue(3)); assertEquals(-1d, awesome.getValue(4)); } @Test public void testWithSmaDefault() throws Exception { AwesomeOscillatorIndicator awesome = new AwesomeOscillatorIndicator(new AverageHighLowIndicator(series)); assertEquals(0d, awesome.getValue(0)); assertEquals(0d, awesome.getValue(1)); assertEquals(0d, awesome.getValue(2)); assertEquals(0d, awesome.getValue(3)); assertEquals(0d, awesome.getValue(4)); } } |
|
From: xanaot <xa...@us...> - 2007-10-15 19:24:12
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29965/src/java/net/sf/tail/indicator/simple Added Files: AverageHighLowIndicator.java Log Message: Novos indicadores: AverageHighLowIndicator -> Média entre o max e o min AwesomeOscillatorIndicator -> sma(indicador, 5) - sma(indicator, 34) AcceleratorDecelerationIndicator-> awesome - sma(awesome, 5); --- NEW FILE: AverageHighLowIndicator.java --- package net.sf.tail.indicator.simple; import net.sf.tail.Indicator; import net.sf.tail.TimeSeries; public class AverageHighLowIndicator implements Indicator<Double> { private TimeSeries data; public AverageHighLowIndicator(TimeSeries data) { this.data = data; } public Double getValue(int index) { return (data.getTick(index).getMaxPrice() + data.getTick(index).getMinPrice()) / 2; } public String getName() { return getClass().getSimpleName(); } } |
|
From: xanaot <xa...@us...> - 2007-10-15 19:24:12
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29965/src/test/net/sf/tail/indicator/tracker Added Files: AccelerationDecelerationIndicatorTest.java Log Message: Novos indicadores: AverageHighLowIndicator -> Média entre o max e o min AwesomeOscillatorIndicator -> sma(indicador, 5) - sma(indicator, 34) AcceleratorDecelerationIndicator-> awesome - sma(awesome, 5); --- NEW FILE: AccelerationDecelerationIndicatorTest.java --- package net.sf.tail.indicator.tracker; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import net.sf.tail.sample.SampleTimeSeries; import org.junit.Before; import org.junit.Test; public class AccelerationDecelerationIndicatorTest { private TimeSeries series; @Before public void setUp() throws Exception { List<Tick> ticks = new ArrayList<Tick>(); ticks.add(new Tick(0, 0, 16, 8)); ticks.add(new Tick(0, 0, 12, 6)); ticks.add(new Tick(0, 0, 18, 14)); ticks.add(new Tick(0, 0, 10, 6)); ticks.add(new Tick(0, 0, 8, 4)); this.series = new SampleTimeSeries(ticks); } @Test public void testCalculateWithSma2AndSma3() throws Exception { AccelerationDecelerationIndicator acceleration = new AccelerationDecelerationIndicator(series, 2, 3); assertEquals(0d, acceleration.getValue(0)); assertEquals(0d, acceleration.getValue(1)); assertEquals(0.1666666d - 0.08333333d, acceleration.getValue(2), 0.001); assertEquals(1d - 0.5833333, acceleration.getValue(3), 0.001); assertEquals(-3d + 1d, acceleration.getValue(4)); } @Test public void testWithSma1AndSma2() throws Exception { AccelerationDecelerationIndicator acceleration = new AccelerationDecelerationIndicator(series, 1, 2); assertEquals(0d, acceleration.getValue(0)); assertEquals(0d, acceleration.getValue(1)); assertEquals(0d, acceleration.getValue(2)); assertEquals(0d, acceleration.getValue(3)); assertEquals(0d, acceleration.getValue(4)); } @Test public void testWithSmaDefault() throws Exception { AccelerationDecelerationIndicator acceleration = new AccelerationDecelerationIndicator(series); assertEquals(0d, acceleration.getValue(0)); assertEquals(0d, acceleration.getValue(1)); assertEquals(0d, acceleration.getValue(2)); assertEquals(0d, acceleration.getValue(3)); assertEquals(0d, acceleration.getValue(4)); } } |
|
From: xanaot <xa...@us...> - 2007-10-15 19:24:12
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29965/src/java/net/sf/tail/indicator/tracker Added Files: AccelerationDecelerationIndicator.java Log Message: Novos indicadores: AverageHighLowIndicator -> Média entre o max e o min AwesomeOscillatorIndicator -> sma(indicador, 5) - sma(indicator, 34) AcceleratorDecelerationIndicator-> awesome - sma(awesome, 5); --- NEW FILE: AccelerationDecelerationIndicator.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.cache.CachedIndicator; import net.sf.tail.indicator.oscilator.AwesomeOscillatorIndicator; import net.sf.tail.indicator.simple.AverageHighLowIndicator; public class AccelerationDecelerationIndicator extends CachedIndicator<Double> { private AwesomeOscillatorIndicator awesome; private SMAIndicator sma5; public AccelerationDecelerationIndicator(TimeSeries series, int timeFrameSma1, int timeFrameSma2) { this.awesome = new AwesomeOscillatorIndicator(new AverageHighLowIndicator(series), timeFrameSma1, timeFrameSma2); this.sma5 = new SMAIndicator(awesome, timeFrameSma1); } public AccelerationDecelerationIndicator(TimeSeries series) { this(series, 5, 34); } @Override protected Double calculate(int index) { return awesome.getValue(index) - sma5.getValue(index); } @Override public String getName() { return getClass().getSimpleName(); } } |
|
From: xanaot <xa...@us...> - 2007-10-15 19:24:12
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/oscilator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29965/src/java/net/sf/tail/indicator/oscilator Added Files: AwesomeOscillatorIndicator.java Log Message: Novos indicadores: AverageHighLowIndicator -> Média entre o max e o min AwesomeOscillatorIndicator -> sma(indicador, 5) - sma(indicator, 34) AcceleratorDecelerationIndicator-> awesome - sma(awesome, 5); --- NEW FILE: AwesomeOscillatorIndicator.java --- package net.sf.tail.indicator.oscilator; import net.sf.tail.Indicator; import net.sf.tail.indicator.cache.CachedIndicator; import net.sf.tail.indicator.tracker.SMAIndicator; public class AwesomeOscillatorIndicator extends CachedIndicator<Double> { private SMAIndicator sma5; private SMAIndicator sma34; public AwesomeOscillatorIndicator(Indicator<? extends Number> average, int timeFrameSma1, int timeFrameSma2) { this.sma5 = new SMAIndicator(average, timeFrameSma1); this.sma34 = new SMAIndicator(average, timeFrameSma2); } public AwesomeOscillatorIndicator(Indicator<? extends Number> average) { this.sma5 = new SMAIndicator(average, 5); this.sma34 = new SMAIndicator(average, 34); } @Override protected Double calculate(int index) { return sma5.getValue(index) - sma34.getValue(index); } @Override public String getName() { return getClass().getSimpleName(); } } |
|
From: xanaot <xa...@us...> - 2007-10-15 16:14:26
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/i18n In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12912/src/java/net/sf/tails/i18n Modified Files: Classes.properties Log Message: Implementação de critérios default pre-selecionados Index: Classes.properties =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/i18n/Classes.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Classes.properties 10 Oct 2007 18:44:32 -0000 1.2 --- Classes.properties 15 Oct 2007 16:14:24 -0000 1.3 *************** *** 1,3 **** --- 1,5 ---- ANALYSIS_CRITERIA =AverageProfitCriterion;BuyAndHoldCriterion;MaximumDrawDownCriterion;NumberOfTicksCriterion;NumberOfTradesCriterion;RewardRiskRatioCriterion;TotalProfitCriterion;BrazilianTotalProfitCriterion;BrazilianTransactionCostsCriterion GENERIC_CRITERIA =VersusBuyAndHoldCriterion + DEFAULT_CRITERIA =TotalProfitCriterion + SELECTED_CRITERIA=BuyAndHoldCriterion;NumberOfTicksCriterion;RewardRiskRatioCriterion;BrazilianTotalProfitCriterion LOADERS =CedroTimeSeriesLoader \ No newline at end of file |
|
From: xanaot <xa...@us...> - 2007-10-15 16:14:26
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/helper In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12912/src/java/net/sf/tails/swing/helper Modified Files: FrameHelper.java Log Message: Implementação de critérios default pre-selecionados Index: FrameHelper.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/helper/FrameHelper.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** FrameHelper.java 10 Oct 2007 21:28:10 -0000 1.16 --- FrameHelper.java 15 Oct 2007 16:14:24 -0000 1.17 *************** *** 37,49 **** private static final ResourceBundle classBundle = ResourceBundle.getBundle("net.sf.tails.i18n.Classes"); ! public String[] getCommunCriteria() { ! String analysisCriteria = classBundle.getString("ANALYSIS_CRITERIA"); ! String[] criteria = analysisCriteria.split(";"); ! ! return criteria; ! } ! ! public String[] getGenericCriteria() { ! String analysisCriteria = classBundle.getString("GENERIC_CRITERIA"); String[] criteria = analysisCriteria.split(";"); --- 37,42 ---- private static final ResourceBundle classBundle = ResourceBundle.getBundle("net.sf.tails.i18n.Classes"); ! public String[] getCriteria(String criteriaKey) { ! String analysisCriteria = classBundle.getString(criteriaKey); String[] criteria = analysisCriteria.split(";"); *************** *** 185,189 **** public boolean isGenericCriteria(String criteriaName) { ! for (String generic : getGenericCriteria()) { if(criteriaName.equals(generic)) { --- 178,193 ---- public boolean isGenericCriteria(String criteriaName) { ! for (String generic : getCriteria("GENERIC_CRITERIA")) { ! if(criteriaName.equals(generic)) ! { ! return true; ! } ! } ! return false; ! } ! ! public boolean isSelectedCriteria(String criteriaName) ! { ! for (String generic : getCriteria("SELECTED_CRITERIA")) { if(criteriaName.equals(generic)) { |
|
From: xanaot <xa...@us...> - 2007-10-15 16:14:26
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame/stockAnalysis In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12912/src/java/net/sf/tails/swing/frame/stockAnalysis Modified Files: NewStockAnalysis2.java Log Message: Implementação de critérios default pre-selecionados Index: NewStockAnalysis2.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame/stockAnalysis/NewStockAnalysis2.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** NewStockAnalysis2.java 10 Oct 2007 21:28:09 -0000 1.5 --- NewStockAnalysis2.java 15 Oct 2007 16:14:23 -0000 1.6 *************** *** 28,289 **** /** ! * ! * @author cmanssur */ public class NewStockAnalysis2 extends javax.swing.JFrame { ! private static final ResourceBundle messageBundle = ResourceBundle.getBundle("net.sf.tails.i18n.Messages"); ! private static final long serialVersionUID = 1L; private Stock stock; ! private String[] communCriteria; ! private String[] genericCriteria; ! private String[] allCriteria; ! private javax.swing.JComboBox analysisComboBox; ! private javax.swing.JComboBox secondAnalysisComboBox; ! private javax.swing.JLabel analysisLabel; ! private javax.swing.JLabel secondAnalysisLabel; ! private javax.swing.JButton cancelButton; ! private javax.swing.JPanel criterionPanel; ! private javax.swing.JPanel communCriterionPanel; ! private javax.swing.JButton nextButton; ! private javax.swing.JCheckBox criterionCheckBox; private Index index; private FrameHelper helper; ! ! public NewStockAnalysis2(Index index, Stock stock) { ! this.index = index; ! this.stock = stock; ! initComponents(); ! this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); ! this.setResizable(false); ! this.setLocationByPlatform(true); ! this.setTitle(messageBundle.getString("STOCKANALYSIS_TITLE")); ! } ! ! private void initComponents() { ! helper = new FrameHelper(); ! nextButton = new javax.swing.JButton(); ! cancelButton = new javax.swing.JButton(); ! criterionPanel = new javax.swing.JPanel(); ! communCriterionPanel = new javax.swing.JPanel(); ! analysisLabel = new javax.swing.JLabel(); ! secondAnalysisLabel = new javax.swing.JLabel(); ! analysisComboBox = new javax.swing.JComboBox(); ! secondAnalysisComboBox = new javax.swing.JComboBox(); ! communCriteria = helper.getCommunCriteria(); ! genericCriteria = helper.getGenericCriteria(); ! allCriteria = new String[communCriteria.length + genericCriteria.length]; ! ! int i = 0; ! for (String criteria : communCriteria) { allCriteria[i++] = criteria; } ! for (String criteria : genericCriteria) { allCriteria[i++] = criteria; } ! nextButton.setText("Next"); ! nextButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! nextButtonActionPerformed(evt); ! } ! }); ! cancelButton.setText("Cancel"); ! cancelButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! cancelButtonActionPerformed(evt); ! } ! }); ! criterionPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Additional Criteria", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 14))); ! criterionPanel.setLayout(new GridLayout(0, 1, 15, 15)); ! criterionPanel.setMaximumSize(new Dimension(400, 0)); ! ! communCriterionPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder()); ! communCriterionPanel.setLayout(new GridLayout(0, 3, 15, 15)); ! communCriterionPanel.setMaximumSize(new Dimension(400, 0)); ! ! for (String criterionName : communCriteria) { ! criterionCheckBox = new javax.swing.JCheckBox(); criterionCheckBox.setText(criterionName); ! criterionCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); ! criterionCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0)); ! communCriterionPanel.add(criterionCheckBox); } ! ! criterionPanel.add(communCriterionPanel); ! ! for (String criteriaName : genericCriteria) { ! javax.swing.JPanel genericCriterionPanel = new javax.swing.JPanel(); ! genericCriterionPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), criteriaName, javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12))); ! genericCriterionPanel.setLayout(new GridLayout(0, 3, 15, 15)); ! genericCriterionPanel.setMaximumSize(new Dimension(400, 0)); ! ! for (String criterionName : communCriteria) { ! criterionCheckBox = new javax.swing.JCheckBox(); ! criterionCheckBox.setText(criterionName); ! criterionCheckBox.setFont(new java.awt.Font("Dialog", 0, 12)); ! criterionCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); ! criterionCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0)); ! genericCriterionPanel.add(criterionCheckBox); ! } ! ! criterionPanel.add(genericCriterionPanel); } - - analysisLabel.setText("Analisys Criterion: "); - secondAnalysisLabel.setText(" of: "); ! analysisComboBox.setModel(new javax.swing.DefaultComboBoxModel(allCriteria)); ! analysisComboBox.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! analysisComboBoxActionPerformed(evt); ! } ! }); ! secondAnalysisComboBox.setModel(new javax.swing.DefaultComboBoxModel(communCriteria)); ! analysisComboBoxActionPerformed(null); ! ! javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); ! getContentPane().setLayout(layout); ! layout.setHorizontalGroup( ! layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) ! .addGroup(layout.createSequentialGroup() ! .addGap(37, 37, 37) ! .addComponent(analysisLabel) ! .addGap(20, 20, 20) ! .addComponent(analysisComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) ! .addGap(20, 20, 20) ! .addComponent(secondAnalysisLabel) ! .addGap(20, 20, 20) ! .addComponent(secondAnalysisComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ! .addGroup(layout.createSequentialGroup() ! .addGap(227, 227, 227) ! .addComponent(nextButton) ! .addGap(18, 18, 18) ! .addComponent(cancelButton) ! .addContainerGap(269, Short.MAX_VALUE)) ! .addGroup(layout.createSequentialGroup() ! .addGap(24, 24, 24) ! .addComponent(criterionPanel) ! .addContainerGap(0, Short.MAX_VALUE)) ! ); ! layout.setVerticalGroup( ! layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) ! .addGroup(layout.createSequentialGroup() ! .addGap(24, 24, 24) ! .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) ! .addComponent(analysisLabel) ! .addComponent(analysisComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) ! .addComponent(secondAnalysisLabel) ! .addComponent(secondAnalysisComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ! .addGap(16, 16, 16) ! .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) ! .addComponent(criterionPanel)) ! .addGap(23, 23, 23) ! .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) ! .addComponent(cancelButton) ! .addComponent(nextButton)) ! .addContainerGap(23, Short.MAX_VALUE)) ! ); ! pack(); ! } ! protected void analysisComboBoxActionPerformed(ActionEvent evt) { ! if(helper.isGenericCriteria(analysisComboBox.getSelectedItem().toString())) ! { ! secondAnalysisComboBox.setVisible(true); ! secondAnalysisLabel.setVisible(true); ! } ! else ! { ! secondAnalysisComboBox.setVisible(false); ! secondAnalysisLabel.setVisible(false); ! } } private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) { ! this.dispose(); ! } ! private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) { ! AnalysisCriterion selectedCriterion = null; ! String selectedCriterionName = analysisComboBox.getSelectedItem().toString(); try { ! if (helper.isGenericCriteria(selectedCriterionName)) ! { ! selectedCriterion = helper.getSelectedGenericCriterion(selectedCriterionName, secondAnalysisComboBox.getSelectedItem().toString()); ! } ! else ! { ! selectedCriterion = helper.getSelectedCommunCriterion(selectedCriterionName); } } catch (Exception e) { ! JOptionPane.showMessageDialog(null, selectedCriterionName + " " + messageBundle.getString("SELECTED_CRITERION"), "Error", 0); } ! List<AnalysisCriterion> additionalCriteria = new ArrayList<AnalysisCriterion>(); ! for (Component panelComponent : criterionPanel.getComponents()) ! { ! if (panelComponent instanceof JPanel) { ! JPanel panel = (JPanel)panelComponent; ! if (panel.getBorder() instanceof EmptyBorder) ! { ! for (Component component : panel.getComponents()) ! { ! if (component instanceof JCheckBox) ! { JCheckBox checkBox = (JCheckBox) component; ! if (checkBox.isSelected()) ! { AnalysisCriterion criterion = null; try { ! criterion = helper.getSelectedCommunCriterion(checkBox.getText()); } catch (Exception e) { ! JOptionPane.showMessageDialog(null, checkBox.getText() + " " + messageBundle.getString("SELECTED_CRITERIA"), "Error", 2); } ! ! if (criterion != null) ! { additionalCriteria.add(criterion); } ! } } ! } ! } ! else ! { ! for (Component component : panel.getComponents()) ! { ! if (component instanceof JCheckBox) ! { JCheckBox checkBox = (JCheckBox) component; ! if (checkBox.isSelected()) ! { AnalysisCriterion criterion = null; try { ! criterion = helper.getSelectedGenericCriterion(((TitledBorder)panel.getBorder()).getTitle(), checkBox.getText()); } catch (Exception e) { ! JOptionPane.showMessageDialog(null, checkBox.getText() + " " + messageBundle.getString("SELECTED_CRITERIA"), "Error", 2); } ! ! if (criterion != null) ! { additionalCriteria.add(criterion); } ! } } ! } ! } ! } ! } ! if (selectedCriterion == null) ! { ! JOptionPane.showMessageDialog(null, analysisComboBox.getSelectedItem().toString() + " " + messageBundle.getString("SELECTED_CRITERION"), "Error", 0); ! } ! else ! { ! new NewStockAnalysis3(index, stock, selectedCriterion, additionalCriteria).setVisible(true); ! this.dispose(); ! } ! } } --- 28,352 ---- /** ! * ! * @author cmanssur */ public class NewStockAnalysis2 extends javax.swing.JFrame { ! private static final ResourceBundle messageBundle = ResourceBundle ! .getBundle("net.sf.tails.i18n.Messages"); ! private static final ResourceBundle classBundle = ResourceBundle ! .getBundle("net.sf.tails.i18n.Classes"); ! private static final long serialVersionUID = 1L; private Stock stock; ! private String[] communCriteria; ! private String[] genericCriteria; ! private String[] allCriteria; ! private javax.swing.JComboBox analysisComboBox; ! private javax.swing.JComboBox secondAnalysisComboBox; ! private javax.swing.JLabel analysisLabel; ! private javax.swing.JLabel secondAnalysisLabel; ! private javax.swing.JButton cancelButton; ! private javax.swing.JPanel criterionPanel; ! private javax.swing.JPanel communCriterionPanel; ! private javax.swing.JButton nextButton; ! private javax.swing.JCheckBox criterionCheckBox; private Index index; private FrameHelper helper; ! private String defaultCriteria; ! ! public NewStockAnalysis2(Index index, Stock stock) { ! this.index = index; ! this.stock = stock; ! initComponents(); ! this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); ! this.setResizable(false); ! this.setLocationByPlatform(true); ! this.setTitle(messageBundle.getString("STOCKANALYSIS_TITLE")); ! } ! ! private void initComponents() { ! helper = new FrameHelper(); ! nextButton = new javax.swing.JButton(); ! cancelButton = new javax.swing.JButton(); ! criterionPanel = new javax.swing.JPanel(); ! communCriterionPanel = new javax.swing.JPanel(); ! analysisLabel = new javax.swing.JLabel(); ! secondAnalysisLabel = new javax.swing.JLabel(); ! analysisComboBox = new javax.swing.JComboBox(); ! secondAnalysisComboBox = new javax.swing.JComboBox(); ! communCriteria = helper.getCriteria("ANALYSIS_CRITERIA"); ! genericCriteria = helper.getCriteria("GENERIC_CRITERIA"); ! allCriteria = new String[communCriteria.length + genericCriteria.length]; ! defaultCriteria = classBundle.getString("DEFAULT_CRITERIA"); ! ! int i = 0; ! for (String criteria : communCriteria) { allCriteria[i++] = criteria; } ! for (String criteria : genericCriteria) { allCriteria[i++] = criteria; } ! nextButton.setText("Next"); ! nextButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! nextButtonActionPerformed(evt); ! } ! }); ! cancelButton.setText("Cancel"); ! cancelButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! cancelButtonActionPerformed(evt); ! } ! }); ! criterionPanel.setBorder(javax.swing.BorderFactory.createTitledBorder( ! javax.swing.BorderFactory.createEtchedBorder(), ! "Additional Criteria", ! javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, ! javax.swing.border.TitledBorder.DEFAULT_POSITION, ! new java.awt.Font("Dialog", 0, 14))); ! criterionPanel.setLayout(new GridLayout(0, 1, 15, 15)); ! criterionPanel.setMaximumSize(new Dimension(400, 0)); ! ! communCriterionPanel.setBorder(javax.swing.BorderFactory ! .createEmptyBorder()); ! communCriterionPanel.setLayout(new GridLayout(0, 3, 15, 15)); ! communCriterionPanel.setMaximumSize(new Dimension(400, 0)); ! ! for (String criterionName : communCriteria) { ! criterionCheckBox = new javax.swing.JCheckBox(); criterionCheckBox.setText(criterionName); ! criterionCheckBox.setBorder(javax.swing.BorderFactory ! .createEmptyBorder(0, 0, 0, 0)); ! criterionCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0)); ! criterionCheckBox.setSelected(helper.isSelectedCriteria(criterionName)); ! communCriterionPanel.add(criterionCheckBox); } ! ! criterionPanel.add(communCriterionPanel); ! ! for (String criteriaName : genericCriteria) { ! javax.swing.JPanel genericCriterionPanel = new javax.swing.JPanel(); ! genericCriterionPanel ! .setBorder(javax.swing.BorderFactory ! .createTitledBorder( ! javax.swing.BorderFactory ! .createEtchedBorder(), ! criteriaName, ! javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, ! javax.swing.border.TitledBorder.DEFAULT_POSITION, ! new java.awt.Font("Dialog", 1, 12))); ! genericCriterionPanel.setLayout(new GridLayout(0, 3, 15, 15)); ! genericCriterionPanel.setMaximumSize(new Dimension(400, 0)); ! ! for (String criterionName : communCriteria) { ! criterionCheckBox = new javax.swing.JCheckBox(); ! criterionCheckBox.setText(criterionName); ! criterionCheckBox.setFont(new java.awt.Font("Dialog", 0, 12)); ! criterionCheckBox.setBorder(javax.swing.BorderFactory ! .createEmptyBorder(0, 0, 0, 0)); ! criterionCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0)); ! genericCriterionPanel.add(criterionCheckBox); ! } ! ! criterionPanel.add(genericCriterionPanel); } ! analysisLabel.setText("Analisys Criterion: "); ! secondAnalysisLabel.setText(" of: "); ! analysisComboBox.setModel(new javax.swing.DefaultComboBoxModel( ! allCriteria)); ! analysisComboBox.setSelectedItem(defaultCriteria); ! analysisComboBox.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! analysisComboBoxActionPerformed(evt); ! } ! }); ! secondAnalysisComboBox.setModel(new javax.swing.DefaultComboBoxModel( ! communCriteria)); ! analysisComboBoxActionPerformed(null); ! ! javax.swing.GroupLayout layout = new javax.swing.GroupLayout( ! getContentPane()); ! getContentPane().setLayout(layout); ! layout.setHorizontalGroup(layout.createParallelGroup( ! javax.swing.GroupLayout.Alignment.LEADING).addGroup( ! layout.createSequentialGroup().addGap(37, 37, 37).addComponent( ! analysisLabel).addGap(20, 20, 20).addComponent( ! analysisComboBox, ! javax.swing.GroupLayout.PREFERRED_SIZE, ! javax.swing.GroupLayout.DEFAULT_SIZE, ! javax.swing.GroupLayout.PREFERRED_SIZE).addGap(20, 20, ! 20).addComponent(secondAnalysisLabel) ! .addGap(20, 20, 20).addComponent( ! secondAnalysisComboBox, ! javax.swing.GroupLayout.PREFERRED_SIZE, ! javax.swing.GroupLayout.DEFAULT_SIZE, ! javax.swing.GroupLayout.PREFERRED_SIZE)) ! .addGroup( ! layout.createSequentialGroup().addGap(227, 227, 227) ! .addComponent(nextButton).addGap(18, 18, 18) ! .addComponent(cancelButton).addContainerGap( ! 269, Short.MAX_VALUE)).addGroup( ! layout.createSequentialGroup().addGap(24, 24, 24) ! .addComponent(criterionPanel).addContainerGap( ! 0, Short.MAX_VALUE))); ! layout ! .setVerticalGroup(layout ! .createParallelGroup( ! javax.swing.GroupLayout.Alignment.LEADING) ! .addGroup( ! layout ! .createSequentialGroup() ! .addGap(24, 24, 24) ! .addGroup( ! layout ! .createParallelGroup( ! javax.swing.GroupLayout.Alignment.BASELINE) ! .addComponent( ! analysisLabel) ! .addComponent( ! analysisComboBox, ! javax.swing.GroupLayout.PREFERRED_SIZE, ! javax.swing.GroupLayout.DEFAULT_SIZE, ! javax.swing.GroupLayout.PREFERRED_SIZE) ! .addComponent( ! secondAnalysisLabel) ! .addComponent( ! secondAnalysisComboBox, ! javax.swing.GroupLayout.PREFERRED_SIZE, ! javax.swing.GroupLayout.DEFAULT_SIZE, ! javax.swing.GroupLayout.PREFERRED_SIZE)) ! .addGap(16, 16, 16) ! .addGroup( ! layout ! .createParallelGroup( ! javax.swing.GroupLayout.Alignment.BASELINE) ! .addComponent( ! criterionPanel)) ! .addGap(23, 23, 23) ! .addGroup( ! layout ! .createParallelGroup( ! javax.swing.GroupLayout.Alignment.BASELINE) ! .addComponent( ! cancelButton) ! .addComponent( ! nextButton)) ! .addContainerGap(23, Short.MAX_VALUE))); ! pack(); ! } ! ! protected void analysisComboBoxActionPerformed(ActionEvent evt) { ! if (helper.isGenericCriteria(analysisComboBox.getSelectedItem() ! .toString())) { ! secondAnalysisComboBox.setVisible(true); ! secondAnalysisLabel.setVisible(true); ! } else { ! secondAnalysisComboBox.setVisible(false); ! secondAnalysisLabel.setVisible(false); ! } } private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) { ! this.dispose(); ! } ! private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) { ! AnalysisCriterion selectedCriterion = null; ! String selectedCriterionName = analysisComboBox.getSelectedItem() ! .toString(); try { ! if (helper.isGenericCriteria(selectedCriterionName)) { ! selectedCriterion = helper.getSelectedGenericCriterion( ! selectedCriterionName, secondAnalysisComboBox ! .getSelectedItem().toString()); ! } else { ! selectedCriterion = helper ! .getSelectedCommunCriterion(selectedCriterionName); } } catch (Exception e) { ! JOptionPane ! .showMessageDialog(null, selectedCriterionName + " " ! + messageBundle.getString("SELECTED_CRITERION"), ! "Error", 0); } ! List<AnalysisCriterion> additionalCriteria = new ArrayList<AnalysisCriterion>(); ! for (Component panelComponent : criterionPanel.getComponents()) { ! if (panelComponent instanceof JPanel) { ! JPanel panel = (JPanel) panelComponent; ! if (panel.getBorder() instanceof EmptyBorder) { ! for (Component component : panel.getComponents()) { ! if (component instanceof JCheckBox) { JCheckBox checkBox = (JCheckBox) component; ! if (checkBox.isSelected()) { AnalysisCriterion criterion = null; try { ! criterion = helper ! .getSelectedCommunCriterion(checkBox ! .getText()); } catch (Exception e) { ! JOptionPane ! .showMessageDialog( ! null, ! checkBox.getText() ! + " " ! + messageBundle ! .getString("SELECTED_CRITERIA"), ! "Error", 2); } ! ! if (criterion != null) { additionalCriteria.add(criterion); } ! } } ! } ! } else { ! for (Component component : panel.getComponents()) { ! if (component instanceof JCheckBox) { JCheckBox checkBox = (JCheckBox) component; ! if (checkBox.isSelected()) { AnalysisCriterion criterion = null; try { ! criterion = helper ! .getSelectedGenericCriterion( ! ((TitledBorder) panel ! .getBorder()) ! .getTitle(), ! checkBox.getText()); } catch (Exception e) { ! JOptionPane ! .showMessageDialog( ! null, ! checkBox.getText() ! + " " ! + messageBundle ! .getString("SELECTED_CRITERIA"), ! "Error", 2); } ! ! if (criterion != null) { additionalCriteria.add(criterion); } ! } } ! } ! } ! } ! } ! if (selectedCriterion == null) { ! JOptionPane.showMessageDialog(null, analysisComboBox ! .getSelectedItem().toString() ! + " " + messageBundle.getString("SELECTED_CRITERION"), ! "Error", 0); ! } else { ! new NewStockAnalysis3(index, stock, selectedCriterion, ! additionalCriteria).setVisible(true); ! this.dispose(); ! } ! } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-10-11 00:17:47
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/helper In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17803/src/java/net/sf/tails/swing/helper Modified Files: CompleteReportGenerator.java Log Message: Index: CompleteReportGenerator.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/helper/CompleteReportGenerator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CompleteReportGenerator.java 10 Oct 2007 19:04:48 -0000 1.1 --- CompleteReportGenerator.java 11 Oct 2007 00:17:50 -0000 1.2 *************** *** 55,65 **** HSSFWorkbook workbook = xlsGenerator.generate(report, criteria, period, charts); ! FileOutputStream fileOut = new FileOutputStream(filePath + "/" + fileName); workbook.write(fileOut); fileOut.close(); - for (File file : charts) { - file.delete(); - } } catch (Exception e) { e.printStackTrace(); --- 55,62 ---- HSSFWorkbook workbook = xlsGenerator.generate(report, criteria, period, charts); ! FileOutputStream fileOut = new FileOutputStream(filePath + File.separatorChar + fileName); workbook.write(fileOut); fileOut.close(); } catch (Exception e) { e.printStackTrace(); *************** *** 72,79 **** final ReportHTMLGenerator generator = new ReportHTMLGenerator(); ! final String reportDir = filePath + "/" + fileName; ! final String styleDir = reportDir + "/style"; ! final String chartDir = reportDir + "/Charts"; ! final String decisionDir = reportDir + "/Decisions"; final List<String> urls = new ArrayList<String>(); new Thread(new Runnable() { --- 69,77 ---- final ReportHTMLGenerator generator = new ReportHTMLGenerator(); ! final String reportDir = filePath + File.separatorChar + fileName; ! System.out.println(fileName+"----------"); ! final String styleDir = reportDir + File.separatorChar + "style"; ! final String chartDir = reportDir + File.separatorChar + "Charts"; ! final String decisionDir = reportDir + File.separatorChar + "Decisions"; final List<String> urls = new ArrayList<String>(); new Thread(new Runnable() { *************** *** 110,116 **** private void createStyle(String styleDir) throws IOException { ! File inputFile = new File(folderBundle.getString("STYLE_DIR") + "/style.css"); ! File outputFile = new File(styleDir + "/style.css"); ! FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); --- 108,113 ---- private void createStyle(String styleDir) throws IOException { ! File inputFile = new File(folderBundle.getString("STYLE_DIR")+ File.separatorChar + "style.css"); ! File outputFile = new File(styleDir + File.separatorChar + "style.css"); FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); *************** *** 125,129 **** private File createHTML(String name, StringBuffer html, String directory) throws FileNotFoundException { ! String htmlPath = directory + "/" + name; File reportHtml = new File(htmlPath); OutputStream out = new BufferedOutputStream(new FileOutputStream(reportHtml)); --- 122,126 ---- private File createHTML(String name, StringBuffer html, String directory) throws FileNotFoundException { ! String htmlPath = directory + File.separatorChar + name; File reportHtml = new File(htmlPath); OutputStream out = new BufferedOutputStream(new FileOutputStream(reportHtml)); *************** *** 139,143 **** TimeSeries timeSeries = decision.getSeries(); List<Indicator<? extends Number>> indicators; ! String imagePath = chartDir + "/" + decision.getFileName() + ".png"; Indicator<Double> close = new ClosePriceIndicator(timeSeries); --- 136,140 ---- TimeSeries timeSeries = decision.getSeries(); List<Indicator<? extends Number>> indicators; ! String imagePath = chartDir + File.separatorChar + decision.getFileName() + ".png"; Indicator<Double> close = new ClosePriceIndicator(timeSeries); *************** *** 159,163 **** Indicator<Double> close = new ClosePriceIndicator(timeSeries); CashFlow cashflow = new CashFlow(timeSeries, report.getAllTrades()); ! String imagePath = chartDir + "/" + report.getFileName() + ".png"; StockAndCashFlowDataset stockData = new StockAndCashFlowDataset(timeSeries, close, cashflow, period); StockAndCashFlowChart stockChart = new StockAndCashFlowChart(stockData, false); --- 156,160 ---- Indicator<Double> close = new ClosePriceIndicator(timeSeries); CashFlow cashflow = new CashFlow(timeSeries, report.getAllTrades()); ! String imagePath = chartDir + File.separatorChar + report.getFileName() + ".png"; StockAndCashFlowDataset stockData = new StockAndCashFlowDataset(timeSeries, close, cashflow, period); StockAndCashFlowChart stockChart = new StockAndCashFlowChart(stockData, false); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-10-11 00:17:47
|
Update of /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17803/src/java/net/sf/tails/swing/frame Modified Files: Index.java Log Message: Index: Index.java =================================================================== RCS file: /cvsroot/tail/TailS/src/java/net/sf/tails/swing/frame/Index.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Index.java 10 Oct 2007 21:28:10 -0000 1.18 --- Index.java 11 Oct 2007 00:17:50 -0000 1.19 *************** *** 296,300 **** String fileName = xlsFileChooser.getSelectedFile().getName(); String filePath = xlsFileChooser.getSelectedFile().getAbsolutePath(); ! filePath = filePath.replaceAll("/" + fileName, ""); if(!fileName.endsWith(".xls")) { --- 296,300 ---- String fileName = xlsFileChooser.getSelectedFile().getName(); String filePath = xlsFileChooser.getSelectedFile().getAbsolutePath(); ! filePath = filePath.substring(0, filePath.length() - (1 + fileName.length())); if(!fileName.endsWith(".xls")) { *************** *** 322,326 **** String directoryName = htmlFileChooser.getSelectedFile().getName(); String directoryPath = htmlFileChooser.getSelectedFile().getAbsolutePath(); ! directoryPath = directoryPath.replaceAll("/" + directoryName, ""); CompleteReportGenerator complete = new CompleteReportGenerator(); try { --- 322,327 ---- String directoryName = htmlFileChooser.getSelectedFile().getName(); String directoryPath = htmlFileChooser.getSelectedFile().getAbsolutePath(); ! directoryPath = directoryPath.substring(0, directoryPath.length() - (1 + directoryName.length())); ! CompleteReportGenerator complete = new CompleteReportGenerator(); try { *************** *** 392,400 **** if (this.getTitle().endsWith(" - " + messageBundle.getString("DEFAULT_TITLE"))) { ! filePath = helper.getStockAnalysisPath() + "/" + this.getTitle().split(" - ")[0]; } else { ! filePath = helper.getStockAnalysisPath() + "/" + helper.generateStockAnalysisName(); } File stockAnalysisXML = new File(filePath); --- 393,401 ---- if (this.getTitle().endsWith(" - " + messageBundle.getString("DEFAULT_TITLE"))) { ! filePath = helper.getStockAnalysisPath() + File.separatorChar + this.getTitle().split(" - ")[0]; } else { ! filePath = helper.getStockAnalysisPath() + File.separatorChar + helper.generateStockAnalysisName(); } File stockAnalysisXML = new File(filePath); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-10-11 00:17:20
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17791/src/java/net/sf/tail/report/xls Modified Files: WorkbookGenerator.java Log Message: Index: WorkbookGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/xls/WorkbookGenerator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WorkbookGenerator.java 10 Oct 2007 19:04:10 -0000 1.1 --- WorkbookGenerator.java 11 Oct 2007 00:17:20 -0000 1.2 *************** *** 39,42 **** --- 39,49 ---- reportXls.generate(report, criteria, period, chartFile); slicerXls.generate(report, criteria2, period, charts); + + for (File file : charts) { + file.delete(); + } + for (File file : chartFile) { + file.delete(); + } return workbook; |
|
From: Thies <tg...@us...> - 2007-10-10 23:10:38
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/volume In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv22648/src/test/net/sf/tail/indicator/volume Log Message: Directory /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/volume added to the repository |
|
From: Thies <tg...@us...> - 2007-10-10 23:10:37
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/volume In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv22687/src/java/net/sf/tail/indicator/volume Added Files: AccumulationDistributionIndicator.java OnBalanceVolumeIndicator.java Log Message: Mudanca nas cores das setas e mudanca de lugar do OnBalanceVolumeIndicator --- NEW FILE: OnBalanceVolumeIndicator.java --- package net.sf.tail.indicator.volume; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.cache.CachedIndicator; public class OnBalanceVolumeIndicator extends CachedIndicator<Double>{ private final TimeSeries series; public OnBalanceVolumeIndicator(TimeSeries series) { this.series = series; } @Override protected Double calculate(int index) { if(index == 0) return 0d; double yesterdayClose = series.getTick(index - 1).getClosePrice(); double todayClose = series.getTick(index).getClosePrice(); if(yesterdayClose > todayClose) return getValue(index - 1) - series.getTick(index).getVolume(); if(yesterdayClose < todayClose) return getValue(index - 1) + series.getTick(index).getVolume(); return getValue(index - 1); } @Override public String getName() { return getClass().getSimpleName(); } } --- NEW FILE: AccumulationDistributionIndicator.java --- package net.sf.tail.indicator.volume; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.cache.CachedIndicator; public class AccumulationDistributionIndicator extends CachedIndicator<Double> { private TimeSeries series; public AccumulationDistributionIndicator(TimeSeries series) { this.series = series; } @Override protected Double calculate(int index) { if(index == 0) return 0d; Tick tick = series.getTick(index); return (((tick.getClosePrice() - tick.getMinPrice()) - (tick.getMaxPrice() - tick.getClosePrice())) * tick.getVolume()) / (tick.getMaxPrice() - tick.getMinPrice()) + getValue(index -1); } @Override public String getName() { return getClass().getSimpleName(); } } |