Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv4409/src/java/net/sf/tail/analysis/criteria
Modified Files:
TotalProfitCriterion.java
Added Files:
BrazilianTotalProfitCriterion.java
BrazilianTransactionCostsCriterion.java
Log Message:
Novos criterias e refatoracao no totalProfit
Index: TotalProfitCriterion.java
===================================================================
RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/TotalProfitCriterion.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** TotalProfitCriterion.java 4 Sep 2007 13:09:14 -0000 1.16
--- TotalProfitCriterion.java 8 Oct 2007 19:19:05 -0000 1.17
***************
*** 1,5 ****
package net.sf.tail.analysis.criteria;
- import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
--- 1,4 ----
***************
*** 21,24 ****
--- 20,38 ----
}
+ 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) {
+ return calculateProfit(series, trade);
+
+ }
+
private double calculateProfit(TimeSeries series, Trade trade) {
double exitClosePrice = series.getTick(trade.getExit().getIndex()).getClosePrice();
***************
*** 34,53 ****
}
- 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() {
--- 48,51 ----
***************
*** 68,72 ****
return true;
}
-
}
--- 66,69 ----
--- NEW FILE: BrazilianTotalProfitCriterion.java ---
package net.sf.tail.analysis.criteria;
import java.util.LinkedList;
import java.util.List;
import net.sf.tail.AnalysisCriterion;
import net.sf.tail.OperationType;
import net.sf.tail.TimeSeries;
import net.sf.tail.Trade;
import net.sf.tail.analysis.evaluator.Decision;
public class BrazilianTotalProfitCriterion implements AnalysisCriterion {
public double calculate(TimeSeries series, Trade trade) {
return calculateProfit(series, trade);
}
public double calculate(TimeSeries series, List<Trade> trades) {
double value = 1d;
for (Trade trade : trades) {
value *= calculateProfit(series, trade);
}
return value;
}
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);
}
private double calculateProfit(TimeSeries series, Trade trade) {
double exitClosePrice = series.getTick(trade.getExit().getIndex()).getClosePrice();
double entryClosePrice = series.getTick(trade.getEntry().getIndex()).getClosePrice();
if (trade.getEntry().getType() == OperationType.BUY) {
return (exitClosePrice * 0.99965d) / (entryClosePrice * 1.00035d);
}
return (entryClosePrice * 0.99965d) / (exitClosePrice * 1.00035d);
}
@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;
}
}
--- NEW FILE: BrazilianTransactionCostsCriterion.java ---
package net.sf.tail.analysis.criteria;
import java.util.ArrayList;
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 BrazilianTransactionCostsCriterion implements AnalysisCriterion {
public double calculate(TimeSeries series, Trade trade) {
return 40d;
}
public double calculate(TimeSeries series, List<Trade> trades) {
return 40d * trades.size();
}
public double summarize(TimeSeries series, List<Decision> decisions) {
List<Trade> trades = new ArrayList<Trade>();
for (Decision decision : decisions) {
trades.addAll(decision.getTrades());
}
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;
}
}
|