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-08-09 15:21:54
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/test/net/sf/tail/report Modified Files: ReportGeneratorTest.java Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: ReportGeneratorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/report/ReportGeneratorTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ReportGeneratorTest.java 8 Aug 2007 22:03:27 -0000 1.12 --- ReportGeneratorTest.java 9 Aug 2007 15:21:25 -0000 1.13 *************** *** 60,64 **** try { ! timeSeries = ctsl.load(new FileInputStream("BaseBovespa/15min/ambv4.csv"), ""); } catch (FileNotFoundException e) { e.printStackTrace(); --- 60,64 ---- try { ! timeSeries = ctsl.load(new FileInputStream("BaseBovespa/15min/ambv4.csv"), "AMBV4 IntraDAY"); } catch (FileNotFoundException e) { e.printStackTrace(); *************** *** 81,86 **** System.out.println(html); ! assertTrue(html.toString().contains("1,456")); ! assertTrue(html.toString().contains("4,5")); } --- 81,86 ---- System.out.println(html); ! assertTrue(html.toString().contains("0,984")); ! assertTrue(html.toString().contains("1,022")); } *************** *** 93,97 **** System.out.println(html); ! assertTrue(html.toString().contains("1,456")); assertTrue(html.toString().contains("4,5")); } --- 93,97 ---- System.out.println(html); ! assertTrue(html.toString().contains("TotalProfitCriterion")); assertTrue(html.toString().contains("4,5")); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-09 15:21:28
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/test/net/sf/tail/analysis/evaluator Modified Files: DummyDecision.java Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: DummyDecision.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/DummyDecision.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DummyDecision.java 8 Aug 2007 17:19:50 -0000 1.3 --- DummyDecision.java 9 Aug 2007 15:21:26 -0000 1.4 *************** *** 1,5 **** --- 1,9 ---- package net.sf.tail.analysis.evaluator; + import java.util.LinkedList; + import java.util.List; + import net.sf.tail.OperationType; + import net.sf.tail.Trade; import net.sf.tail.runner.HistoryRunner; *************** *** 9,19 **** public DummyDecision(double value) { ! super(null, null, null, null, new HistoryRunner(OperationType.BUY)); this.value = value; } @Override public double evaluateCriterion() { return this.value; } } --- 13,28 ---- public DummyDecision(double value) { ! super(null, null, null, new LinkedList<Trade>(), new HistoryRunner(OperationType.BUY)); this.value = value; } + public DummyDecision(List<Trade> trades) { + super(null, null, null, trades,new HistoryRunner(OperationType.BUY)); + } + @Override public double evaluateCriterion() { return this.value; } + } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-09 15:21:28
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/java/net/sf/tail/report Modified Files: ReportGenerator.java Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: ReportGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/ReportGenerator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReportGenerator.java 7 Aug 2007 18:54:41 -0000 1.4 --- ReportGenerator.java 9 Aug 2007 15:21:25 -0000 1.5 *************** *** 3,7 **** import java.io.File; import java.io.IOException; ! import java.util.ArrayList; import java.util.HashMap; import java.util.List; --- 3,7 ---- import java.io.File; import java.io.IOException; ! import java.util.Collections; import java.util.HashMap; import java.util.List; *************** *** 9,16 **** import net.sf.tail.AnalysisCriterion; - import net.sf.tail.analysis.criteria.AverageProfitCriterion; - import net.sf.tail.analysis.criteria.MaximumDrawDownCriterion; - import net.sf.tail.analysis.criteria.RewardRiskRatioCriterion; - import net.sf.tail.analysis.criteria.TotalProfitCriterion; import freemarker.ext.beans.BeansWrapper; import freemarker.template.Configuration; --- 9,12 ---- *************** *** 20,24 **** static final String FM_TEMPLATE_DIR = "src/templates"; ! public StringBuffer generate(Report report) throws IOException { Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File(FM_TEMPLATE_DIR)); --- 16,24 ---- static final String FM_TEMPLATE_DIR = "src/templates"; ! public StringBuffer generate(Report report) throws IOException{ ! return generate(report,Collections.<AnalysisCriterion>emptyList()); ! } ! ! public StringBuffer generate(Report report,List<AnalysisCriterion> criterion) throws IOException { Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File(FM_TEMPLATE_DIR)); *************** *** 29,39 **** map.put("report", report); ! // talvez tenha de colocar outros criterions ! List<AnalysisCriterion> criterions = new ArrayList<AnalysisCriterion>(); ! criterions.add(new TotalProfitCriterion()); ! criterions.add(new AverageProfitCriterion()); ! criterions.add(new MaximumDrawDownCriterion()); ! criterions.add(new RewardRiskRatioCriterion()); ! map.put("criterions", criterions); FreemarkerProcessor processor = new FreemarkerProcessor(cfg); --- 29,35 ---- map.put("report", report); ! map.put("criterions", criterion); ! ! FreemarkerProcessor processor = new FreemarkerProcessor(cfg); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-09 15:21:27
|
Update of /cvsroot/tail/Tail/src/templates In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/templates Modified Files: report.ftl Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: report.ftl =================================================================== RCS file: /cvsroot/tail/Tail/src/templates/report.ftl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** report.ftl 8 Aug 2007 22:03:28 -0000 1.5 --- report.ftl 9 Aug 2007 15:21:26 -0000 1.6 *************** *** 9,24 **** <table> <tr> <td>Period</td> <td>Strategy Used</td> <#list criterions as criterion> <td>${criterion.class.simpleName}</td> </#list> </tr> <#list report.decisions as decision> <tr> <td>${decision.series.period}</td> <td>${decision.strategy.name}</td> ! <#list criterions as criterion> <td>${criterion.calculate(decision.series, decision.trades)}</td> --- 9,36 ---- <table> <tr> + <td></td> <td>Period</td> <td>Strategy Used</td> + <td>Applyed Criterion</td> <#list criterions as criterion> <td>${criterion.class.simpleName}</td> </#list> </tr> + <tr> + <td></td> + <td>${report.slicer.slice(0).period}</td> + <td>-</td> + <td>-</td> + <#list criterions as criterion> + <td>-</td> + </#list> + </tr> <#list report.decisions as decision> <tr> + <td></td> <td>${decision.series.period}</td> <td>${decision.strategy.name}</td> ! <td>${report.criterion.calculate(decision.series, decision.trades)}</td> <#list criterions as criterion> <td>${criterion.calculate(decision.series, decision.trades)}</td> *************** *** 26,29 **** --- 38,51 ---- </tr> </#list> + <tr> + <td>Total</td> + <td>${report.slicer.series.period}</td> + <td>-</td> + <td>${report.criterion.summarize(report.slicer.series, report.decisions)}</td> + <#list criterions as criterion> + <td>${criterion.summarize(report.slicer.series, report.decisions)}</td> + </#list> + </tr> + </table> |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-09 15:21:27
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/java/net/sf/tail/analysis/criteria Modified Files: BuyAndHoldCriterion.java MaximumDrawDownCriterion.java NumberOfTradesCriterion.java RewardRiskRatioCriterion.java TotalProfitCriterion.java VersusBuyAndHoldCriterion.java NumberOfTicksCriterion.java AverageProfitCriterion.java Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: MaximumDrawDownCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/MaximumDrawDownCriterion.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** MaximumDrawDownCriterion.java 8 Aug 2007 22:50:17 -0000 1.12 --- MaximumDrawDownCriterion.java 9 Aug 2007 15:21:25 -0000 1.13 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail.analysis.criteria; + import java.util.LinkedList; import java.util.List; *************** *** 6,9 **** --- 7,11 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.flow.CashFlow; *************** *** 29,32 **** --- 31,42 ---- return max; } + + public double summarize(TimeSeries series, List<Decision> decisions) { + List<Trade> trades = new LinkedList<Trade>(); + for (Decision decision : decisions) { + trades.addAll(decision.getTrades()); + } + return calculate(series, trades); + } } Index: RewardRiskRatioCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/RewardRiskRatioCriterion.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** RewardRiskRatioCriterion.java 26 Jul 2007 20:48:55 -0000 1.9 --- RewardRiskRatioCriterion.java 9 Aug 2007 15:21:25 -0000 1.10 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail.analysis.criteria; + import java.util.LinkedList; import java.util.List; *************** *** 6,9 **** --- 7,11 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class RewardRiskRatioCriterion implements AnalysisCriterion { *************** *** 16,18 **** --- 18,28 ---- return totalProfit.calculate(series, trades) / maxDrawnDown.calculate(series, trades); } + + public double summarize(TimeSeries series, List<Decision> decisions) { + List<Trade> trades = new LinkedList<Trade>(); + for (Decision decision : decisions) { + trades.addAll(decision.getTrades()); + } + return calculate(series, trades); + } } Index: TotalProfitCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/TotalProfitCriterion.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** TotalProfitCriterion.java 26 Jul 2007 20:48:55 -0000 1.11 --- TotalProfitCriterion.java 9 Aug 2007 15:21:25 -0000 1.12 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail.analysis.criteria; + import java.util.LinkedList; import java.util.List; *************** *** 7,10 **** --- 8,12 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class TotalProfitCriterion implements AnalysisCriterion { *************** *** 30,32 **** --- 32,42 ---- } + + public double summarize(TimeSeries series, List<Decision> decisions) { + List<Trade> trades = new LinkedList<Trade>(); + for (Decision decision : decisions) { + trades.addAll(decision.getTrades()); + } + return calculate(series, trades); + } } Index: NumberOfTradesCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/NumberOfTradesCriterion.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NumberOfTradesCriterion.java 7 Aug 2007 19:18:27 -0000 1.1 --- NumberOfTradesCriterion.java 9 Aug 2007 15:21:25 -0000 1.2 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail.analysis.criteria; + import java.util.LinkedList; import java.util.List; *************** *** 6,9 **** --- 7,11 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class NumberOfTradesCriterion implements AnalysisCriterion { *************** *** 13,16 **** --- 15,26 ---- return trades.size(); } + + public double summarize(TimeSeries series, List<Decision> decisions) { + List<Trade> trades = new LinkedList<Trade>(); + for (Decision decision : decisions) { + trades.addAll(decision.getTrades()); + } + return calculate(series, trades); + } } Index: NumberOfTicksCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/NumberOfTicksCriterion.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NumberOfTicksCriterion.java 7 Aug 2007 19:18:27 -0000 1.1 --- NumberOfTicksCriterion.java 9 Aug 2007 15:21:25 -0000 1.2 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail.analysis.criteria; + import java.util.LinkedList; import java.util.List; *************** *** 6,9 **** --- 7,11 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class NumberOfTicksCriterion implements AnalysisCriterion { *************** *** 17,19 **** --- 19,29 ---- } + + public double summarize(TimeSeries series, List<Decision> decisions) { + List<Trade> trades = new LinkedList<Trade>(); + for (Decision decision : decisions) { + trades.addAll(decision.getTrades()); + } + return calculate(series, trades); + } } Index: BuyAndHoldCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/BuyAndHoldCriterion.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BuyAndHoldCriterion.java 7 Aug 2007 18:53:23 -0000 1.1 --- BuyAndHoldCriterion.java 9 Aug 2007 15:21:25 -0000 1.2 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail.analysis.criteria; + import java.util.LinkedList; import java.util.List; *************** *** 6,9 **** --- 7,11 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class BuyAndHoldCriterion implements AnalysisCriterion { *************** *** 12,15 **** --- 14,25 ---- return series.getTick(series.getEnd()).getClosePrice() / series.getTick(series.getBegin()).getClosePrice(); } + + public double summarize(TimeSeries series, List<Decision> decisions) { + List<Trade> trades = new LinkedList<Trade>(); + for (Decision decision : decisions) { + trades.addAll(decision.getTrades()); + } + return calculate(series, trades); + } } Index: VersusBuyAndHoldCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/VersusBuyAndHoldCriterion.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VersusBuyAndHoldCriterion.java 7 Aug 2007 18:53:23 -0000 1.1 --- VersusBuyAndHoldCriterion.java 9 Aug 2007 15:21:25 -0000 1.2 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail.analysis.criteria; + import java.util.LinkedList; import java.util.List; *************** *** 6,9 **** --- 7,11 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class VersusBuyAndHoldCriterion implements AnalysisCriterion { *************** *** 16,18 **** --- 18,28 ---- return totalProfit.calculate(series, trades) / buyAndHold.calculate(series, trades); } + + public double summarize(TimeSeries series, List<Decision> decisions) { + List<Trade> trades = new LinkedList<Trade>(); + for (Decision decision : decisions) { + trades.addAll(decision.getTrades()); + } + return calculate(series, trades); + } } Index: AverageProfitCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/AverageProfitCriterion.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** AverageProfitCriterion.java 7 Aug 2007 19:18:27 -0000 1.7 --- AverageProfitCriterion.java 9 Aug 2007 15:21:25 -0000 1.8 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail.analysis.criteria; + import java.util.LinkedList; import java.util.List; *************** *** 6,9 **** --- 7,11 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class AverageProfitCriterion implements AnalysisCriterion { *************** *** 17,19 **** --- 19,29 ---- } + public double summarize(TimeSeries series, List<Decision> decisions) { + List<Trade> trades = new LinkedList<Trade>(); + for (Decision decision : decisions) { + trades.addAll(decision.getTrades()); + } + return calculate(series, trades); + } + } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-09 15:21:27
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/test/net/sf/tail Modified Files: EMAWalkTest.java Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: EMAWalkTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/EMAWalkTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** EMAWalkTest.java 8 Aug 2007 18:34:33 -0000 1.6 --- EMAWalkTest.java 9 Aug 2007 15:21:25 -0000 1.7 *************** *** 2,9 **** --- 2,14 ---- import java.io.FileInputStream; + import java.util.ArrayList; import java.util.LinkedHashSet; + import java.util.List; import java.util.Set; import net.sf.tail.analysis.SlicerByTimePeriod; + import net.sf.tail.analysis.criteria.AverageProfitCriterion; + import net.sf.tail.analysis.criteria.MaximumDrawDownCriterion; + import net.sf.tail.analysis.criteria.RewardRiskRatioCriterion; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.BestStrategyEvaluator; *************** *** 46,50 **** Report report = forward.walk(strategies, slicer, new TotalProfitCriterion()); ReportGenerator generator = new ReportGenerator(); ! StringBuffer buffer = generator.generate(report); System.out.println(buffer); } --- 51,63 ---- Report report = forward.walk(strategies, slicer, new TotalProfitCriterion()); ReportGenerator generator = new ReportGenerator(); ! ! // talvez tenha de colocar outros criterions ! List<AnalysisCriterion> criterions = new ArrayList<AnalysisCriterion>(); ! ! criterions.add(new AverageProfitCriterion()); ! criterions.add(new MaximumDrawDownCriterion()); ! criterions.add(new RewardRiskRatioCriterion()); ! ! StringBuffer buffer = generator.generate(report,criterions); System.out.println(buffer); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-09 15:21:27
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/java/net/sf/tail Modified Files: AnalysisCriterion.java DefaultTimeSeries.java Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: DefaultTimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/DefaultTimeSeries.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** DefaultTimeSeries.java 8 Aug 2007 22:03:27 -0000 1.5 --- DefaultTimeSeries.java 9 Aug 2007 15:21:25 -0000 1.6 *************** *** 44,48 **** public String getPeriod() { ! return ticks.get(0).getDate().toString("hh:mm dd/MM/yyyy - ") + ticks.get(0).getDate().toString("hh:mm dd/MM/yyyy"); } } --- 44,48 ---- public String getPeriod() { ! return ticks.get(0).getDate().toString("hh:mm dd/MM/yyyy - ") + ticks.get(this.getEnd()).getDate().toString("hh:mm dd/MM/yyyy"); } } Index: AnalysisCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/AnalysisCriterion.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AnalysisCriterion.java 26 Jul 2007 22:23:34 -0000 1.5 --- AnalysisCriterion.java 9 Aug 2007 15:21:25 -0000 1.6 *************** *** 3,6 **** --- 3,8 ---- import java.util.List; + import net.sf.tail.analysis.evaluator.Decision; + *************** *** 9,11 **** --- 11,14 ---- double calculate(TimeSeries series, List<Trade> trades); + double summarize(TimeSeries series,List<Decision> decisions); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-09 15:21:27
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/java/net/sf/tail/analysis Modified Files: SlicerByTimePeriod.java Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: SlicerByTimePeriod.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/SlicerByTimePeriod.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SlicerByTimePeriod.java 8 Aug 2007 18:50:42 -0000 1.3 --- SlicerByTimePeriod.java 9 Aug 2007 15:21:25 -0000 1.4 *************** *** 105,109 **** public String getName() { ! return this.getClass().getSimpleName() + " Period: " + period.toString(); } } --- 105,125 ---- public String getName() { ! String sPeriod = ""; ! sPeriod = periodToString(sPeriod); ! return this.getClass().getSimpleName() + " Period: " + sPeriod; ! } ! ! private String periodToString(String sPeriod) { ! if(period.getYears() > 0) ! sPeriod += period.getYears() + " year(s) ,"; ! if(period.getMonths() > 0) ! sPeriod += period.getMonths() + " month(s) ,"; ! if(period.getDays()> 0 ) ! sPeriod += period.getDays() + " day(s) ,"; ! if(period.getHours()> 0 ) ! sPeriod += period.getHours() + " day(s) ,"; ! if(period.getMinutes()> 0 ) ! sPeriod += period.getMinutes() + " day(s) ,"; ! return sPeriod.substring(0,sPeriod.length()-2); } } |
|
From: Thies <tg...@us...> - 2007-08-08 22:50:19
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/flow In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1864/src/java/net/sf/tail/flow Modified Files: CashFlow.java Log Message: Refatoração do MaximumDrawDown e CashFlow, testes para acerto dos Ãndices Index: CashFlow.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/flow/CashFlow.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CashFlow.java 8 Aug 2007 21:48:47 -0000 1.3 --- CashFlow.java 8 Aug 2007 22:50:18 -0000 1.4 *************** *** 22,32 **** public double getValue(int index) { ! int indexValue = index - timeSeries.getBegin(); ! increaseLength(indexValue); ! if(values.get(indexValue) != null) ! return values.get(indexValue); ! if(index == timeSeries.getBegin()) { values.add(0, 1d); --- 22,31 ---- public double getValue(int index) { ! increaseLength(index); ! if(values.get(index) != null) ! return values.get(index); ! if(index == 0) { values.add(0, 1d); *************** *** 34,49 **** } ! Trade trade = respectiveTrade(index); if(trade == null) { ! values.add(indexValue, getValue(index - 1)); ! return values.get(indexValue); } else { ! Double profit = timeSeries.getTick(index).getClosePrice() / timeSeries.getTick(trade.getEntry().getIndex()).getClosePrice(); ! Double value = getValue(trade.getEntry().getIndex()) * profit; ! values.add(indexValue, value); return value; } --- 33,48 ---- } ! Trade trade = respectiveTrade(index + timeSeries.getBegin()); if(trade == null) { ! values.add(index, getValue(index - 1)); ! return values.get(index); } else { ! Double profit = timeSeries.getTick(index + timeSeries.getBegin()).getClosePrice() / timeSeries.getTick(trade.getEntry().getIndex()).getClosePrice(); ! Double value = getValue(trade.getEntry().getIndex() - timeSeries.getBegin()) * profit; ! values.add(index, value); return value; } |
|
From: Thies <tg...@us...> - 2007-08-08 22:50:19
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1864/src/java/net/sf/tail/analysis/criteria Modified Files: MaximumDrawDownCriterion.java Log Message: Refatoração do MaximumDrawDown e CashFlow, testes para acerto dos Ãndices Index: MaximumDrawDownCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/MaximumDrawDownCriterion.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** MaximumDrawDownCriterion.java 8 Aug 2007 21:48:47 -0000 1.11 --- MaximumDrawDownCriterion.java 8 Aug 2007 22:50:17 -0000 1.12 *************** *** 16,20 **** CashFlow cashFlow = new CashFlow(series, trades); ! for (int i = series.getBegin(); i <= series.getEnd(); i++) { double value = cashFlow.getValue(i); if (value > maxPeak) { --- 16,20 ---- CashFlow cashFlow = new CashFlow(series, trades); ! for (int i = 0; i < series.getSize(); i++) { double value = cashFlow.getValue(i); if (value > maxPeak) { |
|
From: Thies <tg...@us...> - 2007-08-08 22:50:19
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/flow In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1864/src/test/net/sf/tail/flow Modified Files: CashFlowTest.java Log Message: Refatoração do MaximumDrawDown e CashFlow, testes para acerto dos Ãndices Index: CashFlowTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/flow/CashFlowTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CashFlowTest.java 8 Aug 2007 18:09:06 -0000 1.2 --- CashFlowTest.java 8 Aug 2007 22:50:19 -0000 1.3 *************** *** 6,9 **** --- 6,10 ---- import java.util.List; + import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Operation; import net.sf.tail.OperationType; *************** *** 63,65 **** --- 64,82 ---- } + @Test + public void testCashFlowWithConstrainedSeries() + { + SampleTimeSeries series = new SampleTimeSeries(new double[] {5d, 6d, 3d, 7d, 8d, 6d, 10d, 15d, 6d}); + ConstrainedTimeSeries constrained = new ConstrainedTimeSeries(series, 4, 9); + List<Trade> trades = new ArrayList<Trade>(); + trades.add(new Trade(new Operation(4, OperationType.BUY), new Operation(5, OperationType.SELL))); + trades.add(new Trade(new Operation(6, OperationType.BUY), new Operation(8, OperationType.SELL))); + CashFlow flow = new CashFlow(constrained, trades); + assertEquals(1d,flow.getValue(0)); + assertEquals(6d/8,flow.getValue(1), 0.00001); + assertEquals(6d/8,flow.getValue(2), 0.00001); + assertEquals(6d/8 * 15d/10,flow.getValue(3), 0.00001); + assertEquals(6d/8 * 6d/10,flow.getValue(4), 0.00001); + + } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 22:03:29
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/sample In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16582/src/test/net/sf/tail/sample Modified Files: SampleTimeSeries.java Log Message: Implementando getName em indicators e strategies Index: SampleTimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/sample/SampleTimeSeries.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** SampleTimeSeries.java 8 Aug 2007 13:46:27 -0000 1.9 --- SampleTimeSeries.java 8 Aug 2007 22:03:28 -0000 1.10 *************** *** 70,72 **** --- 70,75 ---- } + public String getPeriod() { + return ticks.get(0).getDate().toString("hh:mm dd/MM/yyyy - ") + ticks.get(0).getDate().toString("hh:mm dd/MM/yyyy"); + } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 22:03:29
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16582/src/test/net/sf/tail/report Modified Files: ReportGeneratorTest.java Log Message: Implementando getName em indicators e strategies Index: ReportGeneratorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/report/ReportGeneratorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ReportGeneratorTest.java 8 Aug 2007 18:50:42 -0000 1.11 --- ReportGeneratorTest.java 8 Aug 2007 22:03:27 -0000 1.12 *************** *** 3,19 **** --- 3,33 ---- import static org.junit.Assert.assertTrue; + import java.io.FileInputStream; + import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; + import java.util.HashSet; import java.util.List; + import java.util.Set; import net.sf.tail.Operation; import net.sf.tail.OperationType; + import net.sf.tail.Strategy; + import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.Walker; import net.sf.tail.analysis.SlicerByTimePeriod; import net.sf.tail.analysis.criteria.TotalProfitCriterion; + import net.sf.tail.analysis.evaluator.BestStrategyEvaluator; import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.walk.WalkForward; + import net.sf.tail.indicator.simple.ClosePriceIndicator; + import net.sf.tail.indicator.tracker.SMAIndicator; + import net.sf.tail.reader.CedroTimeSeriesLoader; import net.sf.tail.runner.HistoryRunner; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.strategy.FakeStrategy; + import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy; + import net.sf.tail.strategy.JustBuyOnceStrategy; import org.joda.time.Period; *************** *** 41,45 **** @Test ! public void testSimpleGenerate() throws IOException { Report report = new Report(new TotalProfitCriterion(),slicer , decisions); --- 55,91 ---- @Test ! public void testCompleteSMAGenerate() throws IOException { ! CedroTimeSeriesLoader ctsl = new CedroTimeSeriesLoader(); ! TimeSeries timeSeries = null; ! ! try { ! timeSeries = ctsl.load(new FileInputStream("BaseBovespa/15min/ambv4.csv"), ""); ! } catch (FileNotFoundException e) { ! e.printStackTrace(); ! } catch (IOException e) { ! e.printStackTrace(); ! } ! ! Walker w = new WalkForward(new BestStrategyEvaluator()); ! ! 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 r = w.walk(strategies,new SlicerByTimePeriod(timeSeries,new Period().withDays(1)),new TotalProfitCriterion()); ! ! StringBuffer html = new ReportGenerator().generate(r); ! System.out.println(html); ! ! assertTrue(html.toString().contains("1,456")); ! assertTrue(html.toString().contains("4,5")); ! } ! ! ! @Test ! public void testSMAGenerate() throws IOException { Report report = new Report(new TotalProfitCriterion(),slicer , decisions); *************** *** 50,53 **** assertTrue(html.toString().contains("4,5")); } - } --- 96,98 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 22:03:29
|
Update of /cvsroot/tail/Tail/src/templates In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16582/src/templates Modified Files: report.ftl Log Message: Implementando getName em indicators e strategies Index: report.ftl =================================================================== RCS file: /cvsroot/tail/Tail/src/templates/report.ftl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** report.ftl 8 Aug 2007 18:50:42 -0000 1.4 --- report.ftl 8 Aug 2007 22:03:28 -0000 1.5 *************** *** 9,13 **** <table> <tr> ! <td>TimeFrame</td> <td>Strategy Used</td> <#list criterions as criterion> --- 9,13 ---- <table> <tr> ! <td>Period</td> <td>Strategy Used</td> <#list criterions as criterion> *************** *** 18,23 **** <#list report.decisions as decision> <tr> ! <td>${decision.series.name}</td> ! <td>${decision.strategy}</td> <#list criterions as criterion> --- 18,23 ---- <#list report.decisions as decision> <tr> ! <td>${decision.series.period}</td> ! <td>${decision.strategy.name}</td> <#list criterions as criterion> |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 22:03:29
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16582/src/test/net/sf/tail/strategy Modified Files: FakeStrategy.java Log Message: Implementando getName em indicators e strategies Index: FakeStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/FakeStrategy.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FakeStrategy.java 14 Jun 2007 20:48:01 -0000 1.2 --- FakeStrategy.java 8 Aug 2007 22:03:28 -0000 1.3 *************** *** 24,27 **** --- 24,33 ---- return false; } + + public String getName(){ + return "Fake Strategy"; + } + + } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 22:03:29
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16582/src/java/net/sf/tail/strategy Modified Files: MinValueStarterStrategy.java AlwaysOperateStrategy.java DistanceBetweenIndicatorsStrategy.java IndicatorOverIndicatorStrategy.java ResistanceStrategy.java SupportStrategy.java PipeEnterStrategy.java MinValueStopperStrategy.java JustBuyOnceStrategy.java IndicatorCrossedIndicatorStrategy.java Log Message: Implementando getName em indicators e strategies Index: PipeEnterStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/PipeEnterStrategy.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PipeEnterStrategy.java 14 Jun 2007 20:48:01 -0000 1.6 --- PipeEnterStrategy.java 8 Aug 2007 22:03:28 -0000 1.7 *************** *** 45,48 **** --- 45,53 ---- return false; } + + public String getName(){ + return String.format("%s upper: %s lower: %s",this.getClass().getSimpleName(), crossUp.getName(), crossDown.getName()); + } + } Index: AlwaysOperateStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/AlwaysOperateStrategy.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AlwaysOperateStrategy.java 14 Jun 2007 20:48:01 -0000 1.3 --- AlwaysOperateStrategy.java 8 Aug 2007 22:03:28 -0000 1.4 *************** *** 14,16 **** --- 14,22 ---- return trade.exit(index); } + + + public String getName(){ + return this.getClass().getSimpleName(); + + } } Index: IndicatorOverIndicatorStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/IndicatorOverIndicatorStrategy.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** IndicatorOverIndicatorStrategy.java 14 Jun 2007 20:48:01 -0000 1.5 --- IndicatorOverIndicatorStrategy.java 8 Aug 2007 22:03:28 -0000 1.6 *************** *** 30,32 **** --- 30,37 ---- return false; } + + public String getName(){ + return String.format("%s upper: %s lower: %s",this.getClass().getSimpleName(), first.getName(), second.getName()); + } + } Index: DistanceBetweenIndicatorsStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/DistanceBetweenIndicatorsStrategy.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** DistanceBetweenIndicatorsStrategy.java 14 Jun 2007 20:48:01 -0000 1.5 --- DistanceBetweenIndicatorsStrategy.java 8 Aug 2007 22:03:28 -0000 1.6 *************** *** 49,51 **** --- 49,56 ---- return false; } + + + public String getName(){ + return String.format("%s upper: %s lower: %s",this.getClass().getSimpleName(), upper.getName(), lower.getName()); + } } Index: MinValueStarterStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/MinValueStarterStrategy.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** MinValueStarterStrategy.java 14 Jun 2007 20:48:01 -0000 1.7 --- MinValueStarterStrategy.java 8 Aug 2007 22:03:28 -0000 1.8 *************** *** 37,39 **** --- 37,42 ---- } + public String getName(){ + return String.format("%s start: %i",this.getClass().getSimpleName(), start); + } } Index: JustBuyOnceStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/JustBuyOnceStrategy.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** JustBuyOnceStrategy.java 14 Jun 2007 20:48:01 -0000 1.4 --- JustBuyOnceStrategy.java 8 Aug 2007 22:03:28 -0000 1.5 *************** *** 14,16 **** --- 14,22 ---- return false; } + + public String getName(){ + return this.getClass().getSimpleName(); + } + + } Index: ResistanceStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/ResistanceStrategy.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ResistanceStrategy.java 14 Jun 2007 20:48:01 -0000 1.6 --- ResistanceStrategy.java 8 Aug 2007 22:03:28 -0000 1.7 *************** *** 38,40 **** --- 38,46 ---- return strategy.shouldOperate(trade, index); } + + public String getName(){ + return String.format("%s resistance: %i strategy: %s",this.getClass().getSimpleName(), resistance ,strategy.getName()); + } + + } Index: SupportStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/SupportStrategy.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SupportStrategy.java 14 Jun 2007 20:48:01 -0000 1.6 --- SupportStrategy.java 8 Aug 2007 22:03:28 -0000 1.7 *************** *** 37,39 **** --- 37,43 ---- return strategy.shouldOperate(trade, index); } + + public String getName(){ + return String.format("%s suport: %i strategy: %s",this.getClass().getSimpleName(), support, strategy.getName()); + } } Index: MinValueStopperStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/MinValueStopperStrategy.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MinValueStopperStrategy.java 14 Jun 2007 20:48:01 -0000 1.4 --- MinValueStopperStrategy.java 8 Aug 2007 22:03:28 -0000 1.5 *************** *** 43,45 **** --- 43,48 ---- } + public String getName(){ + return String.format("%s stoper: %i",this.getClass().getSimpleName(), loss); + } } Index: IndicatorCrossedIndicatorStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/IndicatorCrossedIndicatorStrategy.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** IndicatorCrossedIndicatorStrategy.java 7 Aug 2007 19:45:37 -0000 1.7 --- IndicatorCrossedIndicatorStrategy.java 8 Aug 2007 22:03:28 -0000 1.8 *************** *** 48,54 **** } ! @Override ! public String toString() { ! return String.format("[Cross %s over %s]", upper.getName(), lower.getName()); } } --- 48,54 ---- } ! public String getName(){ ! return String.format("Cross %s over %s", upper.getName(), lower.getName()); ! } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 22:03:29
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16582/src/java/net/sf/tail/report Modified Files: Report.java Log Message: Implementando getName em indicators e strategies Index: Report.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/Report.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Report.java 7 Aug 2007 18:34:46 -0000 1.4 --- Report.java 8 Aug 2007 22:03:28 -0000 1.5 *************** *** 19,22 **** --- 19,24 ---- this.decisions = decisions; this.slicer = slicer; + + } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 22:03:29
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16582/src/java/net/sf/tail Modified Files: TimeSeries.java ConstrainedTimeSeries.java DefaultTimeSeries.java Strategy.java Log Message: Implementando getName em indicators e strategies Index: ConstrainedTimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/ConstrainedTimeSeries.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ConstrainedTimeSeries.java 7 Aug 2007 17:34:44 -0000 1.5 --- ConstrainedTimeSeries.java 8 Aug 2007 22:03:27 -0000 1.6 *************** *** 44,46 **** --- 44,50 ---- return "Constrained for: " + series.getName(); } + + public String getPeriod() { + return series.getTick(begin).getDate().toString("hh:mm dd/MM/yyyy - ") + series.getTick(end).getDate().toString("hh:mm dd/MM/yyyy"); + } } Index: DefaultTimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/DefaultTimeSeries.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DefaultTimeSeries.java 7 Aug 2007 17:34:44 -0000 1.4 --- DefaultTimeSeries.java 8 Aug 2007 22:03:27 -0000 1.5 *************** *** 42,44 **** --- 42,48 ---- return getSize() - 1; } + + public String getPeriod() { + return ticks.get(0).getDate().toString("hh:mm dd/MM/yyyy - ") + ticks.get(0).getDate().toString("hh:mm dd/MM/yyyy"); + } } Index: TimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/TimeSeries.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** TimeSeries.java 7 Aug 2007 17:34:44 -0000 1.7 --- TimeSeries.java 8 Aug 2007 22:03:27 -0000 1.8 *************** *** 18,21 **** String getName(); ! } --- 18,22 ---- String getName(); ! ! String getPeriod(); } Index: Strategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/Strategy.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Strategy.java 10 Jun 2007 21:07:30 -0000 1.5 --- Strategy.java 8 Aug 2007 22:03:27 -0000 1.6 *************** *** 18,20 **** --- 18,21 ---- public boolean shouldOperate(Trade trade, int index); + String getName(); } |
|
From: Thies <tg...@us...> - 2007-08-08 21:48:46
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/flow In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10088/src/java/net/sf/tail/flow Modified Files: CashFlow.java Log Message: MaximumDrawDown e CashFlow acertados para utilizar o getBegin() e getEnd() do timeSeries Index: CashFlow.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/flow/CashFlow.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CashFlow.java 21 Jul 2007 15:13:46 -0000 1.2 --- CashFlow.java 8 Aug 2007 21:48:47 -0000 1.3 *************** *** 22,31 **** public double getValue(int index) { ! increaseLength(index); ! if(values.get(index) != null) ! return values.get(index); ! if(index == 0) { values.add(0, 1d); --- 22,32 ---- public double getValue(int index) { ! int indexValue = index - timeSeries.getBegin(); ! increaseLength(indexValue); ! if(values.get(indexValue) != null) ! return values.get(indexValue); ! if(index == timeSeries.getBegin()) { values.add(0, 1d); *************** *** 36,41 **** if(trade == null) { ! values.add(index, getValue(index - 1)); ! return values.get(index); } else --- 37,42 ---- if(trade == null) { ! values.add(indexValue, getValue(index - 1)); ! return values.get(indexValue); } else *************** *** 44,48 **** Double value = getValue(trade.getEntry().getIndex()) * profit; ! values.add(index, value); return value; } --- 45,49 ---- Double value = getValue(trade.getEntry().getIndex()) * profit; ! values.add(indexValue, value); return value; } *************** *** 69,75 **** --- 70,83 ---- } } + // for (int i = 0; i < timeSeries.getSize(); i++) { + // while (trades.get(i).getExit().getIndex() >= i) { + // if(trades.get(i).getEntry().getIndex() <= i) + // return trades.get(i); + // } + // } return null; } + private void increaseLength(int index) { if (values.size() <= index) { |
|
From: Thies <tg...@us...> - 2007-08-08 21:48:46
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10088/src/java/net/sf/tail/analysis/criteria Modified Files: MaximumDrawDownCriterion.java Log Message: MaximumDrawDown e CashFlow acertados para utilizar o getBegin() e getEnd() do timeSeries Index: MaximumDrawDownCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/MaximumDrawDownCriterion.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** MaximumDrawDownCriterion.java 26 Jul 2007 20:48:55 -0000 1.10 --- MaximumDrawDownCriterion.java 8 Aug 2007 21:48:47 -0000 1.11 *************** *** 16,20 **** CashFlow cashFlow = new CashFlow(series, trades); ! for (int i = 0; i < cashFlow.getSize(); i++) { double value = cashFlow.getValue(i); if (value > maxPeak) { --- 16,20 ---- CashFlow cashFlow = new CashFlow(series, trades); ! for (int i = series.getBegin(); i <= series.getEnd(); i++) { double value = cashFlow.getValue(i); if (value > maxPeak) { |
|
From: Thies <tg...@us...> - 2007-08-08 19:56:20
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28009/src/java/net/sf/tail/reader Modified Files: CedroTimeSeriesLoader.java Log Message: Refatoração da leitura de data Index: CedroTimeSeriesLoader.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/reader/CedroTimeSeriesLoader.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** CedroTimeSeriesLoader.java 8 Aug 2007 18:53:05 -0000 1.13 --- CedroTimeSeriesLoader.java 8 Aug 2007 19:56:19 -0000 1.14 *************** *** 4,8 **** --- 4,11 ---- import java.io.InputStream; import java.nio.charset.Charset; + import java.text.ParseException; + import java.text.SimpleDateFormat; import java.util.ArrayList; + import java.util.Date; import java.util.List; *************** *** 13,18 **** import org.apache.log4j.Logger; import org.joda.time.DateTime; - import org.joda.time.format.DateTimeFormat; - import org.joda.time.format.DateTimeFormatter; import com.csvreader.CsvReader; --- 16,19 ---- *************** *** 30,43 **** while (reader.readRecord()) { ! DateTimeFormatter dateTimeFormart; if (reader.get(0).length() > 10) ! dateTimeFormart = DateTimeFormat.forPattern("D/M/yyyy HH:mm:ss"); else ! dateTimeFormart = DateTimeFormat.forPattern("D/M/yyyy"); ! ! DateTime date = null; ! ! date = dateTimeFormart.parseDateTime(reader.get(0)); double open = java.lang.Double.parseDouble(reader.get(1)); --- 31,49 ---- 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)); |
|
From: Thies <tg...@us...> - 2007-08-08 18:53:04
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1007/src/java/net/sf/tail/reader Modified Files: CedroTimeSeriesLoader.java Log Message: Refatoração Index: CedroTimeSeriesLoader.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/reader/CedroTimeSeriesLoader.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** CedroTimeSeriesLoader.java 7 Aug 2007 17:34:45 -0000 1.12 --- CedroTimeSeriesLoader.java 8 Aug 2007 18:53:05 -0000 1.13 *************** *** 33,39 **** if (reader.get(0).length() > 10) ! dateTimeFormart = DateTimeFormat.forPattern("dd/M/yyyy HH:mm:ss"); else ! dateTimeFormart = DateTimeFormat.forPattern("dd/M/yyyy"); DateTime date = null; --- 33,39 ---- if (reader.get(0).length() > 10) ! dateTimeFormart = DateTimeFormat.forPattern("D/M/yyyy HH:mm:ss"); else ! dateTimeFormart = DateTimeFormat.forPattern("D/M/yyyy"); DateTime date = null; |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 18:50:43
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv32544/src/test/net/sf/tail/report Modified Files: ReportGeneratorTest.java Log Message: refatoração do report Index: ReportGeneratorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/report/ReportGeneratorTest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ReportGeneratorTest.java 8 Aug 2007 18:34:33 -0000 1.10 --- ReportGeneratorTest.java 8 Aug 2007 18:50:42 -0000 1.11 *************** *** 10,13 **** --- 10,14 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.SlicerByTimePeriod; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; *************** *** 16,19 **** --- 17,21 ---- import net.sf.tail.strategy.FakeStrategy; + import org.joda.time.Period; import org.junit.Before; import org.junit.Test; *************** *** 22,29 **** private List<Decision> decisions; @Before public void setUp() throws Exception { ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); List<Trade> trades = new ArrayList<Trade>(); trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); --- 24,32 ---- private List<Decision> decisions; + private SlicerByTimePeriod slicer; @Before public void setUp() throws Exception { ! SampleTimeSeries series = new SampleTimeSeries(); List<Trade> trades = new ArrayList<Trade>(); trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); *************** *** 34,38 **** new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); ! } --- 37,41 ---- new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); ! slicer = new SlicerByTimePeriod(series,new Period().withYears(1)); } *************** *** 40,49 **** public void testSimpleGenerate() throws IOException { ! Report report = new Report(new TotalProfitCriterion(), null, decisions); StringBuffer html = new ReportGenerator().generate(report); System.out.println(html); ! assertTrue(html.toString().contains("1,155")); ! assertTrue(html.toString().contains("1,037")); } --- 43,52 ---- public void testSimpleGenerate() throws IOException { ! Report report = new Report(new TotalProfitCriterion(),slicer , decisions); StringBuffer html = new ReportGenerator().generate(report); System.out.println(html); ! assertTrue(html.toString().contains("1,456")); ! assertTrue(html.toString().contains("4,5")); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 18:50:43
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv32544/src/java/net/sf/tail/analysis Modified Files: SlicerByTimePeriod.java Log Message: refatoração do report Index: SlicerByTimePeriod.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/SlicerByTimePeriod.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SlicerByTimePeriod.java 5 Aug 2007 15:07:48 -0000 1.2 --- SlicerByTimePeriod.java 8 Aug 2007 18:50:42 -0000 1.3 *************** *** 103,105 **** --- 103,109 ---- return series; } + + public String getName() { + return this.getClass().getSimpleName() + " Period: " + period.toString(); + } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-08 18:50:43
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv32544/src/java/net/sf/tail Modified Files: TimeSeriesSlicer.java Log Message: refatoração do report Index: TimeSeriesSlicer.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/TimeSeriesSlicer.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TimeSeriesSlicer.java 5 Aug 2007 15:07:49 -0000 1.2 --- TimeSeriesSlicer.java 8 Aug 2007 18:50:42 -0000 1.3 *************** *** 8,11 **** TimeSeries getSeries(); TimeSeries getBiggerSlice(int position, int numberOfPeriodsOfTheSlice); ! } \ No newline at end of file --- 8,11 ---- TimeSeries getSeries(); TimeSeries getBiggerSlice(int position, int numberOfPeriodsOfTheSlice); ! String getName(); } \ No newline at end of file |