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