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