|
From: Márcio V. d. S. <mv...@us...> - 2007-11-21 21:55:17
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/walk In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv7865/src/test/net/sf/tail/analysis/walk Modified Files: WalkForwardTest.java Log Message: Mega refatoração, Runner não está mais vendendo no final de cada slice Index: WalkForwardTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/walk/WalkForwardTest.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** WalkForwardTest.java 8 Oct 2007 19:38:14 -0000 1.20 --- WalkForwardTest.java 21 Nov 2007 21:55:20 -0000 1.21 *************** *** 8,12 **** import net.sf.tail.AnalysisCriterion; - import net.sf.tail.StrategyEvaluator; import net.sf.tail.Operation; import net.sf.tail.OperationType; --- 8,11 ---- *************** *** 16,22 **** import net.sf.tail.Walker; import net.sf.tail.analysis.criteria.TotalProfitCriterion; - import net.sf.tail.analysis.evaluator.HigherValueEvaluator; import net.sf.tail.analysis.evaluator.Decision; ! import net.sf.tail.runner.HistoryRunner; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.series.RegularSlicer; --- 15,21 ---- import net.sf.tail.Walker; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; ! import net.sf.tail.analysis.evaluator.HigherValueEvaluatorFactory; ! import net.sf.tail.runner.HistoryRunnerFactory; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.series.RegularSlicer; *************** *** 38,43 **** private TimeSeries series; - private StrategyEvaluator evaluator; - private Operation[] enter; --- 37,40 ---- *************** *** 58,62 **** this.criteria = new TotalProfitCriterion(); this.series = new SampleTimeSeries(data, dates); - this.evaluator = new HigherValueEvaluator(new HistoryRunner(OperationType.BUY)); enter = new Operation[] { new Operation(0, OperationType.BUY), null, null, null, null, null, --- 55,58 ---- *************** *** 64,75 **** null, null }; exit = new Operation[] { null, null, null, new Operation(3, OperationType.SELL), null, null, null, null, ! new Operation(8, OperationType.SELL), null, null, null, null, null }; this.firstStrategy = new FakeStrategy(enter, exit); strategies.add(firstStrategy); enter = new Operation[] { new Operation(0, OperationType.BUY), null, null, null, null, null, null, null, ! new Operation(8, OperationType.BUY), null, new Operation(10, OperationType.BUY), null, null, null }; exit = new Operation[] { null, null, new Operation(2, OperationType.SELL), null, null, null, null, null, null, ! null, null, null, null, null }; this.secondStrategy = new FakeStrategy(enter, exit); strategies.add(this.secondStrategy); --- 60,71 ---- null, null }; exit = new Operation[] { null, null, null, new Operation(3, OperationType.SELL), null, null, null, null, ! new Operation(8, OperationType.SELL), null, null, null, null, new Operation(13, OperationType.SELL) }; this.firstStrategy = new FakeStrategy(enter, exit); strategies.add(firstStrategy); enter = new Operation[] { new Operation(0, OperationType.BUY), null, null, null, null, null, null, null, ! new Operation(8, OperationType.BUY), null, null, new Operation(11, OperationType.BUY), null, null }; exit = new Operation[] { null, null, new Operation(2, OperationType.SELL), null, null, null, null, null, null, ! null, new Operation(10, OperationType.SELL), null, new Operation(12, OperationType.SELL), null }; this.secondStrategy = new FakeStrategy(enter, exit); strategies.add(this.secondStrategy); *************** *** 78,91 **** @Test public void testWalk() { ! Walker walk = new WalkForward(evaluator); Period period = new Period().withYears(1); TimeSeriesSlicer splittedSeries = new RegularSlicer(series, period); List<Decision> decisions = walk.walk(strategies, splittedSeries, criteria).getDecisions(); assertEquals(secondStrategy, decisions.get(0).getStrategy()); assertEquals(firstStrategy, decisions.get(1).getStrategy()); ! assertEquals(20d / 30, decisions.get(0).evaluateCriterion()); ! assertEquals(15d / 32, decisions.get(1).evaluateCriterion()); ! // TODO Fazer um teste maior, com umas 3 estrategias e uns 5 periodos } } --- 74,90 ---- @Test public void testWalk() { ! Period period = new Period().withYears(1); TimeSeriesSlicer splittedSeries = new RegularSlicer(series, period); + + Walker walk = new WalkForward(new HigherValueEvaluatorFactory(), new HistoryRunnerFactory()); + List<Decision> decisions = walk.walk(strategies, splittedSeries, criteria).getDecisions(); assertEquals(secondStrategy, decisions.get(0).getStrategy()); + assertEquals(15d/30, decisions.get(0).evaluateCriterion()); + assertEquals(firstStrategy, decisions.get(1).getStrategy()); ! assertEquals(15d/32, decisions.get(1).evaluateCriterion()); } } |