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