|
From: Thies <tg...@us...> - 2007-10-29 21:22:40
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27460/src/java/net/sf/tail/analysis/criteria Added Files: BrazilianRewardRiskRatioCriterion.java Log Message: Novo criteria --- NEW FILE: BrazilianRewardRiskRatioCriterion.java --- package net.sf.tail.analysis.criteria; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import net.sf.tail.AnalysisCriterion; import net.sf.tail.TimeSeries; import net.sf.tail.Trade; import net.sf.tail.analysis.evaluator.Decision; public class BrazilianRewardRiskRatioCriterion implements AnalysisCriterion { private AnalysisCriterion totalProfit = new BrazilianTotalProfitCriterion(); private MaximumDrawDownCriterion maxDrawnDown = new MaximumDrawDownCriterion(); public double calculate(TimeSeries series, List<Trade> trades) { return totalProfit.calculate(series, trades) / maxDrawnDown.calculate(series, trades); } public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); for (Decision decision : decisions) { trades.addAll(decision.getTrades()); } return calculate(series, trades); } public double calculate(TimeSeries series, Trade trade) { List<Trade> trades = new ArrayList<Trade>(); trades.add(trade); return calculate(series, trades); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (this.getClass().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; return true; } } |