Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv20178/src/java/net/sf/tail/analysis/criteria
Modified Files:
RewardRiskRatioCriterion.java
Added Files:
MaximumDrawDownCriterion.java AverageProfitCriterion.java
Removed Files:
MaximumDrawDownCriteria.java
Log Message:
Refatoração
--- NEW FILE: MaximumDrawDownCriterion.java ---
package net.sf.tail.analysis.criteria;
import net.sf.tail.Indicator;
public class MaximumDrawDownCriterion implements AnalysisCriterion {
private Indicator<? extends Number> indicator;
private int seriesSize;
public MaximumDrawDownCriterion(Indicator<? extends Number> indicator, int seriesSize) {
this.indicator = indicator;
this.seriesSize = seriesSize;
}
public double calculate() {
double max = 0;
double maxPeak = 0;
double drawDown = 0;
for (int i = 0; i < seriesSize; i++) {
double value = indicator.getValue(i).doubleValue();
if (value > maxPeak) {
maxPeak = value;
}
drawDown = maxPeak - value;
if (drawDown > max) {
max = drawDown;
}
}
return max;
}
}
--- MaximumDrawDownCriteria.java DELETED ---
Index: RewardRiskRatioCriterion.java
===================================================================
RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/RewardRiskRatioCriterion.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** RewardRiskRatioCriterion.java 8 Jun 2007 15:14:26 -0000 1.1
--- RewardRiskRatioCriterion.java 8 Jun 2007 18:24:36 -0000 1.2
***************
*** 13,21 ****
! private MaximumDrawDownCriteria maxDrawnCriteria;
public RewardRiskRatioCriterion(Indicator<? extends Number> indicator, List<Trade> trades, int seriesSize) {
this.totalProfit = new TotalProfitCriterion(indicator,trades);
! maxDrawnCriteria = new MaximumDrawDownCriteria(indicator,seriesSize);
}
--- 13,21 ----
! private MaximumDrawDownCriterion maxDrawnCriterion;
public RewardRiskRatioCriterion(Indicator<? extends Number> indicator, List<Trade> trades, int seriesSize) {
this.totalProfit = new TotalProfitCriterion(indicator,trades);
! maxDrawnCriterion = new MaximumDrawDownCriterion(indicator,seriesSize);
}
***************
*** 26,30 ****
public double calculate() {
! return totalProfit.calculate()/maxDrawnCriteria.calculate();
}
--- 26,30 ----
public double calculate() {
! return totalProfit.calculate()/maxDrawnCriterion.calculate();
}
--- NEW FILE: AverageProfitCriterion.java ---
package net.sf.tail.analysis.criteria;
import java.util.List;
import net.sf.tail.Indicator;
import net.sf.tail.TimeSeries;
import net.sf.tail.Trade;
import net.sf.tail.indicator.simple.ClosePriceIndicator;
public class AverageProfitCriterion implements AnalysisCriterion {
private final AnalysisCriterion totalProfit;
int nTicks = 0;
public AverageProfitCriterion(Indicator<? extends Number> indicator, List<Trade> trades) {
totalProfit = new TotalProfitCriterion(indicator,trades);
for (Trade trade : trades) {
nTicks += trade.getExit().getIndex() - trade.getEntry().getIndex();
}
}
public AverageProfitCriterion(TimeSeries series, List<Trade> trades) {
this(new ClosePriceIndicator(series),trades);
}
public double calculate() {
return Math.pow(totalProfit.calculate(), 1d/nTicks);
}
}
|