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());
}
}
|