|
From: Thies <tg...@us...> - 2007-10-08 19:19:05
|
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; } } |