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-07-26 21:25:33
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/runner In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11918/src/java/net/sf/tail/runner Modified Files: HistoryRunner.java Log Message: testes do splitter e refatoração do runner Index: HistoryRunner.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/runner/HistoryRunner.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** HistoryRunner.java 7 Jul 2007 18:45:23 -0000 1.9 --- HistoryRunner.java 26 Jul 2007 21:25:22 -0000 1.10 *************** *** 27,31 **** List<Trade> trades = new ArrayList<Trade>(); Trade lastTrade = new Trade(operationType); ! for (int i = Math.max(start, 0); i < end; i++) { if (strategy.shouldOperate(lastTrade, i) && lastTrade.isClosed()) { trades.add(lastTrade); --- 27,31 ---- List<Trade> trades = new ArrayList<Trade>(); Trade lastTrade = new Trade(operationType); ! for (int i = Math.max(start, 0); i <= end; i++) { if (strategy.shouldOperate(lastTrade, i) && lastTrade.isClosed()) { trades.add(lastTrade); *************** *** 35,39 **** } if (lastTrade.isOpened()) { ! if (lastTrade.exit(end - 1)) { LOG.debug("new trade for closing time: " + lastTrade); trades.add(lastTrade); --- 35,39 ---- } if (lastTrade.isOpened()) { ! if (lastTrade.exit(end)) { LOG.debug("new trade for closing time: " + lastTrade); trades.add(lastTrade); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 21:25:33
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/runner In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11918/src/test/net/sf/tail/runner Modified Files: HistoryRunnerTest.java Log Message: testes do splitter e refatoração do runner Index: HistoryRunnerTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/runner/HistoryRunnerTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** HistoryRunnerTest.java 7 Jul 2007 18:45:23 -0000 1.8 --- HistoryRunnerTest.java 26 Jul 2007 21:25:22 -0000 1.9 *************** *** 66,70 **** Strategy strategy = new FakeStrategy(enter, exit); HistoryRunner historyRunner = new HistoryRunner(OperationType.BUY); ! List<Trade> trades = historyRunner.run(strategy, 0, 4); assertEquals(1, trades.size()); --- 66,70 ---- Strategy strategy = new FakeStrategy(enter, exit); HistoryRunner historyRunner = new HistoryRunner(OperationType.BUY); ! List<Trade> trades = historyRunner.run(strategy, 0, 3); assertEquals(1, trades.size()); *************** *** 80,84 **** Strategy strategy = new FakeStrategy(enter, exit); HistoryRunner historyRunner = new HistoryRunner(OperationType.SELL); ! List<Trade> trades = historyRunner.run(strategy, 0, 4); assertEquals(1, trades.size()); --- 80,84 ---- Strategy strategy = new FakeStrategy(enter, exit); HistoryRunner historyRunner = new HistoryRunner(OperationType.SELL); ! List<Trade> trades = historyRunner.run(strategy, 0, 3); assertEquals(1, trades.size()); *************** *** 133,137 **** HistoryRunner historyRunner = new HistoryRunner(OperationType.BUY); List<Trade> trades = historyRunner.run(this.strategy, 0, 3); ! assertEquals(0, trades.size()); trades = historyRunner.run(this.strategy, 3, 6); --- 133,137 ---- HistoryRunner historyRunner = new HistoryRunner(OperationType.BUY); List<Trade> trades = historyRunner.run(this.strategy, 0, 3); ! assertEquals(1, trades.size()); trades = historyRunner.run(this.strategy, 3, 6); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 21:25:33
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/splitter In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11918/src/java/net/sf/tail/analysis/splitter Added Files: MemoraizedSplitter.java RegularSplitter.java Log Message: testes do splitter e refatoração do runner --- NEW FILE: RegularSplitter.java --- package net.sf.tail.analysis.splitter; import java.util.ArrayList; import java.util.List; import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Splitter; import net.sf.tail.TimeSeries; public class RegularSplitter implements Splitter { public List<ConstrainedTimeSeries> split(TimeSeries series, int interval) { List<ConstrainedTimeSeries> constrainedSeries = new ArrayList<ConstrainedTimeSeries>(); int start = 0; for(int i = start; i < series.getSize(); i = i + interval) { ConstrainedTimeSeries constrainedTimeSerie = new ConstrainedTimeSeries(series, i, Math.min(interval, series.getSize() - i)); constrainedSeries.add(constrainedTimeSerie); } return constrainedSeries; } } --- NEW FILE: MemoraizedSplitter.java --- package net.sf.tail.analysis.splitter; import java.util.List; import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Splitter; import net.sf.tail.TimeSeries; public class MemoraizedSplitter implements Splitter { public List<ConstrainedTimeSeries> split(TimeSeries series, int interval) { // TODO Auto-generated method stub return null; } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 21:25:33
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11918/src/java/net/sf/tail/analysis/evaluator Modified Files: Decision.java Log Message: testes do splitter e refatoração do runner Index: Decision.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator/Decision.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Decision.java 26 Jul 2007 19:33:29 -0000 1.1 --- Decision.java 26 Jul 2007 21:25:21 -0000 1.2 *************** *** 29,34 **** public double evaluateCriterion() { ! List<Trade> trades = runner.run(strategy, constrainedSerie.getBegin(), constrainedSerie.getBegin() ! + constrainedSerie.getSize()); return criterion.calculate(constrainedSerie, trades); } --- 29,33 ---- public double evaluateCriterion() { ! List<Trade> trades = runner.run(strategy, constrainedSerie.getBegin(), constrainedSerie.getEnd()); return criterion.calculate(constrainedSerie, trades); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 21:25:33
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11918/src/java/net/sf/tail/analysis/walk Modified Files: WalkForward.java Log Message: testes do splitter e refatoração do runner Index: WalkForward.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk/WalkForward.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** WalkForward.java 26 Jul 2007 20:26:19 -0000 1.8 --- WalkForward.java 26 Jul 2007 21:25:21 -0000 1.9 *************** *** 8,15 **** import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Evaluator; import net.sf.tail.Strategy; import net.sf.tail.TimeSeries; - import net.sf.tail.TimeSeriesSplitter; import net.sf.tail.analysis.evaluator.Decision; import org.apache.log4j.Logger; --- 8,16 ---- import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Evaluator; + import net.sf.tail.Splitter; import net.sf.tail.Strategy; import net.sf.tail.TimeSeries; import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.splitter.RegularSplitter; import org.apache.log4j.Logger; *************** *** 31,35 **** ! TimeSeriesSplitter splitter = new TimeSeriesSplitter(); List<ConstrainedTimeSeries> constrainedSeries = splitter.split(series, interval); --- 32,36 ---- ! Splitter splitter = new RegularSplitter(); List<ConstrainedTimeSeries> constrainedSeries = splitter.split(series, interval); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 21:25:15
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/splitter In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11895/src/test/net/sf/tail/analysis/splitter Log Message: Directory /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/splitter added to the repository |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 21:25:15
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/splitter In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11895/src/java/net/sf/tail/analysis/splitter Log Message: Directory /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/splitter added to the repository |
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28642/src/test/net/sf/tail/analysis/criteria Modified Files: AverageProfitCriterionTest.java RewardRiskRatioCriterionTest.java TotalProfitCriterionTest.java MaximumDrawDownCriterionTest.java Log Message: Retirado o método isBetter Index: TotalProfitCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/TotalProfitCriterionTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TotalProfitCriterionTest.java 26 Jul 2007 19:33:29 -0000 1.5 --- TotalProfitCriterionTest.java 26 Jul 2007 20:48:55 -0000 1.6 *************** *** 2,6 **** import static org.junit.Assert.assertEquals; - import static org.junit.Assert.assertTrue; import java.util.ArrayList; --- 2,5 ---- *************** *** 11,16 **** import net.sf.tail.OperationType; import net.sf.tail.Trade; - import net.sf.tail.analysis.evaluator.Decision; - import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; --- 10,13 ---- *************** *** 60,83 **** assertEquals(1d, profit.calculate(series, trades)); } - - @Test - public void testIsBetter(){ - AnalysisCriterion criterion = new TotalProfitCriterion(); - List<Decision> list1 = new ArrayList<Decision>(); - List<Decision> list2 = new ArrayList<Decision>(); - - list1.add(new DummyDecision(1.3d)); - list1.add(new DummyDecision(1.5d)); - list1.add(new DummyDecision(1.3d)); - list1.add(new DummyDecision(1.3d)); - list1.add(new DummyDecision(1.3d)); - list2.add(new DummyDecision(1.4d)); - list2.add(new DummyDecision(1.2d)); - list2.add(new DummyDecision(1.3d)); - list2.add(new DummyDecision(1.4d)); - list2.add(new DummyDecision(1.3d)); - - assertTrue(criterion.isBetter(list1, list2)); - } } --- 57,60 ---- Index: RewardRiskRatioCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/RewardRiskRatioCriterionTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** RewardRiskRatioCriterionTest.java 26 Jul 2007 19:33:29 -0000 1.8 --- RewardRiskRatioCriterionTest.java 26 Jul 2007 20:48:55 -0000 1.9 *************** *** 7,16 **** import java.util.List; - import net.sf.tail.AnalysisCriterion; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Trade; - import net.sf.tail.analysis.evaluator.Decision; - import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; --- 7,13 ---- *************** *** 63,86 **** } - @Test - public void testIsBetter(){ - AnalysisCriterion criterion = new RewardRiskRatioCriterion(); - List<Decision> list1 = new ArrayList<Decision>(); - List<Decision> list2 = new ArrayList<Decision>(); - - list1.add(new DummyDecision(5.1d)); - list1.add(new DummyDecision(6.2d)); - list1.add(new DummyDecision(7.3d)); - list1.add(new DummyDecision(8.4d)); - list1.add(new DummyDecision(11.5d)); - list2.add(new DummyDecision(7.0d)); - list2.add(new DummyDecision(4.1d)); - list2.add(new DummyDecision(6.2d)); - list2.add(new DummyDecision(8.3d)); - list2.add(new DummyDecision(10.4d)); - - assertTrue(criterion.isBetter(list1, list2)); - } } --- 60,64 ---- Index: MaximumDrawDownCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/MaximumDrawDownCriterionTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MaximumDrawDownCriterionTest.java 26 Jul 2007 19:33:29 -0000 1.5 --- MaximumDrawDownCriterionTest.java 26 Jul 2007 20:48:55 -0000 1.6 *************** *** 2,16 **** import static org.junit.Assert.assertEquals; - import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; - import net.sf.tail.AnalysisCriterion; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Trade; - import net.sf.tail.analysis.evaluator.Decision; - import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; --- 2,12 ---- *************** *** 73,96 **** assertEquals(0.5d, mdd.calculate(series, trades)); } ! ! @Test ! public void testIsBetter(){ ! AnalysisCriterion criterion = new MaximumDrawDownCriterion(); ! List<Decision> list1 = new ArrayList<Decision>(); ! List<Decision> list2 = new ArrayList<Decision>(); ! ! list1.add(new DummyDecision(5.1d)); ! list1.add(new DummyDecision(6.2d)); ! list1.add(new DummyDecision(7.3d)); ! list1.add(new DummyDecision(8.4d)); ! list1.add(new DummyDecision(9.5d)); ! ! list2.add(new DummyDecision(7.0d)); ! list2.add(new DummyDecision(4.1d)); ! list2.add(new DummyDecision(6.2d)); ! list2.add(new DummyDecision(9.3d)); ! list2.add(new DummyDecision(10.4d)); ! ! assertTrue(criterion.isBetter(list1, list2)); ! } ! } --- 69,71 ---- assertEquals(0.5d, mdd.calculate(series, trades)); } ! } \ No newline at end of file Index: AverageProfitCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/AverageProfitCriterionTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AverageProfitCriterionTest.java 26 Jul 2007 19:33:29 -0000 1.5 --- AverageProfitCriterionTest.java 26 Jul 2007 20:48:55 -0000 1.6 *************** *** 2,6 **** import static org.junit.Assert.assertEquals; - import static org.junit.Assert.assertTrue; import java.util.ArrayList; --- 2,5 ---- *************** *** 11,16 **** import net.sf.tail.OperationType; import net.sf.tail.Trade; - import net.sf.tail.analysis.evaluator.Decision; - import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; --- 10,13 ---- *************** *** 55,78 **** } - @Test - public void testIsBetter(){ - AnalysisCriterion criterion = new AverageProfitCriterion(); - List<Decision> list1 = new ArrayList<Decision>(); - List<Decision> list2 = new ArrayList<Decision>(); - - list1.add(new DummyDecision(1.4d)); - list1.add(new DummyDecision(1.2d)); - list1.add(new DummyDecision(1.3d)); - list1.add(new DummyDecision(1.4d)); - list1.add(new DummyDecision(1.3d)); - - list2.add(new DummyDecision(1.3d)); - list2.add(new DummyDecision(1.3d)); - list2.add(new DummyDecision(1.3d)); - list2.add(new DummyDecision(1.3d)); - list2.add(new DummyDecision(1.3d)); - - assertTrue(criterion.isBetter(list1, list2)); - } - } --- 52,54 ---- |
|
From: Thies <tg...@us...> - 2007-07-26 20:48:55
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28642/src/java/net/sf/tail/analysis/criteria Modified Files: TotalProfitCriterion.java MaximumDrawDownCriterion.java RewardRiskRatioCriterion.java AverageProfitCriterion.java Log Message: Retirado o método isBetter Index: TotalProfitCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/TotalProfitCriterion.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** TotalProfitCriterion.java 26 Jul 2007 19:33:29 -0000 1.10 --- TotalProfitCriterion.java 26 Jul 2007 20:48:55 -0000 1.11 *************** *** 7,11 **** import net.sf.tail.TimeSeries; import net.sf.tail.Trade; - import net.sf.tail.analysis.evaluator.Decision; public class TotalProfitCriterion implements AnalysisCriterion { --- 7,10 ---- *************** *** 31,46 **** } - - public boolean isBetter(List<Decision> first, List<Decision> second) { - double firstProduct = 1, secondProduct = 1; - - for (int i = 0; i < first.size(); i++) - { - firstProduct *= first.get(i).evaluateCriterion(); - secondProduct *= second.get(i).evaluateCriterion(); - } - - return (firstProduct > secondProduct); - } - } --- 30,32 ---- Index: MaximumDrawDownCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/MaximumDrawDownCriterion.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** MaximumDrawDownCriterion.java 26 Jul 2007 19:33:29 -0000 1.9 --- MaximumDrawDownCriterion.java 26 Jul 2007 20:48:55 -0000 1.10 *************** *** 6,10 **** import net.sf.tail.TimeSeries; import net.sf.tail.Trade; - import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.flow.CashFlow; --- 6,9 ---- *************** *** 31,44 **** } - public boolean isBetter(List<Decision> first, List<Decision> second) { - double firstSum = 0, secondSum = 0; - - for (int i = 0; i < first.size(); i++) - { - firstSum += first.get(i).evaluateCriterion(); - secondSum += second.get(i).evaluateCriterion(); - } - - return (firstSum < secondSum); - } } --- 30,32 ---- Index: RewardRiskRatioCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/RewardRiskRatioCriterion.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** RewardRiskRatioCriterion.java 26 Jul 2007 19:33:29 -0000 1.8 --- RewardRiskRatioCriterion.java 26 Jul 2007 20:48:55 -0000 1.9 *************** *** 6,10 **** import net.sf.tail.TimeSeries; import net.sf.tail.Trade; - import net.sf.tail.analysis.evaluator.Decision; public class RewardRiskRatioCriterion implements AnalysisCriterion { --- 6,9 ---- *************** *** 17,32 **** return totalProfit.calculate(series, trades) / maxDrawnDown.calculate(series, trades); } - - public boolean isBetter(List<Decision> first, List<Decision> second) { - double firstSum = 0, secondSum = 0; - - for (int i = 0; i < first.size(); i++) - { - firstSum += first.get(i).evaluateCriterion(); - secondSum += second.get(i).evaluateCriterion(); - } - - return (firstSum > secondSum); - } - } --- 16,18 ---- Index: AverageProfitCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/AverageProfitCriterion.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AverageProfitCriterion.java 26 Jul 2007 19:33:29 -0000 1.5 --- AverageProfitCriterion.java 26 Jul 2007 20:48:55 -0000 1.6 *************** *** 6,10 **** import net.sf.tail.TimeSeries; import net.sf.tail.Trade; - import net.sf.tail.analysis.evaluator.Decision; public class AverageProfitCriterion implements AnalysisCriterion { --- 6,9 ---- *************** *** 19,32 **** } - public boolean isBetter(List<Decision> first, List<Decision> second) { - double firstSum = 0, secondSum = 0; - - for (int i = 0; i < first.size(); i++) - { - firstSum += first.get(i).evaluateCriterion(); - secondSum += second.get(i).evaluateCriterion(); - } - - return (firstSum > secondSum); - } } --- 18,20 ---- |
|
From: Thies <tg...@us...> - 2007-07-26 20:48:55
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28642/src/java/net/sf/tail Modified Files: AnalysisCriterion.java Log Message: Retirado o método isBetter Index: AnalysisCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/AnalysisCriterion.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AnalysisCriterion.java 26 Jul 2007 19:33:29 -0000 1.3 --- AnalysisCriterion.java 26 Jul 2007 20:48:55 -0000 1.4 *************** *** 10,14 **** double calculate(TimeSeries series, List<Trade> trades); - boolean isBetter(List<Decision> first, List<Decision> second); } --- 10,13 ---- |
|
From: Thies <tg...@us...> - 2007-07-26 20:33:57
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv22319/src/test/net/sf/tail/analysis/evaluator Added Files: DecisionTest.java Log Message: Teste da classe Decision --- NEW FILE: DecisionTest.java --- package net.sf.tail.analysis.evaluator; import static org.junit.Assert.assertEquals; import net.sf.tail.AnalysisCriterion; import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import net.sf.tail.TimeSeries; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.strategy.FakeStrategy; import org.junit.Test; public class DecisionTest { @Test public void testDecisionWithNoValues() { TimeSeries sample = new SampleTimeSeries(new double[] {}); ConstrainedTimeSeries constrained = new ConstrainedTimeSeries(sample, 0, sample.getSize()); Operation[] buy = new Operation[0]; Operation[] sell = new Operation[0]; Strategy fakeStrategy = new FakeStrategy(buy, sell); AnalysisCriterion criteria = new TotalProfitCriterion(); Decision decision = new Decision(fakeStrategy, constrained, criteria); assertEquals(1d, decision.evaluateCriterion()); } @Test public void testEvaluateCriterion() { TimeSeries sample = new SampleTimeSeries(new double[] {3d, 5d, 7d, 9d}); ConstrainedTimeSeries constrained = new ConstrainedTimeSeries(sample, 0, sample.getSize()); Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, new Operation(2, OperationType.BUY), null }; Operation[] sell = new Operation[] { null, new Operation(1, OperationType.SELL), null, new Operation(3, OperationType.SELL), }; Strategy fakeStrategy = new FakeStrategy(buy, sell); AnalysisCriterion criteria = new TotalProfitCriterion(); Decision decision = new Decision(fakeStrategy, constrained, criteria); assertEquals(45d/21, decision.evaluateCriterion(), 0.001); } @Test public void testEvaluateCriterionNotSelling() { TimeSeries sample = new SampleTimeSeries(new double[] {3d, 1d, 7d, 9d}); ConstrainedTimeSeries constrained = new ConstrainedTimeSeries(sample, 0, sample.getSize()); Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, new Operation(2, OperationType.BUY), null }; Operation[] sell = new Operation[] { null, null, null, null }; Strategy fakeStrategy = new FakeStrategy(buy, sell); AnalysisCriterion criteria = new TotalProfitCriterion(); Decision decision = new Decision(fakeStrategy, constrained, criteria); assertEquals(3d, decision.evaluateCriterion(), 0.0001); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 20:26:21
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv19257/src/java/net/sf/tail/analysis/evaluator Modified Files: BestStrategyEvaluator.java Log Message: Refatoração do WalkForward Index: BestStrategyEvaluator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator/BestStrategyEvaluator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** BestStrategyEvaluator.java 26 Jul 2007 19:33:29 -0000 1.4 --- BestStrategyEvaluator.java 26 Jul 2007 20:26:19 -0000 1.5 *************** *** 11,15 **** public Decision evaluate(Set<Strategy> strategies, ConstrainedTimeSeries series, AnalysisCriterion criterion) { - double bestStrategyValue = Double.MIN_VALUE; Strategy bestStrategy = strategies.iterator().next(); Decision bestDecision = new Decision(bestStrategy, series, criterion); --- 11,14 ---- *************** *** 21,28 **** bestDecision = decision; } - } return bestDecision; } - } --- 20,25 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 20:26:21
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/walk In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv19257/src/test/net/sf/tail/analysis/walk Modified Files: WalkerTest.java Removed Files: WalkForwardTest.java Log Message: Refatoração do WalkForward Index: WalkerTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/walk/WalkerTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** WalkerTest.java 26 Jul 2007 19:33:29 -0000 1.3 --- WalkerTest.java 26 Jul 2007 20:26:19 -0000 1.4 *************** *** 8,12 **** import net.sf.tail.AnalysisCriterion; - import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Evaluator; import net.sf.tail.Operation; --- 8,11 ---- *************** *** 14,18 **** import net.sf.tail.Strategy; import net.sf.tail.TimeSeries; - import net.sf.tail.TimeSeriesSplitter; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.BestStrategyEvaluator; --- 13,16 ---- *************** *** 34,39 **** private Operation[] enter; private Operation[] exit; - private TimeSeriesSplitter splitter; - private List<ConstrainedTimeSeries> constrainedSeries; @Before --- 32,35 ---- *************** *** 45,50 **** this.series = new SampleTimeSeries(data); this.evaluator = new BestStrategyEvaluator(); - this.splitter = new TimeSeriesSplitter(); - this.constrainedSeries = this.splitter.split(series, 5); enter = new Operation[] { new Operation(0, OperationType.BUY), --- 41,44 ---- *************** *** 119,124 **** public void testWalk() { ! Walker walk = new Walker(evaluator); ! List<Decision> values = walk.walk(strategies, constrainedSeries, criteria); assertEquals(20d/30, values.get(0).evaluateCriterion()); assertEquals(15d/32, values.get(1).evaluateCriterion()); --- 113,118 ---- public void testWalk() { ! WalkForward walk = new WalkForward(evaluator); ! List<Decision> values = walk.walk(strategies, series, 5, criteria); assertEquals(20d/30, values.get(0).evaluateCriterion()); assertEquals(15d/32, values.get(1).evaluateCriterion()); --- WalkForwardTest.java DELETED --- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 20:26:21
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv19257/src/java/net/sf/tail/analysis/walk Modified Files: WalkForward.java Removed Files: Walker.java Log Message: Refatoração do WalkForward Index: WalkForward.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk/WalkForward.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** WalkForward.java 26 Jul 2007 19:33:29 -0000 1.7 --- WalkForward.java 26 Jul 2007 20:26:19 -0000 1.8 *************** *** 1,5 **** package net.sf.tail.analysis.walk; ! import java.util.ArrayList; import java.util.List; import java.util.Set; --- 1,5 ---- package net.sf.tail.analysis.walk; ! import java.util.LinkedList; import java.util.List; import java.util.Set; *************** *** 8,19 **** import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Evaluator; - import net.sf.tail.OperationType; - import net.sf.tail.Runner; import net.sf.tail.Strategy; import net.sf.tail.TimeSeries; import net.sf.tail.TimeSeriesSplitter; - import net.sf.tail.Trade; import net.sf.tail.analysis.evaluator.Decision; - import net.sf.tail.runner.HistoryRunner; import org.apache.log4j.Logger; --- 8,15 ---- *************** *** 29,60 **** } ! public double walkForward(Set<Set<Strategy>> strategiesSet, TimeSeries series, int interval, AnalysisCriterion criterion) { ! LOG.info("Running sets of strategies: " + strategiesSet); ! Walker walker = new Walker(evaluator); ! Runner runner = new HistoryRunner(OperationType.BUY); ! List<Decision> decisions = new ArrayList<Decision>(); ! List<Decision> bestDecisions = null; ! Set<Strategy> bestStrategySet = null; TimeSeriesSplitter splitter = new TimeSeriesSplitter(); List<ConstrainedTimeSeries> constrainedSeries = splitter.split(series, interval); ! for (Set<Strategy> strategies : strategiesSet) { ! decisions = walker.walk(strategies, constrainedSeries, criterion); - if (bestStrategySet == null || criterion.isBetter(decisions, bestDecisions)) - { - LOG.debug("Changing better set of strategy to " + strategies); - bestDecisions = decisions; - bestStrategySet = strategies; - } } - - Decision bestDecision = evaluator.evaluate(bestStrategySet, constrainedSeries.get(constrainedSeries.size() - 2), criterion); - ConstrainedTimeSeries lastInterval = constrainedSeries.get(constrainedSeries.size() - 1); - List<Trade> trades = runner.run(bestDecision.getStrategy(), lastInterval.getBegin(), lastInterval.getBegin() + lastInterval.getSize()); - LOG.info("Elected best strategy: " + bestDecision); - return criterion.calculate(lastInterval, trades); } --- 25,51 ---- } ! public List<Decision> walk(Set<Strategy> strategies,TimeSeries series,int interval, AnalysisCriterion criterion) { ! ! LOG.info("Running strategies " + strategies); ! List<Decision> decisions = new LinkedList<Decision>(); + TimeSeriesSplitter splitter = new TimeSeriesSplitter(); List<ConstrainedTimeSeries> constrainedSeries = splitter.split(series, interval); ! Decision lastDecision = evaluator.evaluate(strategies, constrainedSeries.get(0), criterion); ! LOG.info("First best decision calculated: " + lastDecision); ! ! ! for(int i = 1; i < constrainedSeries.size(); i++) ! { ! ConstrainedTimeSeries currentSeries = constrainedSeries.get(i); ! decisions.add(lastDecision.applyFor(currentSeries)); ! lastDecision = evaluator.evaluate(strategies, currentSeries, criterion); ! LOG.debug("Best strategy at period " + i + ": " + lastDecision); } + return decisions; } --- Walker.java DELETED --- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 19:33:37
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29411/src/java/net/sf/tail/analysis/evaluator Modified Files: BestStrategyEvaluator.java Added Files: Decision.java Log Message: Refatoração do Walker e Evaluator para usar novo objeto: Decision. Index: BestStrategyEvaluator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator/BestStrategyEvaluator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BestStrategyEvaluator.java 5 Jul 2007 21:53:17 -0000 1.3 --- BestStrategyEvaluator.java 26 Jul 2007 19:33:29 -0000 1.4 *************** *** 1,5 **** package net.sf.tail.analysis.evaluator; - import java.util.List; import java.util.Set; --- 1,4 ---- *************** *** 7,35 **** import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Evaluator; - import net.sf.tail.OperationType; - import net.sf.tail.Runner; import net.sf.tail.Strategy; - import net.sf.tail.Trade; - import net.sf.tail.runner.HistoryRunner; public class BestStrategyEvaluator implements Evaluator { ! public Strategy evaluate(Set<Strategy> strategies, ConstrainedTimeSeries series, AnalysisCriterion criterion) { ! Runner runner = new HistoryRunner(OperationType.BUY); ! double bestStrategyValue = Double.MIN_VALUE; Strategy bestStrategy = strategies.iterator().next(); for (Strategy strategy : strategies) { ! ! List<Trade> trades = runner.run(strategy, series.getBegin(), series.getBegin() + series.getSize()); ! double value = criterion.calculate(series, trades); ! if (value > bestStrategyValue) { ! bestStrategy = strategy; ! bestStrategyValue = value; } } ! return bestStrategy; } --- 6,27 ---- import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Evaluator; import net.sf.tail.Strategy; public class BestStrategyEvaluator implements Evaluator { ! public Decision evaluate(Set<Strategy> strategies, ConstrainedTimeSeries series, AnalysisCriterion criterion) { double bestStrategyValue = Double.MIN_VALUE; Strategy bestStrategy = strategies.iterator().next(); + Decision bestDecision = new Decision(bestStrategy, series, criterion); for (Strategy strategy : strategies) { ! Decision decision = new Decision(strategy, series, criterion); ! double value = decision.evaluateCriterion(); ! if (value > bestDecision.evaluateCriterion()) { ! bestDecision = decision; } } ! return bestDecision; } --- NEW FILE: Decision.java --- package net.sf.tail.analysis.evaluator; import java.util.List; import net.sf.tail.AnalysisCriterion; import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.OperationType; import net.sf.tail.Runner; import net.sf.tail.Strategy; import net.sf.tail.Trade; import net.sf.tail.runner.HistoryRunner; public class Decision { private AnalysisCriterion criterion; private ConstrainedTimeSeries constrainedSerie; private Strategy strategy; private Runner runner; public Decision(Strategy bestStrategy, ConstrainedTimeSeries constrainedSerie, AnalysisCriterion criterion) { this.strategy = bestStrategy; this.constrainedSerie = constrainedSerie; this.criterion = criterion; this.runner = new HistoryRunner(OperationType.BUY); } public double evaluateCriterion() { List<Trade> trades = runner.run(strategy, constrainedSerie.getBegin(), constrainedSerie.getBegin() + constrainedSerie.getSize()); return criterion.calculate(constrainedSerie, trades); } public Strategy getStrategy() { return strategy; } public Decision applyFor(ConstrainedTimeSeries nextSeries) { return new Decision(this.strategy, nextSeries, this.criterion); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 19:33:37
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29411/src/test/net/sf/tail/analysis/criteria Modified Files: AverageProfitCriterionTest.java MaximumDrawDownCriterionTest.java RewardRiskRatioCriterionTest.java TotalProfitCriterionTest.java Log Message: Refatoração do Walker e Evaluator para usar novo objeto: Decision. Index: TotalProfitCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/TotalProfitCriterionTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TotalProfitCriterionTest.java 19 Jul 2007 18:15:19 -0000 1.4 --- TotalProfitCriterionTest.java 26 Jul 2007 19:33:29 -0000 1.5 *************** *** 11,14 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 62,79 **** public void testIsBetter(){ AnalysisCriterion criterion = new TotalProfitCriterion(); ! List<Double> list1 = new ArrayList<Double>(); ! List<Double> list2 = new ArrayList<Double>(); ! list1.add(1.3d); ! list1.add(1.5d); ! list1.add(1.3d); ! list1.add(1.3d); ! list1.add(1.3d); ! list2.add(1.4d); ! list2.add(1.2d); ! list2.add(1.3d); ! list2.add(1.4d); ! list2.add(1.3d); assertTrue(criterion.isBetter(list1, list2)); --- 64,81 ---- public void testIsBetter(){ AnalysisCriterion criterion = new TotalProfitCriterion(); ! List<Decision> list1 = new ArrayList<Decision>(); ! List<Decision> list2 = new ArrayList<Decision>(); ! list1.add(new DummyDecision(1.3d)); ! list1.add(new DummyDecision(1.5d)); ! list1.add(new DummyDecision(1.3d)); ! list1.add(new DummyDecision(1.3d)); ! list1.add(new DummyDecision(1.3d)); ! list2.add(new DummyDecision(1.4d)); ! list2.add(new DummyDecision(1.2d)); ! list2.add(new DummyDecision(1.3d)); ! list2.add(new DummyDecision(1.4d)); ! list2.add(new DummyDecision(1.3d)); assertTrue(criterion.isBetter(list1, list2)); Index: RewardRiskRatioCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/RewardRiskRatioCriterionTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** RewardRiskRatioCriterionTest.java 19 Jul 2007 18:15:19 -0000 1.7 --- RewardRiskRatioCriterionTest.java 26 Jul 2007 19:33:29 -0000 1.8 *************** *** 11,14 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 64,81 **** public void testIsBetter(){ AnalysisCriterion criterion = new RewardRiskRatioCriterion(); ! List<Double> list1 = new ArrayList<Double>(); ! List<Double> list2 = new ArrayList<Double>(); ! list1.add(5.1d); ! list1.add(6.2d); ! list1.add(7.3d); ! list1.add(8.4d); ! list1.add(11.5d); ! list2.add(7.0d); ! list2.add(4.1d); ! list2.add(6.2d); ! list2.add(8.3d); ! list2.add(10.4d); assertTrue(criterion.isBetter(list1, list2)); --- 66,83 ---- public void testIsBetter(){ AnalysisCriterion criterion = new RewardRiskRatioCriterion(); ! List<Decision> list1 = new ArrayList<Decision>(); ! List<Decision> list2 = new ArrayList<Decision>(); ! list1.add(new DummyDecision(5.1d)); ! list1.add(new DummyDecision(6.2d)); ! list1.add(new DummyDecision(7.3d)); ! list1.add(new DummyDecision(8.4d)); ! list1.add(new DummyDecision(11.5d)); ! list2.add(new DummyDecision(7.0d)); ! list2.add(new DummyDecision(4.1d)); ! list2.add(new DummyDecision(6.2d)); ! list2.add(new DummyDecision(8.3d)); ! list2.add(new DummyDecision(10.4d)); assertTrue(criterion.isBetter(list1, list2)); Index: MaximumDrawDownCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/MaximumDrawDownCriterionTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MaximumDrawDownCriterionTest.java 19 Jul 2007 18:15:19 -0000 1.4 --- MaximumDrawDownCriterionTest.java 26 Jul 2007 19:33:29 -0000 1.5 *************** *** 11,14 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 75,92 **** public void testIsBetter(){ AnalysisCriterion criterion = new MaximumDrawDownCriterion(); ! List<Double> list1 = new ArrayList<Double>(); ! List<Double> list2 = new ArrayList<Double>(); ! list1.add(5.1d); ! list1.add(6.2d); ! list1.add(7.3d); ! list1.add(8.4d); ! list1.add(9.5d); ! list2.add(7.0d); ! list2.add(4.1d); ! list2.add(6.2d); ! list2.add(9.3d); ! list2.add(10.4d); assertTrue(criterion.isBetter(list1, list2)); --- 77,94 ---- public void testIsBetter(){ AnalysisCriterion criterion = new MaximumDrawDownCriterion(); ! List<Decision> list1 = new ArrayList<Decision>(); ! List<Decision> list2 = new ArrayList<Decision>(); ! list1.add(new DummyDecision(5.1d)); ! list1.add(new DummyDecision(6.2d)); ! list1.add(new DummyDecision(7.3d)); ! list1.add(new DummyDecision(8.4d)); ! list1.add(new DummyDecision(9.5d)); ! list2.add(new DummyDecision(7.0d)); ! list2.add(new DummyDecision(4.1d)); ! list2.add(new DummyDecision(6.2d)); ! list2.add(new DummyDecision(9.3d)); ! list2.add(new DummyDecision(10.4d)); assertTrue(criterion.isBetter(list1, list2)); Index: AverageProfitCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/AverageProfitCriterionTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AverageProfitCriterionTest.java 19 Jul 2007 18:15:19 -0000 1.4 --- AverageProfitCriterionTest.java 26 Jul 2007 19:33:29 -0000 1.5 *************** *** 11,14 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 56,73 **** public void testIsBetter(){ AnalysisCriterion criterion = new AverageProfitCriterion(); ! List<Double> list1 = new ArrayList<Double>(); ! List<Double> list2 = new ArrayList<Double>(); ! list1.add(1.4d); ! list1.add(1.2d); ! list1.add(1.3d); ! list1.add(1.4d); ! list1.add(1.3d); ! list2.add(1.3d); ! list2.add(1.3d); ! list2.add(1.3d); ! list2.add(1.3d); ! list2.add(1.3d); assertTrue(criterion.isBetter(list1, list2)); --- 58,75 ---- public void testIsBetter(){ AnalysisCriterion criterion = new AverageProfitCriterion(); ! List<Decision> list1 = new ArrayList<Decision>(); ! List<Decision> list2 = new ArrayList<Decision>(); ! list1.add(new DummyDecision(1.4d)); ! list1.add(new DummyDecision(1.2d)); ! list1.add(new DummyDecision(1.3d)); ! list1.add(new DummyDecision(1.4d)); ! list1.add(new DummyDecision(1.3d)); ! list2.add(new DummyDecision(1.3d)); ! list2.add(new DummyDecision(1.3d)); ! list2.add(new DummyDecision(1.3d)); ! list2.add(new DummyDecision(1.3d)); ! list2.add(new DummyDecision(1.3d)); assertTrue(criterion.isBetter(list1, list2)); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 19:33:37
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29411/src/java/net/sf/tail/analysis/criteria Modified Files: MaximumDrawDownCriterion.java RewardRiskRatioCriterion.java TotalProfitCriterion.java AverageProfitCriterion.java Log Message: Refatoração do Walker e Evaluator para usar novo objeto: Decision. Index: TotalProfitCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/TotalProfitCriterion.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** TotalProfitCriterion.java 19 Jul 2007 18:16:13 -0000 1.9 --- TotalProfitCriterion.java 26 Jul 2007 19:33:29 -0000 1.10 *************** *** 7,10 **** --- 7,11 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class TotalProfitCriterion implements AnalysisCriterion { *************** *** 31,41 **** } ! public boolean isBetter(List<Double> first, List<Double> second) { double firstProduct = 1, secondProduct = 1; for (int i = 0; i < first.size(); i++) { ! firstProduct *= first.get(i); ! secondProduct *= second.get(i); } --- 32,42 ---- } ! public boolean isBetter(List<Decision> first, List<Decision> second) { double firstProduct = 1, secondProduct = 1; for (int i = 0; i < first.size(); i++) { ! firstProduct *= first.get(i).evaluateCriterion(); ! secondProduct *= second.get(i).evaluateCriterion(); } Index: MaximumDrawDownCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/MaximumDrawDownCriterion.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** MaximumDrawDownCriterion.java 12 Jul 2007 17:59:22 -0000 1.8 --- MaximumDrawDownCriterion.java 26 Jul 2007 19:33:29 -0000 1.9 *************** *** 6,9 **** --- 6,10 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.flow.CashFlow; *************** *** 30,40 **** } ! public boolean isBetter(List<Double> first, List<Double> second) { double firstSum = 0, secondSum = 0; for (int i = 0; i < first.size(); i++) { ! firstSum += first.get(i); ! secondSum += second.get(i); } --- 31,41 ---- } ! public boolean isBetter(List<Decision> first, List<Decision> second) { double firstSum = 0, secondSum = 0; for (int i = 0; i < first.size(); i++) { ! firstSum += first.get(i).evaluateCriterion(); ! secondSum += second.get(i).evaluateCriterion(); } Index: RewardRiskRatioCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/RewardRiskRatioCriterion.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** RewardRiskRatioCriterion.java 12 Jul 2007 17:59:22 -0000 1.7 --- RewardRiskRatioCriterion.java 26 Jul 2007 19:33:29 -0000 1.8 *************** *** 6,9 **** --- 6,10 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class RewardRiskRatioCriterion implements AnalysisCriterion { *************** *** 17,27 **** } ! public boolean isBetter(List<Double> first, List<Double> second) { double firstSum = 0, secondSum = 0; for (int i = 0; i < first.size(); i++) { ! firstSum += first.get(i); ! secondSum += second.get(i); } --- 18,28 ---- } ! public boolean isBetter(List<Decision> first, List<Decision> second) { double firstSum = 0, secondSum = 0; for (int i = 0; i < first.size(); i++) { ! firstSum += first.get(i).evaluateCriterion(); ! secondSum += second.get(i).evaluateCriterion(); } Index: AverageProfitCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/AverageProfitCriterion.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AverageProfitCriterion.java 12 Jul 2007 17:59:22 -0000 1.4 --- AverageProfitCriterion.java 26 Jul 2007 19:33:29 -0000 1.5 *************** *** 6,9 **** --- 6,10 ---- import net.sf.tail.TimeSeries; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; public class AverageProfitCriterion implements AnalysisCriterion { *************** *** 18,28 **** } ! public boolean isBetter(List<Double> first, List<Double> second) { double firstSum = 0, secondSum = 0; for (int i = 0; i < first.size(); i++) { ! firstSum += first.get(i); ! secondSum += second.get(i); } --- 19,29 ---- } ! public boolean isBetter(List<Decision> first, List<Decision> second) { double firstSum = 0, secondSum = 0; for (int i = 0; i < first.size(); i++) { ! firstSum += first.get(i).evaluateCriterion(); ! secondSum += second.get(i).evaluateCriterion(); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 19:33:37
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29411/src/java/net/sf/tail Modified Files: AnalysisCriterion.java Evaluator.java Log Message: Refatoração do Walker e Evaluator para usar novo objeto: Decision. Index: Evaluator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/Evaluator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Evaluator.java 5 Jul 2007 16:12:16 -0000 1.1 --- Evaluator.java 26 Jul 2007 19:33:29 -0000 1.2 *************** *** 3,6 **** --- 3,8 ---- import java.util.Set; + import net.sf.tail.analysis.evaluator.Decision; + public interface Evaluator { *************** *** 8,18 **** /** * Apply all <code>strategies</code> in <code>series</code>, and return ! * the strategy evaluated according to <code>criterion</code>. * * @param strategies * @param series * @param criterion ! * @return <code>Strategy</code> */ ! Strategy evaluate(Set<Strategy> strategies, ConstrainedTimeSeries series, AnalysisCriterion criterion); } --- 10,20 ---- /** * Apply all <code>strategies</code> in <code>series</code>, and return ! * the best decision according to <code>criterion</code>. * * @param strategies * @param series * @param criterion ! * @return <code>Decision</code> */ ! Decision evaluate(Set<Strategy> strategies, ConstrainedTimeSeries series, AnalysisCriterion criterion); } Index: AnalysisCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/AnalysisCriterion.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AnalysisCriterion.java 12 Jul 2007 17:59:23 -0000 1.2 --- AnalysisCriterion.java 26 Jul 2007 19:33:29 -0000 1.3 *************** *** 3,6 **** --- 3,8 ---- import java.util.List; + import net.sf.tail.analysis.evaluator.Decision; + *************** *** 8,12 **** double calculate(TimeSeries series, List<Trade> trades); ! boolean isBetter(List<Double> first, List<Double> second); } --- 10,14 ---- double calculate(TimeSeries series, List<Trade> trades); ! boolean isBetter(List<Decision> first, List<Decision> second); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 19:33:37
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29411/src/test/net/sf/tail/analysis/evaluator Modified Files: BestStrategyEvaluatorTest.java Added Files: DummyDecision.java Log Message: Refatoração do Walker e Evaluator para usar novo objeto: Decision. Index: BestStrategyEvaluatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/BestStrategyEvaluatorTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BestStrategyEvaluatorTest.java 5 Jul 2007 16:12:20 -0000 1.1 --- BestStrategyEvaluatorTest.java 26 Jul 2007 19:33:29 -0000 1.2 *************** *** 50,56 **** BestStrategyEvaluator evaluator = new BestStrategyEvaluator(); ! Strategy choosen = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(alwaysStrategy, choosen); } --- 50,56 ---- BestStrategyEvaluator evaluator = new BestStrategyEvaluator(); ! Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(alwaysStrategy, decision.getStrategy()); } *************** *** 61,67 **** BestStrategyEvaluator evaluator = new BestStrategyEvaluator(); ! Strategy choosen = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(buyAndHoldStrategy, choosen); } } --- 61,67 ---- BestStrategyEvaluator evaluator = new BestStrategyEvaluator(); ! Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(buyAndHoldStrategy, decision.getStrategy()); } } --- NEW FILE: DummyDecision.java --- package net.sf.tail.analysis.evaluator; public class DummyDecision extends Decision { private double value; public DummyDecision(double value) { super(null, null, null); this.value = value; } @Override public double evaluateCriterion() { return this.value; } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 19:33:37
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/walk In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29411/src/test/net/sf/tail/analysis/walk Modified Files: WalkerTest.java Log Message: Refatoração do Walker e Evaluator para usar novo objeto: Decision. Index: WalkerTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/walk/WalkerTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** WalkerTest.java 12 Jul 2007 18:04:00 -0000 1.2 --- WalkerTest.java 26 Jul 2007 19:33:29 -0000 1.3 *************** *** 17,20 **** --- 17,21 ---- 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.sample.SampleTimeSeries; import net.sf.tail.strategy.FakeStrategy; *************** *** 119,125 **** { Walker walk = new Walker(evaluator); ! List<Double> values = walk.walk(strategies, constrainedSeries, 5, criteria); ! assertEquals(20d/30, values.get(0)); ! assertEquals(15d/32, values.get(1)); } --- 120,126 ---- { Walker walk = new Walker(evaluator); ! List<Decision> values = walk.walk(strategies, constrainedSeries, criteria); ! assertEquals(20d/30, values.get(0).evaluateCriterion()); ! assertEquals(15d/32, values.get(1).evaluateCriterion()); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-26 19:33:37
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29411/src/java/net/sf/tail/analysis/walk Modified Files: WalkForward.java Walker.java Log Message: Refatoração do Walker e Evaluator para usar novo objeto: Decision. Index: WalkForward.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk/WalkForward.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** WalkForward.java 19 Jul 2007 21:51:53 -0000 1.6 --- WalkForward.java 26 Jul 2007 19:33:29 -0000 1.7 *************** *** 14,17 **** --- 14,18 ---- import net.sf.tail.TimeSeriesSplitter; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.runner.HistoryRunner; *************** *** 32,37 **** Walker walker = new Walker(evaluator); Runner runner = new HistoryRunner(OperationType.BUY); ! List<Double> values = new ArrayList<Double>(); ! List<Double> bestValues = null; Set<Strategy> bestStrategySet = null; --- 33,38 ---- Walker walker = new Walker(evaluator); Runner runner = new HistoryRunner(OperationType.BUY); ! List<Decision> decisions = new ArrayList<Decision>(); ! List<Decision> bestDecisions = null; Set<Strategy> bestStrategySet = null; *************** *** 40,49 **** for (Set<Strategy> strategies : strategiesSet) { ! values = walker.walk(strategies, constrainedSeries, interval, criterion); ! if (bestStrategySet == null || criterion.isBetter(values, bestValues)) { LOG.debug("Changing better set of strategy to " + strategies); ! bestValues = values; bestStrategySet = strategies; } --- 41,50 ---- for (Set<Strategy> strategies : strategiesSet) { ! decisions = walker.walk(strategies, constrainedSeries, criterion); ! if (bestStrategySet == null || criterion.isBetter(decisions, bestDecisions)) { LOG.debug("Changing better set of strategy to " + strategies); ! bestDecisions = decisions; bestStrategySet = strategies; } *************** *** 51,58 **** ! Strategy bestStrategy = evaluator.evaluate(bestStrategySet, constrainedSeries.get(constrainedSeries.size() - 2), criterion); ConstrainedTimeSeries lastInterval = constrainedSeries.get(constrainedSeries.size() - 1); ! List<Trade> trades = runner.run(bestStrategy, lastInterval.getBegin(), lastInterval.getBegin() + lastInterval.getSize()); ! LOG.info("Elected best strategy: " + bestStrategy); return criterion.calculate(lastInterval, trades); } --- 52,59 ---- ! Decision bestDecision = evaluator.evaluate(bestStrategySet, constrainedSeries.get(constrainedSeries.size() - 2), criterion); ConstrainedTimeSeries lastInterval = constrainedSeries.get(constrainedSeries.size() - 1); ! List<Trade> trades = runner.run(bestDecision.getStrategy(), lastInterval.getBegin(), lastInterval.getBegin() + lastInterval.getSize()); ! LOG.info("Elected best strategy: " + bestDecision); return criterion.calculate(lastInterval, trades); } Index: Walker.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk/Walker.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Walker.java 19 Jul 2007 21:51:53 -0000 1.3 --- Walker.java 26 Jul 2007 19:33:29 -0000 1.4 *************** *** 1,5 **** package net.sf.tail.analysis.walk; ! import java.util.ArrayList; import java.util.List; import java.util.Set; --- 1,5 ---- package net.sf.tail.analysis.walk; ! import java.util.LinkedList; import java.util.List; import java.util.Set; *************** *** 8,16 **** import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Evaluator; - import net.sf.tail.OperationType; - import net.sf.tail.Runner; import net.sf.tail.Strategy; ! import net.sf.tail.Trade; ! import net.sf.tail.runner.HistoryRunner; import org.apache.log4j.Logger; --- 8,13 ---- import net.sf.tail.ConstrainedTimeSeries; import net.sf.tail.Evaluator; import net.sf.tail.Strategy; ! import net.sf.tail.analysis.evaluator.Decision; import org.apache.log4j.Logger; *************** *** 26,49 **** } ! public List<Double> walk(Set<Strategy> strategies, List<ConstrainedTimeSeries> constrainedSeries, int interval, AnalysisCriterion criterion) { LOG.info("Running strategies " + strategies); ! List<Double> values = new ArrayList<Double>(); - Strategy bestStrategy = evaluator.evaluate(strategies, constrainedSeries.get(0), criterion); - LOG.info("First best strategy calculated: " + bestStrategy); - Runner runner = new HistoryRunner(OperationType.BUY); for(int i = 1; i < constrainedSeries.size(); i++) { ! ConstrainedTimeSeries constrainedSerie = constrainedSeries.get(i); ! List<Trade> trades = runner.run(bestStrategy, constrainedSerie.getBegin(), constrainedSerie.getBegin() + constrainedSerie.getSize()); ! double value = criterion.calculate(constrainedSerie, trades); ! values.add(value); ! bestStrategy = evaluator.evaluate(strategies, constrainedSerie, criterion); ! LOG.debug("Best strategy at period " + i + ": " + bestStrategy); } ! return values; } --- 23,44 ---- } ! public List<Decision> walk(Set<Strategy> strategies, List<ConstrainedTimeSeries> constrainedSeries, AnalysisCriterion criterion) { LOG.info("Running strategies " + strategies); ! List<Decision> decisions = new LinkedList<Decision>(); ! ! Decision lastDecision = evaluator.evaluate(strategies, constrainedSeries.get(0), criterion); ! LOG.info("First best decision calculated: " + lastDecision); for(int i = 1; i < constrainedSeries.size(); i++) { ! ConstrainedTimeSeries currentSeries = constrainedSeries.get(i); ! decisions.add(lastDecision.applyFor(currentSeries)); ! lastDecision = evaluator.evaluate(strategies, currentSeries, criterion); ! LOG.debug("Best strategy at period " + i + ": " + lastDecision); } ! return decisions; } |
|
From: Thies <tg...@us...> - 2007-07-21 15:17:21
|
Update of /cvsroot/tail/Tail/.settings In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv22684/.settings Modified Files: org.eclipse.jdt.ui.prefs org.eclipse.jdt.core.prefs Log Message: Index: org.eclipse.jdt.core.prefs =================================================================== RCS file: /cvsroot/tail/Tail/.settings/org.eclipse.jdt.core.prefs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** org.eclipse.jdt.core.prefs 21 Jul 2007 15:13:46 -0000 1.3 --- org.eclipse.jdt.core.prefs 21 Jul 2007 15:17:13 -0000 1.4 *************** *** 1,3 **** ! #Thu Jul 05 18:32:31 BRT 2007 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled --- 1,3 ---- ! #Mon May 14 12:44:23 GMT-03:00 2007 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled *************** *** 41,45 **** org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 org.eclipse.jdt.core.formatter.blank_lines_before_package=0 - org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line --- 41,44 ---- *************** *** 55,66 **** org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false - org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false - org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false - org.eclipse.jdt.core.formatter.comment.format_block_comments=true org.eclipse.jdt.core.formatter.comment.format_comments=true org.eclipse.jdt.core.formatter.comment.format_header=false org.eclipse.jdt.core.formatter.comment.format_html=true - org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true - org.eclipse.jdt.core.formatter.comment.format_line_comments=true org.eclipse.jdt.core.formatter.comment.format_source_code=true org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true --- 54,60 ---- *************** *** 237,241 **** org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert - org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert --- 231,234 ---- *************** *** 258,263 **** org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false org.eclipse.jdt.core.formatter.lineSplit=120 - org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false - org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 --- 251,254 ---- *************** *** 266,268 **** org.eclipse.jdt.core.formatter.tabulation.size=4 org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false - org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true --- 257,258 ---- Index: org.eclipse.jdt.ui.prefs =================================================================== RCS file: /cvsroot/tail/Tail/.settings/org.eclipse.jdt.ui.prefs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** org.eclipse.jdt.ui.prefs 21 Jul 2007 15:13:46 -0000 1.3 --- org.eclipse.jdt.ui.prefs 21 Jul 2007 15:17:13 -0000 1.4 *************** *** 1,5 **** ! #Thu Jul 05 18:32:31 BRT 2007 eclipse.preferences.version=1 formatter_profile=_TailCodeFormatter ! formatter_settings_version=11 internal.default.compliance=default --- 1,5 ---- ! #Mon May 14 12:44:23 GMT-03:00 2007 eclipse.preferences.version=1 formatter_profile=_TailCodeFormatter ! formatter_settings_version=10 internal.default.compliance=default |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-21 15:14:17
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv20967/src/java/net/sf/tail/indicator/tracker Modified Files: EMAIndicator.java SMAIndicator.java RSIIndicator.java WilliamsRIndicator.java Log Message: Aperfeiçoado o gráfico e criado testes para o dataset Index: WilliamsRIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/WilliamsRIndicator.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** WilliamsRIndicator.java 31 May 2007 16:45:39 -0000 1.9 --- WilliamsRIndicator.java 21 Jul 2007 15:13:46 -0000 1.10 *************** *** 42,44 **** --- 42,48 ---- * -100d; } + + public String getName() { + return getClass().getName(); + } } Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** RSIIndicator.java 31 May 2007 16:45:39 -0000 1.12 --- RSIIndicator.java 21 Jul 2007 15:13:46 -0000 1.13 *************** *** 27,29 **** --- 27,34 ---- return averageGain.getValue(index) / averageLoss.getValue(index); } + + + public String getName() { + return getClass().getName()+" timeFrame:"+timeFrame; + } } Index: SMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/SMAIndicator.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** SMAIndicator.java 17 May 2007 23:06:56 -0000 1.9 --- SMAIndicator.java 21 Jul 2007 15:13:46 -0000 1.10 *************** *** 22,25 **** --- 22,29 ---- return sum / Math.min(timeFrame, index + 1); } + + public String getName() { + return getClass().getName()+ " timeFrame:"+timeFrame; + } } Index: EMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/EMAIndicator.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** EMAIndicator.java 18 May 2007 19:25:24 -0000 1.12 --- EMAIndicator.java 21 Jul 2007 15:13:46 -0000 1.13 *************** *** 26,28 **** --- 26,33 ---- return ((indicator.getValue(index).doubleValue() - emaPrev) * multiplier()) + emaPrev; } + + + public String getName() { + return getClass().getName()+" timeFrame:"+timeFrame; + } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-21 15:14:17
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/graphics In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv20967/src/java/net/sf/tail/graphics Modified Files: SeriesDataset.java Log Message: Aperfeiçoado o gráfico e criado testes para o dataset Index: SeriesDataset.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/graphics/SeriesDataset.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SeriesDataset.java 7 Jul 2007 18:45:23 -0000 1.1 --- SeriesDataset.java 21 Jul 2007 15:13:45 -0000 1.2 *************** *** 13,16 **** --- 13,17 ---- import org.jfree.data.general.AbstractDataset; + @SuppressWarnings("unchecked") public class SeriesDataset extends AbstractDataset implements CategoryDataset { *************** *** 22,26 **** private SimpleDateFormat dateFormat; ! private final int DATASET_SIZE = 50; private List<Indicator<? extends Number>> indicators; --- 23,27 ---- private SimpleDateFormat dateFormat; ! private final int DATASET_SIZE; private List<Indicator<? extends Number>> indicators; *************** *** 40,43 **** --- 41,45 ---- this.lastIndex = lastIndex; this.series = series; + this.DATASET_SIZE = lastIndex - firstIndex; dateFormat = new SimpleDateFormat("hh:mm d/M/yyyy"); *************** *** 75,79 **** for (int i = 0; i < indicators.size(); i++) { for (int j = firstIndex; j <= lastIndex; j++) { ! data.addValue(indicators.get(i).getValue(j), indicators.get(i).getClass().getSimpleName() ,dateFormat.format(series.getTick(j).getData().getTime())); } } --- 77,81 ---- for (int i = 0; i < indicators.size(); i++) { for (int j = firstIndex; j <= lastIndex; j++) { ! data.addValue(indicators.get(i).getValue(j), indicators.get(i).getName() ,dateFormat.format(series.getTick(j).getData().getTime())); } } *************** *** 125,129 **** lastIndex++; for (Indicator<? extends Number> indicator : indicators) { ! data.addValue(indicator.getValue(lastIndex), indicator.getClass().getSimpleName() ,dateFormat.format(series.getTick(lastIndex).getData().getTime())); } --- 127,131 ---- lastIndex++; for (Indicator<? extends Number> indicator : indicators) { ! data.addValue(indicator.getValue(lastIndex), indicator.getName() ,dateFormat.format(series.getTick(lastIndex).getData().getTime())); } *************** *** 139,143 **** } - public void moveLeft() { if(firstIndex > 0){ --- 141,144 ---- *************** *** 152,156 **** } } - - } --- 153,155 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-07-21 15:14:10
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/cache In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv20967/src/java/net/sf/tail/indicator/cache Modified Files: CachedIndicator.java Log Message: Aperfeiçoado o gráfico e criado testes para o dataset Index: CachedIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/cache/CachedIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** CachedIndicator.java 7 Jul 2007 18:45:24 -0000 1.4 --- CachedIndicator.java 21 Jul 2007 15:13:47 -0000 1.5 *************** *** 13,17 **** * */ ! public class CachedIndicator implements Indicator { private final Indicator<? extends Number> indicator; --- 13,17 ---- * */ ! public class CachedIndicator implements Indicator<Number> { private final Indicator<? extends Number> indicator; *************** *** 44,47 **** --- 44,51 ---- return name[name.length - 1]; } + + public String getName() { + return indicator.getName(); + } |