|
From: Márcio V. d. S. <mv...@us...> - 2007-08-09 15:21:56
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18250/src/test/net/sf/tail/analysis/criteria Modified Files: NumberOfTradesCriterionTest.java BuyAndHoldCriterionTest.java AverageProfitCriterionTest.java MaximumDrawDownCriterionTest.java RewardRiskRatioCriterionTest.java VersusBuyAndHoldCriterionTest.java NumberOfTicksCriterionTest.java Log Message: criada assinatura summarize e implementado o método em todos os critérios Index: MaximumDrawDownCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/MaximumDrawDownCriterionTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** MaximumDrawDownCriterionTest.java 26 Jul 2007 20:48:55 -0000 1.6 --- MaximumDrawDownCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.7 *************** *** 4,7 **** --- 4,8 ---- import java.util.ArrayList; + import java.util.LinkedList; import java.util.List; *************** *** 9,12 **** --- 10,15 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 69,71 **** --- 72,100 ---- assertEquals(0.5d, mdd.calculate(series, trades)); } + + @Test + public void testSummarize() { + SampleTimeSeries series = new SampleTimeSeries(new double[] { 1, 2, 3, 6, 5, 20, 3 }); + List<Decision> decisions = new LinkedList<Decision>(); + + List<Trade> tradesToDummy1 = new LinkedList<Trade>(); + tradesToDummy1.add(new Trade(new Operation(0, OperationType.BUY), new Operation(1, OperationType.SELL))); + Decision dummy1 = new DummyDecision(tradesToDummy1); + decisions.add(dummy1); + + List<Trade> tradesToDummy2 = new LinkedList<Trade>(); + tradesToDummy2.add(new Trade(new Operation(3, OperationType.BUY), new Operation(4, OperationType.SELL))); + Decision dummy2 = new DummyDecision(tradesToDummy2); + decisions.add(dummy2); + + List<Trade> tradesToDummy3 = new LinkedList<Trade>(); + tradesToDummy3.add(new Trade(new Operation(5, OperationType.BUY), new Operation(6, OperationType.SELL))); + Decision dummy3 = new DummyDecision(tradesToDummy3); + decisions.add(dummy3); + + MaximumDrawDownCriterion mdd = new MaximumDrawDownCriterion(); + + assertEquals(1.75d, mdd.summarize(series, decisions)); + + } } \ No newline at end of file Index: NumberOfTicksCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/NumberOfTicksCriterionTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NumberOfTicksCriterionTest.java 7 Aug 2007 19:18:27 -0000 1.1 --- NumberOfTicksCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- import java.util.ArrayList; + import java.util.LinkedList; import java.util.List; *************** *** 10,13 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 35,37 **** --- 38,60 ---- assertEquals(4d, buyAndHold.calculate(series, trades)); } + + + @Test + public void testSummarize() { + SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); + List<Decision> decisions = new LinkedList<Decision>(); + + List<Trade> tradesToDummy1 = new LinkedList<Trade>(); + tradesToDummy1.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); + Decision dummy1 = new DummyDecision(tradesToDummy1); + decisions.add(dummy1); + + List<Trade> tradesToDummy2 = new LinkedList<Trade>(); + tradesToDummy2.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); + Decision dummy2 = new DummyDecision(tradesToDummy2); + decisions.add(dummy2); + + AnalysisCriterion buyAndHold = new NumberOfTicksCriterion(); + assertEquals(4d, buyAndHold.summarize(series, decisions)); + } } Index: NumberOfTradesCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/NumberOfTradesCriterionTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NumberOfTradesCriterionTest.java 7 Aug 2007 19:18:27 -0000 1.1 --- NumberOfTradesCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- import java.util.ArrayList; + import java.util.LinkedList; import java.util.List; *************** *** 10,13 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 35,37 **** --- 38,59 ---- assertEquals(2d, buyAndHold.calculate(series, trades)); } + + @Test + public void testSummarize() { + SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); + List<Decision> decisions = new LinkedList<Decision>(); + + List<Trade> tradesToDummy1 = new LinkedList<Trade>(); + tradesToDummy1.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); + Decision dummy1 = new DummyDecision(tradesToDummy1); + decisions.add(dummy1); + + List<Trade> tradesToDummy2 = new LinkedList<Trade>(); + tradesToDummy2.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); + Decision dummy2 = new DummyDecision(tradesToDummy2); + decisions.add(dummy2); + + AnalysisCriterion buyAndHold = new NumberOfTradesCriterion(); + assertEquals(2d, buyAndHold.summarize(series, decisions),0.01); + } } Index: VersusBuyAndHoldCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/VersusBuyAndHoldCriterionTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VersusBuyAndHoldCriterionTest.java 7 Aug 2007 18:53:23 -0000 1.1 --- VersusBuyAndHoldCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- import java.util.ArrayList; + import java.util.LinkedList; import java.util.List; *************** *** 10,13 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 28,31 **** --- 31,53 ---- @Test + public void testSummarize() { + SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); + List<Decision> decisions = new LinkedList<Decision>(); + + List<Trade> tradesToDummy1 = new LinkedList<Trade>(); + tradesToDummy1.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); + Decision dummy1 = new DummyDecision(tradesToDummy1); + decisions.add(dummy1); + + List<Trade> tradesToDummy2 = new LinkedList<Trade>(); + tradesToDummy2.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); + Decision dummy2 = new DummyDecision(tradesToDummy2); + decisions.add(dummy2); + + AnalysisCriterion buyAndHold = new VersusBuyAndHoldCriterion(); + assertEquals(1.10 * 1.05 / 1.05, buyAndHold.summarize(series, decisions),0.01); + } + + @Test public void testCalculateOnlyWithLossTrades() { SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 95, 100, 80, 85, 70 }); Index: AverageProfitCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/AverageProfitCriterionTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** AverageProfitCriterionTest.java 7 Aug 2007 17:45:32 -0000 1.8 --- AverageProfitCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.9 *************** *** 4,7 **** --- 4,8 ---- import java.util.ArrayList; + import java.util.LinkedList; import java.util.List; *************** *** 10,13 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 35,38 **** --- 38,59 ---- } + @Test + public void testSummarize() { + series = new SampleTimeSeries(100d, 105d, 110d, 100d, 95d, 105d); + List<Decision> decisions = new LinkedList<Decision>(); + + List<Trade> tradesToDummy1 = new LinkedList<Trade>(); + tradesToDummy1.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); + Decision dummy1 = new DummyDecision(tradesToDummy1); + decisions.add(dummy1); + + List<Trade> tradesToDummy2 = new LinkedList<Trade>(); + tradesToDummy2.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); + Decision dummy2 = new DummyDecision(tradesToDummy2); + decisions.add(dummy2); + + AnalysisCriterion averageProfit = new AverageProfitCriterion(); + assertEquals(1.03, averageProfit.summarize(series, decisions),0.01); + } @Test Index: RewardRiskRatioCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/RewardRiskRatioCriterionTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** RewardRiskRatioCriterionTest.java 26 Jul 2007 20:48:55 -0000 1.9 --- RewardRiskRatioCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.10 *************** *** 5,8 **** --- 5,9 ---- import java.util.ArrayList; + import java.util.LinkedList; import java.util.List; *************** *** 10,13 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 38,41 **** --- 41,69 ---- assertEquals(((105d / 100) * (90d / 95d) * (120d / 95)) / (((105d / 100) * (100d / 95)) - (105d / 100 * 90d / 95 * 80d / 95)) , rrc.calculate(series, trades), 0.01); } + + + @Test + public void testSummarize() { + SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 95, 100, 90, 95, 80, 120 }); + List<Decision> decisions = new LinkedList<Decision>(); + + List<Trade> tradesToDummy1 = new LinkedList<Trade>(); + tradesToDummy1.add(new Trade(new Operation(0, OperationType.BUY), new Operation(1, OperationType.SELL))); + Decision dummy1 = new DummyDecision(tradesToDummy1); + decisions.add(dummy1); + + List<Trade> tradesToDummy2 = new LinkedList<Trade>(); + tradesToDummy2.add(new Trade(new Operation(2, OperationType.BUY), new Operation(4, OperationType.SELL))); + Decision dummy2 = new DummyDecision(tradesToDummy2); + decisions.add(dummy2); + + List<Trade> tradesToDummy3 = new LinkedList<Trade>(); + tradesToDummy3.add(new Trade(new Operation(5, OperationType.BUY), new Operation(7, OperationType.SELL))); + Decision dummy3 = new DummyDecision(tradesToDummy3); + decisions.add(dummy3); + + assertEquals(((105d / 100) * (90d / 95d) * (120d / 95)) / (((105d / 100) * (100d / 95)) - (105d / 100 * 90d / 95 * 80d / 95)) , rrc.summarize(series, decisions),0.01); + } + @Test public void testRewardRiskRatioCriterionOnlyWithGain() Index: BuyAndHoldCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/BuyAndHoldCriterionTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BuyAndHoldCriterionTest.java 7 Aug 2007 18:53:24 -0000 1.1 --- BuyAndHoldCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- import java.util.ArrayList; + import java.util.LinkedList; import java.util.List; *************** *** 10,13 **** --- 11,16 ---- import net.sf.tail.OperationType; import net.sf.tail.Trade; + import net.sf.tail.analysis.evaluator.Decision; + import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; *************** *** 27,30 **** --- 30,54 ---- } + + @Test + public void testSummarize() { + SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); + List<Decision> decisions = new LinkedList<Decision>(); + + List<Trade> tradesToDummy1 = new LinkedList<Trade>(); + tradesToDummy1.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); + Decision dummy1 = new DummyDecision(tradesToDummy1); + decisions.add(dummy1); + + List<Trade> tradesToDummy2 = new LinkedList<Trade>(); + tradesToDummy2.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); + Decision dummy2 = new DummyDecision(tradesToDummy2); + decisions.add(dummy2); + + AnalysisCriterion buyAndHold = new BuyAndHoldCriterion(); + assertEquals(1.05, buyAndHold.summarize(series, decisions),0.01); + } + + @Test public void testCalculateOnlyWithLossTrades() { |