|
From: Márcio V. d. S. <mv...@us...> - 2007-10-08 19:38:21
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12839/src/java/net/sf/tail/analysis/evaluator Added Files: HigherValueEvaluator.java Removed Files: BestStrategyEvaluator.java Log Message: --- BestStrategyEvaluator.java DELETED --- --- NEW FILE: HigherValueEvaluator.java --- package net.sf.tail.analysis.evaluator; import java.util.Iterator; import java.util.Set; import org.apache.log4j.Logger; import net.sf.tail.AnalysisCriterion; import net.sf.tail.StrategyEvaluator; import net.sf.tail.OperationType; import net.sf.tail.Runner; import net.sf.tail.Strategy; import net.sf.tail.TimeSeries; import net.sf.tail.runner.HistoryRunner; public class HigherValueEvaluator implements StrategyEvaluator { private static final Logger LOG = Logger.getLogger(HigherValueEvaluator.class); private Runner runner; public HigherValueEvaluator(Runner runner) { this.runner = runner; } public Decision evaluate(Set<Strategy> strategies, TimeSeries series, AnalysisCriterion criterion) { Iterator<Strategy> iter = strategies.iterator(); Strategy bestStrategy = iter.next(); Decision bestDecision = new Decision(bestStrategy, series, criterion, runner.run(bestStrategy, series .getBegin(), series.getEnd()), runner); while (iter.hasNext()) { Strategy strategy = iter.next(); Decision decision = new Decision(strategy, series, criterion, runner.run(strategy, series.getBegin(), series.getEnd()), new HistoryRunner(OperationType.BUY)); double value = decision.evaluateCriterion(); LOG.info(String.format("For %s, criterion %s, gave %.3f", strategy, criterion.getClass().getSimpleName(), value)); if (value > bestDecision.evaluateCriterion()) { //TODO O que fazer com o empate entre criterions?? bestDecision = decision; } } return bestDecision; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((runner == null) ? 0 : runner.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final HigherValueEvaluator other = (HigherValueEvaluator) obj; if (runner == null) { if (other.runner != null) return false; } else if (!runner.equals(other.runner)) return false; return true; } } |