|
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 --- |