|
From: Márcio V. d. S. <mv...@us...> - 2007-08-18 14:05:33
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/flow In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21249/src/test/net/sf/tail/flow Modified Files: CashFlowTest.java Log Message: refatorado CashFlow e MaximumDrawDown Index: CashFlowTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/flow/CashFlowTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** CashFlowTest.java 16 Aug 2007 21:09:11 -0000 1.6 --- CashFlowTest.java 18 Aug 2007 14:05:34 -0000 1.7 *************** *** 28,32 **** @Test ! public void testCashFlowValueWithOnlyOneTrade() { TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 2d}); --- 28,32 ---- @Test ! public void testCashFlowBuyWithOnlyOneTrade() { TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 2d}); *************** *** 39,43 **** --- 39,99 ---- assertEquals(2d, cashFlow.getValue(1), 0.0001); } + + @Test + public void testCashFlowWithSellAndBuyOperations() { + TimeSeries sampleTimeSeries = new SampleTimeSeries( 2, 1, 3, 5, 6, 3, 20); + + List<Trade> trades = new ArrayList<Trade>(); + trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(1, OperationType.SELL))); + trades.add(new Trade(new Operation(3, OperationType.BUY), new Operation(4, OperationType.SELL))); + trades.add(new Trade(new Operation(5, OperationType.SELL), new Operation(6, OperationType.BUY))); + + CashFlow cashFlow = new CashFlow(sampleTimeSeries, trades); + + assertEquals(1d , cashFlow.getValue(0), 0.0001); + assertEquals(.5 , cashFlow.getValue(1), 0.0001); + assertEquals(.5 , cashFlow.getValue(2), 0.0001); + assertEquals(.5 , cashFlow.getValue(3), 0.0001); + assertEquals(.6 , cashFlow.getValue(4), 0.0001); + assertEquals(.6 , cashFlow.getValue(5), 0.0001); + assertEquals(.09, cashFlow.getValue(6), 0.0001); + } + + @Test + public void testCashFlowSell() { + TimeSeries sampleTimeSeries = new SampleTimeSeries(1 , 2 , 4 , 8 , 16 , 32); + + List<Trade> trades = new ArrayList<Trade>(); + trades.add(new Trade(new Operation(2, OperationType.SELL), new Operation(3, OperationType.BUY))); + + CashFlow cashFlow = new CashFlow(sampleTimeSeries, trades); + + assertEquals(1d, cashFlow.getValue(0), 0.0001); + assertEquals(1d, cashFlow.getValue(1), 0.0001); + assertEquals(1d, cashFlow.getValue(2), 0.0001); + assertEquals(.5, cashFlow.getValue(3), 0.0001); + assertEquals(.5, cashFlow.getValue(4), 0.0001); + assertEquals(.5, cashFlow.getValue(5), 0.0001); + } + + @Test + public void testCashFlowShortSell() { + TimeSeries sampleTimeSeries = new SampleTimeSeries(1 , 2 , 4 , 8 , 16 , 32); + List<Trade> trades = new ArrayList<Trade>(); + trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); + trades.add(new Trade(new Operation(2, OperationType.SELL), new Operation(4, OperationType.BUY))); + trades.add(new Trade(new Operation(4, OperationType.BUY), new Operation(5, OperationType.SELL))); + + CashFlow cashFlow = new CashFlow(sampleTimeSeries, trades); + + assertEquals(1d, cashFlow.getValue(0), 0.0001); + assertEquals(2d, cashFlow.getValue(1), 0.0001); + assertEquals(4d, cashFlow.getValue(2), 0.0001); + assertEquals(2d, cashFlow.getValue(3), 0.0001); + assertEquals(1d, cashFlow.getValue(4), 0.0001); + assertEquals(2d, cashFlow.getValue(5), 0.0001); + } + @Test public void testCashFlowValueWithOnlyOneTradeAndAGapBefore() { |