|
From: Márcio V. d. S. <mv...@us...> - 2007-11-21 21:55:17
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv7865/src/java/net/sf/tail/analysis/walk Modified Files: WalkForward.java Log Message: Mega refatoração, Runner não está mais vendendo no final de cada slice Index: WalkForward.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/walk/WalkForward.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** WalkForward.java 15 Oct 2007 20:23:24 -0000 1.22 --- WalkForward.java 21 Nov 2007 21:55:20 -0000 1.23 *************** *** 6,17 **** import net.sf.tail.AnalysisCriterion; - import net.sf.tail.StrategyEvaluator; import net.sf.tail.Strategy; ! import net.sf.tail.TimeSeries; import net.sf.tail.TimeSeriesSlicer; import net.sf.tail.Walker; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.report.Report; ! import net.sf.tail.series.RegularSlicer; import org.apache.log4j.Logger; --- 6,17 ---- import net.sf.tail.AnalysisCriterion; import net.sf.tail.Strategy; ! import net.sf.tail.StrategyEvaluator; import net.sf.tail.TimeSeriesSlicer; import net.sf.tail.Walker; import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.StrategyEvaluatorFactory; import net.sf.tail.report.Report; ! import net.sf.tail.runner.RunnerFactory; import org.apache.log4j.Logger; *************** *** 22,53 **** private static final Logger LOG = Logger.getLogger(WalkForward.class); - private StrategyEvaluator evaluator; ! public WalkForward(StrategyEvaluator evaluator) { ! this.evaluator = evaluator; } public Report walk(Set<Strategy> strategies, TimeSeriesSlicer slicer, AnalysisCriterion criterion) { - TimeSeriesSlicer regularSlicer = new RegularSlicer(slicer.getSeries(), slicer.getPeriod(), slicer.getSlice(0).getTick(slicer.getSlice(0).getBegin()).getDate()); - LOG.info("Running strategies"); List<Decision> decisions = new LinkedList<Decision>(); ! Decision lastDecision = evaluator.evaluate(strategies, slicer.getSlice(0), criterion); LOG.info("First best decision calculated: " + lastDecision); for (int i = 1; i < slicer.getSlices(); i++) { ! TimeSeries currentSeries = slicer.getSlice(i); ! TimeSeries regularSeries = regularSlicer.getSlice(i); ! ! Decision bestAppliedForCurrentSeries = lastDecision.applyFor(regularSeries); LOG.info(String .format("Applying last best decision for time series %d: %s", i, bestAppliedForCurrentSeries)); decisions.add(bestAppliedForCurrentSeries); ! lastDecision = evaluator.evaluate(strategies, currentSeries, criterion); LOG.info("Best decision for period " + i + ": " + lastDecision); --- 22,51 ---- private static final Logger LOG = Logger.getLogger(WalkForward.class); + private StrategyEvaluatorFactory evaluatorFactory; + private RunnerFactory runnerFactory; ! public WalkForward(StrategyEvaluatorFactory evaluatorFactory,RunnerFactory runnerFactory) { ! this.evaluatorFactory = evaluatorFactory; ! this.runnerFactory = runnerFactory; } public Report walk(Set<Strategy> strategies, TimeSeriesSlicer slicer, AnalysisCriterion criterion) { LOG.info("Running strategies"); List<Decision> decisions = new LinkedList<Decision>(); ! StrategyEvaluator evaluator = evaluatorFactory.create(runnerFactory, strategies, slicer, criterion); ! Decision lastDecision = evaluator.evaluate(0); LOG.info("First best decision calculated: " + lastDecision); for (int i = 1; i < slicer.getSlices(); i++) { ! Decision bestAppliedForCurrentSeries = lastDecision.applyFor(i); LOG.info(String .format("Applying last best decision for time series %d: %s", i, bestAppliedForCurrentSeries)); decisions.add(bestAppliedForCurrentSeries); ! lastDecision = evaluator.evaluate(i); LOG.info("Best decision for period " + i + ": " + lastDecision); |