You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(148) |
Jun
(48) |
Jul
(107) |
Aug
(292) |
Sep
(301) |
Oct
(530) |
Nov
(142) |
Dec
(37) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
|
Feb
|
Mar
(4) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:47:47
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv4761/src/java/net/sf/tail/report Modified Files: Report.java ReportGenerator.java Log Message: problemas com o cvs Index: ReportGenerator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/ReportGenerator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ReportGenerator.java 20 Aug 2007 22:25:40 -0000 1.6 --- ReportGenerator.java 25 Aug 2007 12:30:01 -0000 1.7 *************** *** 16,24 **** static final String FM_TEMPLATE_DIR = "src/templates"; ! public StringBuffer generate(Report report) throws IOException{ ! return generate(report,Collections.<AnalysisCriterion>emptyList()); } ! ! public StringBuffer generate(Report report,List<AnalysisCriterion> criterion) throws IOException { Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File(FM_TEMPLATE_DIR)); --- 16,24 ---- static final String FM_TEMPLATE_DIR = "src/templates"; ! public StringBuffer generate(Report report) throws IOException { ! return generate(report, Collections.<AnalysisCriterion> emptyList()); } ! ! public StringBuffer generate(Report report, List<AnalysisCriterion> criterion) throws IOException { Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File(FM_TEMPLATE_DIR)); *************** *** 27,35 **** Map<String, Object> map = new HashMap<String, Object>(); ! ! map.put("report", report); map.put("criterions", criterion); - - FreemarkerProcessor processor = new FreemarkerProcessor(cfg); --- 27,33 ---- Map<String, Object> map = new HashMap<String, Object>(); ! ! map.put("report", report); map.put("criterions", criterion); FreemarkerProcessor processor = new FreemarkerProcessor(cfg); Index: Report.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/report/Report.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Report.java 23 Aug 2007 12:47:26 -0000 1.10 --- Report.java 25 Aug 2007 12:30:01 -0000 1.11 *************** *** 21,26 **** private Number criterionValue; ! private Map<Number,AnalysisCriterion> additionalCriteria; ! public Report(AnalysisCriterion criterion, TimeSeriesSlicer slicer, List<Decision> decisions) { this.applyedCriterion = criterion; --- 21,26 ---- private Number criterionValue; ! private Map<Number, AnalysisCriterion> additionalCriteria; ! public Report(AnalysisCriterion criterion, TimeSeriesSlicer slicer, List<Decision> decisions) { this.applyedCriterion = criterion; *************** *** 30,35 **** criterionValue = criterion.summarize(slicer.getSeries(), decisions); } ! ! public Number addSummarizedCriteria(AnalysisCriterion criterion){ Number result = criterion.summarize(slicer.getSeries(), decisions); additionalCriteria.put(result, criterion); --- 30,35 ---- criterionValue = criterion.summarize(slicer.getSeries(), decisions); } ! ! public Number addSummarizedCriteria(AnalysisCriterion criterion) { Number result = criterion.summarize(slicer.getSeries(), decisions); additionalCriteria.put(result, criterion); *************** *** 53,57 **** } ! public List<Trade> getAllTrades(){ List<Trade> trades = new ArrayList<Trade>(); for (Decision decision : decisions) { --- 53,57 ---- } ! public List<Trade> getAllTrades() { List<Trade> trades = new ArrayList<Trade>(); for (Decision decision : decisions) { *************** *** 103,106 **** return true; } ! } --- 103,106 ---- return true; } ! } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:47:46
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv4761/src/java/net/sf/tail/analysis/criteria Modified Files: BuyAndHoldCriterion.java NumberOfTradesCriterion.java NumberOfTicksCriterion.java RewardRiskRatioCriterion.java VersusBuyAndHoldCriterion.java AverageProfitCriterion.java MaximumDrawDownCriterion.java TotalProfitCriterion.java Log Message: problemas com o cvs Index: MaximumDrawDownCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/MaximumDrawDownCriterion.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** MaximumDrawDownCriterion.java 15 Aug 2007 22:07:52 -0000 1.16 --- MaximumDrawDownCriterion.java 25 Aug 2007 12:30:00 -0000 1.17 *************** *** 32,38 **** return maximumDrawDown; } public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); --- 32,39 ---- return maximumDrawDown; } + public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); Index: RewardRiskRatioCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/RewardRiskRatioCriterion.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** RewardRiskRatioCriterion.java 15 Aug 2007 22:07:52 -0000 1.11 --- RewardRiskRatioCriterion.java 25 Aug 2007 12:30:00 -0000 1.12 *************** *** 18,24 **** return totalProfit.calculate(series, trades) / maxDrawnDown.calculate(series, trades); } public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); --- 18,25 ---- return totalProfit.calculate(series, trades) / maxDrawnDown.calculate(series, trades); } + public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); Index: TotalProfitCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/TotalProfitCriterion.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** TotalProfitCriterion.java 15 Aug 2007 22:07:52 -0000 1.13 --- TotalProfitCriterion.java 25 Aug 2007 12:30:00 -0000 1.14 *************** *** 23,39 **** double exitClosePrice = series.getTick(trade.getExit().getIndex()).getClosePrice(); double entryClosePrice = series.getTick(trade.getEntry().getIndex()).getClosePrice(); ! ! if(trade.getEntry().getType() == OperationType.BUY) { ! return exitClosePrice / entryClosePrice; } ! return entryClosePrice / exitClosePrice; ! } ! public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); - for (Decision decision : decisions) { --- 23,38 ---- double exitClosePrice = series.getTick(trade.getExit().getIndex()).getClosePrice(); double entryClosePrice = series.getTick(trade.getEntry().getIndex()).getClosePrice(); ! ! if (trade.getEntry().getType() == OperationType.BUY) { ! return exitClosePrice / entryClosePrice; } ! return entryClosePrice / exitClosePrice; ! } ! public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); for (Decision decision : decisions) { Index: NumberOfTradesCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/NumberOfTradesCriterion.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** NumberOfTradesCriterion.java 15 Aug 2007 22:07:52 -0000 1.3 --- NumberOfTradesCriterion.java 25 Aug 2007 12:29:59 -0000 1.4 *************** *** 15,22 **** return trades.size(); } ! public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); --- 15,22 ---- return trades.size(); } ! public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); Index: NumberOfTicksCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/NumberOfTicksCriterion.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** NumberOfTicksCriterion.java 15 Aug 2007 22:07:52 -0000 1.3 --- NumberOfTicksCriterion.java 25 Aug 2007 12:30:00 -0000 1.4 *************** *** 12,16 **** public double calculate(TimeSeries series, List<Trade> trades) { ! int nTicks = 0; for (Trade trade : trades) { nTicks += trade.getExit().getIndex() - trade.getEntry().getIndex(); --- 12,16 ---- public double calculate(TimeSeries series, List<Trade> trades) { ! int nTicks = 0; for (Trade trade : trades) { nTicks += trade.getExit().getIndex() - trade.getEntry().getIndex(); *************** *** 19,26 **** } - public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); --- 19,25 ---- } public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); *************** *** 28,31 **** return calculate(series, trades); } ! } --- 27,30 ---- return calculate(series, trades); } ! } Index: BuyAndHoldCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/BuyAndHoldCriterion.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BuyAndHoldCriterion.java 15 Aug 2007 22:07:52 -0000 1.3 --- BuyAndHoldCriterion.java 25 Aug 2007 12:29:59 -0000 1.4 *************** *** 14,21 **** return series.getTick(series.getEnd()).getClosePrice() / series.getTick(series.getBegin()).getClosePrice(); } ! public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); --- 14,21 ---- return series.getTick(series.getEnd()).getClosePrice() / series.getTick(series.getBegin()).getClosePrice(); } ! public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); Index: VersusBuyAndHoldCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/VersusBuyAndHoldCriterion.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** VersusBuyAndHoldCriterion.java 15 Aug 2007 22:07:52 -0000 1.3 --- VersusBuyAndHoldCriterion.java 25 Aug 2007 12:30:00 -0000 1.4 *************** *** 13,25 **** private AnalysisCriterion totalProfit = new TotalProfitCriterion(); ! private AnalysisCriterion buyAndHold = new BuyAndHoldCriterion(); public double calculate(TimeSeries series, List<Trade> trades) { return totalProfit.calculate(series, trades) / buyAndHold.calculate(series, trades); } ! public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); --- 13,25 ---- private AnalysisCriterion totalProfit = new TotalProfitCriterion(); ! private AnalysisCriterion buyAndHold = new BuyAndHoldCriterion(); public double calculate(TimeSeries series, List<Trade> trades) { return totalProfit.calculate(series, trades) / buyAndHold.calculate(series, trades); } ! public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); Index: AverageProfitCriterion.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/criteria/AverageProfitCriterion.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** AverageProfitCriterion.java 15 Aug 2007 22:07:52 -0000 1.9 --- AverageProfitCriterion.java 25 Aug 2007 12:30:00 -0000 1.10 *************** *** 21,25 **** public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); --- 21,25 ---- public double summarize(TimeSeries series, List<Decision> decisions) { List<Trade> trades = new LinkedList<Trade>(); ! for (Decision decision : decisions) { trades.addAll(decision.getTrades()); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:47:30
|
Update of /cvsroot/tail/TailS/src In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv5642/src Log Message: Directory /cvsroot/tail/TailS/src added to the repository |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:47:26
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv4761/src/java/net/sf/tail/analysis/evaluator Modified Files: Decision.java BestStrategyEvaluator.java Log Message: problemas com o cvs Index: BestStrategyEvaluator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator/BestStrategyEvaluator.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** BestStrategyEvaluator.java 13 Aug 2007 20:21:16 -0000 1.12 --- BestStrategyEvaluator.java 25 Aug 2007 12:30:02 -0000 1.13 *************** *** 17,20 **** --- 17,21 ---- private static final Logger LOG = Logger.getLogger(BestStrategyEvaluator.class); + private Runner runner; *************** *** 26,35 **** Iterator<Strategy> iter = strategies.iterator(); Strategy bestStrategy = iter.next(); ! Decision bestDecision = new Decision(bestStrategy, series, criterion, runner.run(bestStrategy, series .getBegin(), series.getEnd()), runner); ! ! while(iter.hasNext()) { Strategy strategy = iter.next(); Decision decision = new Decision(strategy, series, criterion, runner.run(strategy, series.getBegin(), --- 27,35 ---- Iterator<Strategy> iter = strategies.iterator(); Strategy bestStrategy = iter.next(); ! Decision bestDecision = new Decision(bestStrategy, series, criterion, runner.run(bestStrategy, series .getBegin(), series.getEnd()), runner); ! while (iter.hasNext()) { Strategy strategy = iter.next(); Decision decision = new Decision(strategy, series, criterion, runner.run(strategy, series.getBegin(), Index: Decision.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/evaluator/Decision.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Decision.java 20 Aug 2007 18:03:57 -0000 1.11 --- Decision.java 25 Aug 2007 12:30:02 -0000 1.12 *************** *** 9,16 **** import net.sf.tail.Trade; ! public class Decision{ private AnalysisCriterion criterion; ! private TimeSeries series; --- 9,16 ---- import net.sf.tail.Trade; ! public class Decision { private AnalysisCriterion criterion; ! private TimeSeries series; |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:47:08
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv19603/src/test/net/sf/tail/strategy Added Files: AbstractStrategyTest.java Log Message: Criadas assinaturas strategy and(strategy) e strategy or(strategy) na interface strategy e implementados os métodos em AbstractFactory --- NEW FILE: AbstractStrategyTest.java --- package net.sf.tail.strategy; import static org.junit.Assert.assertEquals; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import org.junit.Before; import org.junit.Test; public class AbstractStrategyTest { private Operation[] enter; private Operation[] exit; private Operation[] enter2; private Operation[] exit2; private FakeStrategy fakeStrategy; private FakeStrategy fakeStrategy2; @Before public void setUp() throws Exception { enter = new Operation[] { new Operation(0, OperationType.BUY), null, new Operation(2, OperationType.BUY), null, new Operation(4, OperationType.BUY), null}; exit = new Operation[] { null, new Operation(1, OperationType.SELL), null, new Operation(3, OperationType.SELL), null, new Operation(5, OperationType.SELL) }; enter2 = new Operation[] { null, new Operation(1, OperationType.BUY), null, null, new Operation(4, OperationType.BUY), null}; exit2 = new Operation[] { null, null, new Operation(2, OperationType.SELL), null, new Operation(4, OperationType.SELL), new Operation(5, OperationType.SELL) }; this.fakeStrategy = new FakeStrategy(enter,exit); this.fakeStrategy2 = new FakeStrategy(enter2,exit2); } @Test public void testAnd() { Strategy strategy = fakeStrategy.and(fakeStrategy2); assertEquals(false, strategy.shouldEnter(0)); assertEquals(false, strategy.shouldEnter(1)); assertEquals(false, strategy.shouldEnter(2)); assertEquals(false, strategy.shouldEnter(3)); assertEquals(true, strategy.shouldEnter(4)); assertEquals(false, strategy.shouldEnter(5)); assertEquals(false, strategy.shouldExit(0)); assertEquals(false, strategy.shouldExit(1)); assertEquals(false, strategy.shouldExit(2)); assertEquals(false, strategy.shouldExit(3)); assertEquals(false, strategy.shouldExit(4)); assertEquals(true, strategy.shouldExit(5)); } @Test public void testOr() { Strategy strategy = fakeStrategy.or(fakeStrategy2); assertEquals(true, strategy.shouldEnter(0)); assertEquals(true, strategy.shouldEnter(1)); assertEquals(true, strategy.shouldEnter(2)); assertEquals(false, strategy.shouldEnter(3)); assertEquals(true, strategy.shouldEnter(4)); assertEquals(false, strategy.shouldEnter(5)); assertEquals(false, strategy.shouldExit(0)); assertEquals(true, strategy.shouldExit(1)); assertEquals(true, strategy.shouldExit(2)); assertEquals(true, strategy.shouldExit(3)); assertEquals(true, strategy.shouldExit(4)); assertEquals(true, strategy.shouldExit(5)); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:47:06
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13150/src/test/net/sf/tail/strategy Added Files: AndStrategyTest.java OrStrategyTest.java Log Message: Criadas And e OR strategies e seu testes --- NEW FILE: OrStrategyTest.java --- package net.sf.tail.strategy; import static org.junit.Assert.*; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import org.junit.Before; import org.junit.Test; public class OrStrategyTest { private Operation[] enter; private Operation[] exit; private Operation[] enter2; private Operation[] exit2; private FakeStrategy fakeStrategy; private FakeStrategy fakeStrategy2; private Strategy orStrategy; @Before public void setUp() throws Exception { enter = new Operation[] { new Operation(0, OperationType.BUY), null, null, null, new Operation(4, OperationType.BUY), null}; exit = new Operation[] { null, new Operation(1, OperationType.SELL), null, null, null, new Operation(5, OperationType.SELL) }; enter2 = new Operation[] { null, new Operation(1, OperationType.BUY), null, null, new Operation(4, OperationType.BUY), null}; exit2 = new Operation[] { null, null, new Operation(2, OperationType.SELL), null, null, new Operation(5, OperationType.SELL) }; this.fakeStrategy = new FakeStrategy(enter,exit); this.fakeStrategy2 = new FakeStrategy(enter2,exit2); this.orStrategy = new OrStrategy(fakeStrategy,fakeStrategy2); } @Test public void AndStrategyShouldEnterWhenThe2StrategiesEnter() { assertEquals(true, orStrategy.shouldEnter(0)); assertEquals(true, orStrategy.shouldEnter(1)); assertEquals(false, orStrategy.shouldEnter(2)); assertEquals(false, orStrategy.shouldEnter(3)); assertEquals(true, orStrategy.shouldEnter(4)); assertEquals(false, orStrategy.shouldEnter(5)); } @Test public void AndStrategyShouldExitWhenThe2StrategiesExit() { assertEquals(false, orStrategy.shouldExit(0)); assertEquals(true, orStrategy.shouldExit(1)); assertEquals(true, orStrategy.shouldExit(2)); assertEquals(false, orStrategy.shouldExit(3)); assertEquals(false, orStrategy.shouldExit(4)); assertEquals(true, orStrategy.shouldExit(5)); } } --- NEW FILE: AndStrategyTest.java --- package net.sf.tail.strategy; import static org.junit.Assert.*; import net.sf.tail.Operation; import net.sf.tail.OperationType; import org.junit.Before; import org.junit.Test; public class AndStrategyTest { private Operation[] enter; private Operation[] exit; private Operation[] enter2; private Operation[] exit2; private FakeStrategy fakeStrategy; private FakeStrategy fakeStrategy2; private AndStrategy andStrategy; @Before public void setUp() throws Exception { enter = new Operation[] { new Operation(0, OperationType.BUY), null, new Operation(2, OperationType.BUY), null, new Operation(4, OperationType.BUY), null}; exit = new Operation[] { null, new Operation(1, OperationType.SELL), null, new Operation(3, OperationType.SELL), null, new Operation(5, OperationType.SELL) }; enter2 = new Operation[] { null, new Operation(1, OperationType.BUY), null, null, new Operation(4, OperationType.BUY), null}; exit2 = new Operation[] { null, null, new Operation(2, OperationType.SELL), null, new Operation(4, OperationType.SELL), new Operation(5, OperationType.SELL) }; this.fakeStrategy = new FakeStrategy(enter,exit); this.fakeStrategy2 = new FakeStrategy(enter2,exit2); this.andStrategy = new AndStrategy(fakeStrategy,fakeStrategy2); } @Test public void AndStrategyShouldEnterWhenThe2StrategiesEnter() { assertEquals(false, andStrategy.shouldEnter(0)); assertEquals(false, andStrategy.shouldEnter(1)); assertEquals(false, andStrategy.shouldEnter(2)); assertEquals(false, andStrategy.shouldEnter(3)); assertEquals(true, andStrategy.shouldEnter(4)); assertEquals(false, andStrategy.shouldEnter(5)); } @Test public void AndStrategyShouldExitWhenThe2StrategiesExit() { assertEquals(false, andStrategy.shouldExit(0)); assertEquals(false, andStrategy.shouldExit(1)); assertEquals(false, andStrategy.shouldExit(2)); assertEquals(false, andStrategy.shouldExit(3)); assertEquals(false, andStrategy.shouldExit(4)); assertEquals(true, andStrategy.shouldExit(5)); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:47:02
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/helper In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv4761/src/java/net/sf/tail/indicator/helper Modified Files: CrossIndicator.java AverageLossIndicator.java HighestValueIndicator.java LowestValueIndicator.java AverageGainIndicator.java Log Message: problemas com o cvs Index: HighestValueIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/helper/HighestValueIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** HighestValueIndicator.java 26 Jul 2007 22:23:33 -0000 1.4 --- HighestValueIndicator.java 25 Aug 2007 12:30:00 -0000 1.5 *************** *** 25,29 **** public String getName() { ! return getClass().getSimpleName()+" timeFrame: "+timeFrame; } } --- 25,29 ---- public String getName() { ! return getClass().getSimpleName() + " timeFrame: " + timeFrame; } } Index: CrossIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/helper/CrossIndicator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** CrossIndicator.java 8 Aug 2007 18:32:20 -0000 1.6 --- CrossIndicator.java 25 Aug 2007 12:30:00 -0000 1.7 *************** *** 15,19 **** public Boolean getValue(int index) { ! int i = index; if (i == 0 || up.getValue(i).doubleValue() >= (low.getValue(i).doubleValue())) --- 15,19 ---- public Boolean getValue(int index) { ! int i = index; if (i == 0 || up.getValue(i).doubleValue() >= (low.getValue(i).doubleValue())) Index: AverageGainIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/helper/AverageGainIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AverageGainIndicator.java 26 Jul 2007 22:23:33 -0000 1.4 --- AverageGainIndicator.java 25 Aug 2007 12:30:00 -0000 1.5 *************** *** 24,28 **** public String getName() { ! return getClass().getSimpleName() + " timeFrame: "+timeFrame; } --- 24,28 ---- public String getName() { ! return getClass().getSimpleName() + " timeFrame: " + timeFrame; } Index: AverageLossIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/helper/AverageLossIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AverageLossIndicator.java 26 Jul 2007 22:23:33 -0000 1.4 --- AverageLossIndicator.java 25 Aug 2007 12:30:00 -0000 1.5 *************** *** 24,28 **** public String getName() { ! return getClass().getSimpleName() + " timeFrame: "+timeFrame; ! } } --- 24,28 ---- public String getName() { ! return getClass().getSimpleName() + " timeFrame: " + timeFrame; ! } } Index: LowestValueIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/helper/LowestValueIndicator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** LowestValueIndicator.java 26 Jul 2007 22:23:33 -0000 1.3 --- LowestValueIndicator.java 25 Aug 2007 12:30:00 -0000 1.4 *************** *** 23,29 **** return lowest; } ! public String getName() { ! return getClass().getSimpleName()+" timeFrame: "+timeFrame; } } --- 23,29 ---- return lowest; } ! public String getName() { ! return getClass().getSimpleName() + " timeFrame: " + timeFrame; } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:46:37
|
Update of /cvsroot/tail/TailS In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv5683 Added Files: .classpath .project Log Message: Hello World !!!! --- NEW FILE: .project --- <?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>TailS</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> </natures> </projectDescription> --- NEW FILE: .classpath --- <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> <classpathentry kind="output" path="bin"/> </classpath> |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:46:09
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv19603/src/java/net/sf/tail Modified Files: Strategy.java Log Message: Criadas assinaturas strategy and(strategy) e strategy or(strategy) na interface strategy e implementados os métodos em AbstractFactory Index: Strategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/Strategy.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Strategy.java 23 Aug 2007 12:47:26 -0000 1.7 --- Strategy.java 25 Aug 2007 14:19:45 -0000 1.8 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail; + /** * Strategy é toda a classe que pode receber como parâmetro um {@link Indicator} *************** *** 22,25 **** --- 23,30 ---- boolean shouldExit(int index); + + Strategy and(Strategy strategy); + + Strategy or(Strategy strategy); String getName(); |
|
From: Thies <tg...@us...> - 2007-08-27 14:46:03
|
Update of /cvsroot/tail/Tail/src/templates/slice In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1766/src/templates/slice Added Files: sliceReport.ftl header.ftl footer.ftl Log Message: Template do SliceReport --- NEW FILE: sliceReport.ftl --- <#include "header.ftl"> <table align="left"> <tr> <th>Trade</th> <th>Buy Date</th> <th>Buy Price</th> <th>Sell Date</th> <th>Sell Price</th> <#list criteria as criterion> <th> ${criterion.class.simpleName} </th> </#list> </tr> <#assign x=1> <#list decision.trades as trade> <#if (x%2)= 0> <tr class="row1"> <#else> <tr class="row2"> </#if> <td>${x}</td> <td class="date">${decision.series.getTick(trade.entry.index).date}</td> <td class="date">${decision.series.getTick(trade.entry.index).closePrice}</td> <td class="date">${decision.series.getTick(trade.exit.index).date}</td> <td class="date">${decision.series.getTick(trade.exit.index).closePrice}</td> <#list criteria as criterion> <td> ${criterion.calculate(decision.series, decision.trades.get(x - 1))}</td> </#list> <#assign x=x+1> </#list> </tr> <tr class="total"> <td>TOTAL</td> <td>${decision.series.getTick(decision.trades.get(0).entry.index).date}</td> <td>-</td> <td>${decision.series.getTick(decision.trades.get(decision.trades.size() - 1).exit.index).date}</td> <td>-</td> <#list criteria as criterion> <td>${criterion.calculate(decision.series, decision.trades)} </td> </#list> </tr> </table> <#include "footer.ftl"> --- NEW FILE: header.ftl --- <html> <head> <title>Walk Forward Report</title> <link rel="stylesheet" type="text/css" href="../style.css"> </head> <body> <h1>Slice Report</h1> <h2>Stock: <span class="titleHeader">${decision.series.name}</span></h2> <h3> <span class="settingsFixed">Strategy: </span> <span class="settings">${decision.strategy.class.simpleName}</span> <span class="settingsFixed">Criteria: </span> <span class="settings">${decision.criterion.class.simpleName}</span></h3> --- NEW FILE: footer.ftl --- </body> </html> |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-27 14:45:58
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv4495/src/java/net/sf/tail/strategy Modified Files: PipeEnterStrategy.java Log Message: Index: PipeEnterStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/strategy/PipeEnterStrategy.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** PipeEnterStrategy.java 25 Aug 2007 12:30:00 -0000 1.9 --- PipeEnterStrategy.java 27 Aug 2007 13:03:34 -0000 1.10 *************** *** 26,32 **** public boolean shouldEnter(int index) { - // if (crossUp.getValue(index)) - // return true; - if (crossDown.getValue(index)) return true; --- 26,29 ---- *************** *** 35,41 **** public boolean shouldExit(int index) { - // if (crossDown.getValue(index)) - // return true; - if (crossUp.getValue(index)) return true; --- 32,35 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:41
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/indicator/simple Modified Files: VariationPriceIndicatorTest.java ConstantIndicatorTest.java VolumeIndicatorTest.java MaxPriceIndicatorTest.java TradeIndicatorTest.java PreviousPriceIndicatorTest.java AmountIndicatorTest.java ClosePriceIndicatorTest.java MinPriceIndicatorTest.java OpenPriceIndicatorTest.java Log Message: Index: VolumeIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/VolumeIndicatorTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** VolumeIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.8 --- VolumeIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.9 *************** *** 30,36 **** volumeIndicator.getValue(10); } @Test ! public void testGetName() ! { assertEquals("VolumeIndicator", volumeIndicator.getName()); } --- 30,36 ---- volumeIndicator.getValue(10); } + @Test ! public void testGetName() { assertEquals("VolumeIndicator", volumeIndicator.getName()); } Index: AmountIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/AmountIndicatorTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** AmountIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.8 --- AmountIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.9 *************** *** 31,38 **** amountIndicator.getValue(10); } ! @Test ! public void testGetName() ! { assertEquals("AmountIndicator", amountIndicator.getName()); } --- 31,37 ---- amountIndicator.getValue(10); } ! @Test ! public void testGetName() { assertEquals("AmountIndicator", amountIndicator.getName()); } Index: MaxPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/MaxPriceIndicatorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** MaxPriceIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.11 --- MaxPriceIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.12 *************** *** 31,40 **** maxPriceIndicator.getValue(10); } ! @Test ! public void testGetName() ! { assertEquals("MaxPriceIndicator", maxPriceIndicator.getName()); } ! } --- 31,39 ---- maxPriceIndicator.getValue(10); } ! @Test ! public void testGetName() { assertEquals("MaxPriceIndicator", maxPriceIndicator.getName()); } ! } Index: TradeIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/TradeIndicatorTest.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** TradeIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.13 --- TradeIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.14 *************** *** 31,37 **** tradeIndicator.getValue(10); } @Test ! public void testGetName() ! { assertEquals("TradeIndicator", tradeIndicator.getName()); } --- 31,37 ---- tradeIndicator.getValue(10); } + @Test ! public void testGetName() { assertEquals("TradeIndicator", tradeIndicator.getName()); } Index: ConstantIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/ConstantIndicatorTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ConstantIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.6 --- ConstantIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.7 *************** *** 22,28 **** assertEquals(30.33, constantIndicator.getValue(30)); } @Test ! public void testGetName() ! { assertEquals("ConstantIndicator Value: 30.33", constantIndicator.getName()); } --- 22,28 ---- assertEquals(30.33, constantIndicator.getValue(30)); } + @Test ! public void testGetName() { assertEquals("ConstantIndicator Value: 30.33", constantIndicator.getName()); } Index: OpenPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/OpenPriceIndicatorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** OpenPriceIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.11 --- OpenPriceIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.12 *************** *** 30,36 **** openPriceIndicator.getValue(10); } @Test ! public void testGetName() ! { assertEquals("OpenPriceIndicator", openPriceIndicator.getName()); } --- 30,36 ---- openPriceIndicator.getValue(10); } + @Test ! public void testGetName() { assertEquals("OpenPriceIndicator", openPriceIndicator.getName()); } Index: VariationPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/VariationPriceIndicatorTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** VariationPriceIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.9 --- VariationPriceIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.10 *************** *** 32,38 **** variationIndicator.getValue(10); } @Test ! public void testGetName() ! { assertEquals("VariationIndicator", variationIndicator.getName()); } --- 32,38 ---- variationIndicator.getValue(10); } + @Test ! public void testGetName() { assertEquals("VariationIndicator", variationIndicator.getName()); } Index: MinPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/MinPriceIndicatorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** MinPriceIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.11 --- MinPriceIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.12 *************** *** 30,37 **** minPriceIndicator.getValue(10); } ! @Test ! public void testGetName() ! { assertEquals("MinPriceIndicator", minPriceIndicator.getName()); } --- 30,36 ---- minPriceIndicator.getValue(10); } ! @Test ! public void testGetName() { assertEquals("MinPriceIndicator", minPriceIndicator.getName()); } Index: ClosePriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/ClosePriceIndicatorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ClosePriceIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.11 --- ClosePriceIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.12 *************** *** 32,38 **** closePrice.getValue(10); } @Test ! public void testGetName() ! { assertEquals("ClosePriceIndicator", closePrice.getName()); } --- 32,38 ---- closePrice.getValue(10); } + @Test ! public void testGetName() { assertEquals("ClosePriceIndicator", closePrice.getName()); } Index: PreviousPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/PreviousPriceIndicatorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** PreviousPriceIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.11 --- PreviousPriceIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.12 *************** *** 31,37 **** previousPriceIndicator.getValue(10); } @Test ! public void testGetName() ! { assertEquals("PreviousPriceIndicator", previousPriceIndicator.getName()); } --- 31,37 ---- previousPriceIndicator.getValue(10); } + @Test ! public void testGetName() { assertEquals("PreviousPriceIndicator", previousPriceIndicator.getName()); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:39
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/analysis/evaluator Modified Files: BestStrategyEvaluatorTest.java SampleDecision.java DecisionTest.java DummyDecision.java Log Message: Index: BestStrategyEvaluatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/BestStrategyEvaluatorTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BestStrategyEvaluatorTest.java 13 Aug 2007 20:21:16 -0000 1.5 --- BestStrategyEvaluatorTest.java 23 Aug 2007 12:51:08 -0000 1.6 *************** *** 22,42 **** private Operation[] enter; private Operation[] exit; private AlwaysOperateStrategy alwaysStrategy; private FakeStrategy buyAndHoldStrategy; private HashSet<Strategy> strategies; @Before public void setUp() { ! enter = new Operation[] { new Operation(0, OperationType.BUY), ! null, ! null, ! null ! }; ! exit = new Operation[] { null, ! null, ! null, ! new Operation(4, OperationType.SELL) ! }; alwaysStrategy = new AlwaysOperateStrategy(); buyAndHoldStrategy = new FakeStrategy(enter, exit); --- 22,38 ---- private Operation[] enter; + private Operation[] exit; + private AlwaysOperateStrategy alwaysStrategy; + private FakeStrategy buyAndHoldStrategy; + private HashSet<Strategy> strategies; @Before public void setUp() { ! enter = new Operation[] { new Operation(0, OperationType.BUY), null, null, null }; ! exit = new Operation[] { null, null, null, new Operation(4, OperationType.SELL) }; alwaysStrategy = new AlwaysOperateStrategy(); buyAndHoldStrategy = new FakeStrategy(enter, exit); *************** *** 45,68 **** strategies.add(buyAndHoldStrategy); } ! ! @Test public void ! bestShouldBeAlwaysOperateOnProfit() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] {6.0, 9.0, 6.0, 6.0}); TimeSeries constrainedSeries = new ConstrainedTimeSeries(series, 0, 3); ! BestStrategyEvaluator evaluator = new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY)); Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(alwaysStrategy, decision.getStrategy()); } ! @Test public void ! bestShouldBeBuyAndHoldOnLoss() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] {6.0, 3.0, 6.0, 6.0}); TimeSeries constrainedSeries = new ConstrainedTimeSeries(series, 0, 3); ! BestStrategyEvaluator evaluator = new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY)); Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(buyAndHoldStrategy, decision.getStrategy()); } --- 41,64 ---- strategies.add(buyAndHoldStrategy); } ! ! @Test ! public void bestShouldBeAlwaysOperateOnProfit() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 6.0, 9.0, 6.0, 6.0 }); TimeSeries constrainedSeries = new ConstrainedTimeSeries(series, 0, 3); ! BestStrategyEvaluator evaluator = new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY)); Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(alwaysStrategy, decision.getStrategy()); } ! @Test ! public void bestShouldBeBuyAndHoldOnLoss() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 6.0, 3.0, 6.0, 6.0 }); TimeSeries constrainedSeries = new ConstrainedTimeSeries(series, 0, 3); ! BestStrategyEvaluator evaluator = new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY)); Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(buyAndHoldStrategy, decision.getStrategy()); } Index: DecisionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/DecisionTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** DecisionTest.java 8 Aug 2007 18:09:06 -0000 1.9 --- DecisionTest.java 23 Aug 2007 12:51:08 -0000 1.10 *************** *** 24,33 **** private TimeSeries series; private AnalysisCriterion criteria; private Runner runner; @Before public void setUp() { ! criteria = new TotalProfitCriterion(); runner = new HistoryRunner(OperationType.BUY); } --- 24,35 ---- private TimeSeries series; + private AnalysisCriterion criteria; + private Runner runner; @Before public void setUp() { ! criteria = new TotalProfitCriterion(); runner = new HistoryRunner(OperationType.BUY); } *************** *** 35,59 **** @Test public void testEvaluateCriterion() { - - series = new SampleTimeSeries(3d, 5d, 7d, 9d ); - - Operation[] buy = new Operation[] { - new Operation(0, OperationType.BUY), - null, - new Operation(2, OperationType.BUY), - null - }; ! Operation[] sell = new Operation[] { ! null, ! new Operation(1, OperationType.SELL), ! null, ! new Operation(3, OperationType.SELL) ! }; Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, criteria, runner.run(fakeStrategy, series ! .getBegin(), series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(45d / 21, decision.evaluateCriterion(), 0.001); } --- 37,53 ---- @Test public void testEvaluateCriterion() { ! series = new SampleTimeSeries(3d, 5d, 7d, 9d); ! ! Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, ! new Operation(2, OperationType.BUY), null }; ! ! Operation[] sell = new Operation[] { null, new Operation(1, OperationType.SELL), null, ! new Operation(3, OperationType.SELL) }; Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, criteria, runner.run(fakeStrategy, series.getBegin(), ! series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(45d / 21, decision.evaluateCriterion(), 0.001); } *************** *** 61,72 **** @Test public void testEvaluateCriterionNotSelling() { ! series = new SampleTimeSeries(3d, 1d, 7d, 9d ); ! Operation[] buy = new Operation[] { ! new Operation(0, OperationType.BUY), ! null, ! new Operation(2, OperationType.BUY), ! null ! }; Operation[] sell = new Operation[] { null, null, null, null }; --- 55,62 ---- @Test public void testEvaluateCriterionNotSelling() { ! series = new SampleTimeSeries(3d, 1d, 7d, 9d); ! Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, ! new Operation(2, OperationType.BUY), null }; Operation[] sell = new Operation[] { null, null, null, null }; *************** *** 74,79 **** Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, criteria, runner.run(fakeStrategy, series ! .getBegin(), series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(3d, decision.evaluateCriterion(), 0.0001); } --- 64,69 ---- Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, criteria, runner.run(fakeStrategy, series.getBegin(), ! series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(3d, decision.evaluateCriterion(), 0.0001); } *************** *** 83,92 **** series = new SampleTimeSeries(3d, 1d, 7d, 9d); ! Operation[] buy = new Operation[] { ! new Operation(0, OperationType.BUY), ! null, ! new Operation(2, OperationType.BUY), ! null ! }; Operation[] sell = new Operation[] { null, null, null, null }; --- 73,78 ---- series = new SampleTimeSeries(3d, 1d, 7d, 9d); ! Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, ! new Operation(2, OperationType.BUY), null }; Operation[] sell = new Operation[] { null, null, null, null }; *************** *** 94,99 **** Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, null, runner.run(fakeStrategy, series ! .getBegin(), series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(Math.pow(3d, 1d / 3), decision.evaluateCriterion(new AverageProfitCriterion()), 0.0001); } --- 80,85 ---- Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, null, runner.run(fakeStrategy, series.getBegin(), series ! .getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(Math.pow(3d, 1d / 3), decision.evaluateCriterion(new AverageProfitCriterion()), 0.0001); } *************** *** 101,118 **** @Test public void testApplyFor() { ! series = new SampleTimeSeries(1d,2d,3d,4d,5d); ! TimeSeries nextSeries = new SampleTimeSeries(5d,5d,5d,5d,5d); ! ! Operation[] buy = new Operation[] {new Operation(0,OperationType.BUY), null, null, null, null}; ! Operation[] sell = new Operation[] {null, null, null, null, new Operation(4,OperationType.SELL)}; Strategy fakeStrategy = new FakeStrategy(buy, sell); List<Trade> trades = runner.run(fakeStrategy, series.getBegin(), series.getEnd()); Decision decision = new Decision(fakeStrategy, series, criteria, trades, new HistoryRunner(OperationType.BUY)); ! Decision nextDecision = new Decision(fakeStrategy, nextSeries, criteria, runner.run(fakeStrategy,nextSeries.getBegin(),nextSeries.getEnd()), new HistoryRunner(OperationType.BUY)); ! Decision appliedDecision = decision.applyFor(nextSeries); ! ! assertEquals(nextDecision,appliedDecision ); assertEquals(1d, appliedDecision.evaluateCriterion()); assertEquals(nextSeries, appliedDecision.getSeries()); --- 87,105 ---- @Test public void testApplyFor() { ! series = new SampleTimeSeries(1d, 2d, 3d, 4d, 5d); ! TimeSeries nextSeries = new SampleTimeSeries(5d, 5d, 5d, 5d, 5d); ! ! Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, null, null, null }; ! Operation[] sell = new Operation[] { null, null, null, null, new Operation(4, OperationType.SELL) }; Strategy fakeStrategy = new FakeStrategy(buy, sell); List<Trade> trades = runner.run(fakeStrategy, series.getBegin(), series.getEnd()); Decision decision = new Decision(fakeStrategy, series, criteria, trades, new HistoryRunner(OperationType.BUY)); ! Decision nextDecision = new Decision(fakeStrategy, nextSeries, criteria, runner.run(fakeStrategy, nextSeries ! .getBegin(), nextSeries.getEnd()), new HistoryRunner(OperationType.BUY)); ! Decision appliedDecision = decision.applyFor(nextSeries); ! ! assertEquals(nextDecision, appliedDecision); assertEquals(1d, appliedDecision.evaluateCriterion()); assertEquals(nextSeries, appliedDecision.getSeries()); Index: SampleDecision.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/SampleDecision.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SampleDecision.java 8 Aug 2007 17:19:51 -0000 1.2 --- SampleDecision.java 23 Aug 2007 12:51:08 -0000 1.3 *************** *** 5,9 **** public class SampleDecision extends Decision { ! private double value; --- 5,9 ---- public class SampleDecision extends Decision { ! private double value; *************** *** 12,16 **** this.value = value; } ! @Override public double evaluateCriterion() { --- 12,16 ---- this.value = value; } ! @Override public double evaluateCriterion() { Index: DummyDecision.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/DummyDecision.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DummyDecision.java 9 Aug 2007 15:21:26 -0000 1.4 --- DummyDecision.java 23 Aug 2007 12:51:08 -0000 1.5 *************** *** 9,13 **** public class DummyDecision extends Decision { ! private double value; --- 9,13 ---- public class DummyDecision extends Decision { ! private double value; *************** *** 16,28 **** this.value = value; } ! public DummyDecision(List<Trade> trades) { ! super(null, null, null, trades,new HistoryRunner(OperationType.BUY)); } ! @Override public double evaluateCriterion() { return this.value; } ! } --- 16,28 ---- this.value = value; } ! public DummyDecision(List<Trade> trades) { ! super(null, null, null, trades, new HistoryRunner(OperationType.BUY)); } ! @Override public double evaluateCriterion() { return this.value; } ! } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:39
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/helper In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/indicator/helper Modified Files: AverageLossIndicatorTest.java LowestValueIndicatorTest.java StandardDeviationIndicatorTest.java HighestValueIndicatorTest.java AverageGainIndicatorTest.java Log Message: Index: StandardDeviationIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/helper/StandardDeviationIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** StandardDeviationIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.3 --- StandardDeviationIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.4 *************** *** 66,73 **** quoteSDV.getValue(13); } ! @Test ! public void testGetName() ! { StandardDeviationIndicator quoteSDV = new StandardDeviationIndicator(new ClosePriceIndicator(data), 3); assertEquals("StandardDeviationIndicator timeFrame: 3", quoteSDV.getName()); --- 66,72 ---- quoteSDV.getValue(13); } ! @Test ! public void testGetName() { StandardDeviationIndicator quoteSDV = new StandardDeviationIndicator(new ClosePriceIndicator(data), 3); assertEquals("StandardDeviationIndicator timeFrame: 3", quoteSDV.getName()); Index: AverageLossIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/helper/AverageLossIndicatorTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AverageLossIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.4 --- AverageLossIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.5 *************** *** 49,53 **** public void testAverageLossWhenTimeFrameIsGreaterThanIndex() { AverageLossIndicator averageLoss = new AverageLossIndicator(new ClosePriceIndicator(data), 1000); ! assertEquals(5d/data.getSize(), averageLoss.getValue(12), 0.01); } --- 49,53 ---- public void testAverageLossWhenTimeFrameIsGreaterThanIndex() { AverageLossIndicator averageLoss = new AverageLossIndicator(new ClosePriceIndicator(data), 1000); ! assertEquals(5d / data.getSize(), averageLoss.getValue(12), 0.01); } *************** *** 57,61 **** assertEquals(0, averageLoss.getValue(0), 0.01); } ! @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { --- 57,61 ---- assertEquals(0, averageLoss.getValue(0), 0.01); } ! @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { *************** *** 63,69 **** assertEquals(3d, averageLoss.getValue(300)); } @Test ! public void testGetName() ! { AverageLossIndicator averageLoss = new AverageLossIndicator(new ClosePriceIndicator(data), 5); assertEquals("AverageLossIndicator timeFrame: 5", averageLoss.getName()); --- 63,69 ---- assertEquals(3d, averageLoss.getValue(300)); } + @Test ! public void testGetName() { AverageLossIndicator averageLoss = new AverageLossIndicator(new ClosePriceIndicator(data), 5); assertEquals("AverageLossIndicator timeFrame: 5", averageLoss.getName()); Index: AverageGainIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/helper/AverageGainIndicatorTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AverageGainIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.4 --- AverageGainIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.5 *************** *** 48,52 **** public void testAverageGainWhenTimeFrameIsGreaterThanIndicatorDataShouldBeCalculatedWithDataSize() { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 1000); ! assertEquals(6d/data.getSize(), averageGain.getValue(12), 0.01); } --- 48,52 ---- public void testAverageGainWhenTimeFrameIsGreaterThanIndicatorDataShouldBeCalculatedWithDataSize() { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 1000); ! assertEquals(6d / data.getSize(), averageGain.getValue(12), 0.01); } *************** *** 56,60 **** assertEquals(0, averageGain.getValue(0), 0.01); } ! @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { --- 56,60 ---- assertEquals(0, averageGain.getValue(0), 0.01); } ! @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { *************** *** 62,71 **** assertEquals(3d, averageGain.getValue(300)); } @Test ! public void testGetName() ! { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); assertEquals("AverageGainIndicator timeFrame: 5", averageGain.getName()); } ! } --- 62,71 ---- assertEquals(3d, averageGain.getValue(300)); } + @Test ! public void testGetName() { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); assertEquals("AverageGainIndicator timeFrame: 5", averageGain.getName()); } ! } Index: HighestValueIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/helper/HighestValueIndicatorTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** HighestValueIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.4 --- HighestValueIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.5 *************** *** 45,49 **** assertEquals(6d, highestValue.getValue(12), 0.01); } ! @Test public void testHighestValueShouldWorkJumpingIndexes() { --- 45,49 ---- assertEquals(6d, highestValue.getValue(12), 0.01); } ! @Test public void testHighestValueShouldWorkJumpingIndexes() { *************** *** 60,65 **** @Test ! public void testGetName() ! { HighestValueIndicator highestValue = new HighestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals("HighestValueIndicator timeFrame: 5", highestValue.getName()); --- 60,64 ---- @Test ! public void testGetName() { HighestValueIndicator highestValue = new HighestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals("HighestValueIndicator timeFrame: 5", highestValue.getName()); Index: LowestValueIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/helper/LowestValueIndicatorTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** LowestValueIndicatorTest.java 26 Jul 2007 22:23:34 -0000 1.4 --- LowestValueIndicatorTest.java 23 Aug 2007 12:51:09 -0000 1.5 *************** *** 52,56 **** assertEquals(1d, lowestValue.getValue(12), 0.01); } ! @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { --- 52,56 ---- assertEquals(1d, lowestValue.getValue(12), 0.01); } ! @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { *************** *** 58,64 **** assertEquals(3d, lowestValue.getValue(300)); } @Test ! public void testGetName() ! { LowestValueIndicator lowestValue = new LowestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals("LowestValueIndicator timeFrame: 5", lowestValue.getName()); --- 58,64 ---- assertEquals(3d, lowestValue.getValue(300)); } + @Test ! public void testGetName() { LowestValueIndicator lowestValue = new LowestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals("LowestValueIndicator timeFrame: 5", lowestValue.getName()); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:38
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail Modified Files: ReportXmlSerializerTest.java EMAWalkTest.java TradeTest.java StockAnalysisXmlSerializerTest.java OperationTest.java EMACompleteTest.java Log Message: Index: EMACompleteTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/EMACompleteTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** EMACompleteTest.java 21 Aug 2007 15:35:23 -0000 1.8 --- EMACompleteTest.java 23 Aug 2007 12:51:08 -0000 1.9 *************** *** 40,48 **** public class EMACompleteTest { - public void testCompleteSMAGenerate() throws IOException { CedroTimeSeriesLoader ctsl = new CedroTimeSeriesLoader(); TimeSeries timeSeries = null; ! try { timeSeries = ctsl.load(new FileInputStream("BaseBovespa/15min/ambv4.csv"), "Ambev (ambv4)"); --- 40,47 ---- public class EMACompleteTest { public void testCompleteSMAGenerate() throws IOException { CedroTimeSeriesLoader ctsl = new CedroTimeSeriesLoader(); TimeSeries timeSeries = null; ! try { timeSeries = ctsl.load(new FileInputStream("BaseBovespa/15min/ambv4.csv"), "Ambev (ambv4)"); *************** *** 54,61 **** Walker w = new WalkForward(new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY))); ! Set<Strategy> strategies = new HashSet<Strategy>(); Indicator<Double> close = new ClosePriceIndicator(timeSeries); ! for (int i = 4; i < 20; i++) { Indicator<Double> tracker = new EMAIndicator(close, i); Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); --- 53,60 ---- Walker w = new WalkForward(new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY))); ! Set<Strategy> strategies = new HashSet<Strategy>(); Indicator<Double> close = new ClosePriceIndicator(timeSeries); ! for (int i = 4; i < 20; i++) { Indicator<Double> tracker = new EMAIndicator(close, i); Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); *************** *** 63,81 **** } ! Report r = w.walk(strategies,new SlicerByTimePeriod(timeSeries,new Period().withMonths(1), SlicerType.MEMORIZED),new TotalProfitCriterion()); ! List<AnalysisCriterion> criteria = new LinkedList<AnalysisCriterion>(); criteria.add(new NumberOfTradesCriterion()); criteria.add(new NumberOfTicksCriterion()); ! criteria.add(new MaximumDrawDownCriterion()); ! criteria.add(new RewardRiskRatioCriterion()); ! ! CashFlow cashflow = new CashFlow(timeSeries, r.getAllTrades(),timeSeries.getTick(0).getClosePrice()); ! StockAndCashFlowDataset stockData = new StockAndCashFlowDataset(timeSeries, close,cashflow); StockAndCashFlowChart stockChart = new StockAndCashFlowChart(stockData); JFreeChart jfreechart = stockChart.createChart(""); ! ChartUtilities.saveChartAsPNG(new File("src/templates/ambev.png"), jfreechart, 800, 300); ! ! StringBuffer html = new ReportGenerator().generate(r,criteria); File reportHtml = new File("src/templates/report.html"); OutputStream out = new BufferedOutputStream(new FileOutputStream(reportHtml)); --- 62,81 ---- } ! Report r = w.walk(strategies, new SlicerByTimePeriod(timeSeries, new Period().withMonths(1), ! SlicerType.MEMORIZED), new TotalProfitCriterion()); ! List<AnalysisCriterion> criteria = new LinkedList<AnalysisCriterion>(); criteria.add(new NumberOfTradesCriterion()); criteria.add(new NumberOfTicksCriterion()); ! criteria.add(new MaximumDrawDownCriterion()); ! criteria.add(new RewardRiskRatioCriterion()); ! ! CashFlow cashflow = new CashFlow(timeSeries, r.getAllTrades(), timeSeries.getTick(0).getClosePrice()); ! StockAndCashFlowDataset stockData = new StockAndCashFlowDataset(timeSeries, close, cashflow); StockAndCashFlowChart stockChart = new StockAndCashFlowChart(stockData); JFreeChart jfreechart = stockChart.createChart(""); ! ChartUtilities.saveChartAsPNG(new File("src/templates/ambev.png"), jfreechart, 800, 300); ! ! StringBuffer html = new ReportGenerator().generate(r, criteria); File reportHtml = new File("src/templates/report.html"); OutputStream out = new BufferedOutputStream(new FileOutputStream(reportHtml)); *************** *** 84,88 **** write.close(); } ! public static void main(String[] args) { EMACompleteTest emaTest = new EMACompleteTest(); --- 84,88 ---- write.close(); } ! public static void main(String[] args) { EMACompleteTest emaTest = new EMACompleteTest(); Index: EMAWalkTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/EMAWalkTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** EMAWalkTest.java 20 Aug 2007 21:31:20 -0000 1.11 --- EMAWalkTest.java 23 Aug 2007 12:51:08 -0000 1.12 *************** *** 53,67 **** Report report = forward.walk(strategies, slicer, new TotalProfitCriterion()); ReportGenerator generator = new ReportGenerator(); ! // talvez tenha de colocar outros criterions List<AnalysisCriterion> criterions = new ArrayList<AnalysisCriterion>(); ! ! criterions.add(new AverageProfitCriterion()); criterions.add(new MaximumDrawDownCriterion()); ! criterions.add(new RewardRiskRatioCriterion()); ! ! StringBuffer buffer = generator.generate(report,criterions); System.out.println(buffer); } --- 53,65 ---- Report report = forward.walk(strategies, slicer, new TotalProfitCriterion()); ReportGenerator generator = new ReportGenerator(); ! // talvez tenha de colocar outros criterions List<AnalysisCriterion> criterions = new ArrayList<AnalysisCriterion>(); ! criterions.add(new AverageProfitCriterion()); criterions.add(new MaximumDrawDownCriterion()); ! criterions.add(new RewardRiskRatioCriterion()); ! StringBuffer buffer = generator.generate(report, criterions); System.out.println(buffer); } Index: StockAnalysisXmlSerializerTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/StockAnalysisXmlSerializerTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** StockAnalysisXmlSerializerTest.java 21 Aug 2007 20:58:35 -0000 1.2 --- StockAnalysisXmlSerializerTest.java 23 Aug 2007 12:51:08 -0000 1.3 *************** *** 32,111 **** public class StockAnalysisXmlSerializerTest { - public void testXMLSerialize() { ! Stock stock = new Stock("test","BaseBovespa/15min/ambv4.csv"); ! AnalysisCriterion applyedCriterion = new TotalProfitCriterion(); ! CedroTimeSeriesLoader ctsl = new CedroTimeSeriesLoader(); ! TimeSeries timeSeries = null; ! try { ! timeSeries = ctsl.load(new FileInputStream(stock.getSeriesAdress()), "Por favor me tire esse campo"); ! } catch (FileNotFoundException e) { ! e.printStackTrace(); ! } catch (IOException e) { ! e.printStackTrace(); ! } ! TimeSeriesSlicer slicer = new SlicerByTimePeriod(timeSeries,new Period().withDays(1), SlicerType.MEMORIZED); ! Runner runner = new HistoryRunner(OperationType.BUY); ! Evaluator evaluator = new BestStrategyEvaluator(runner); ! StockAnalysis stockAnalysis = new StockAnalysis(stock,applyedCriterion,slicer,evaluator); ! stockAnalysis.addCriterion(new MaximumDrawDownCriterion()); ! stockAnalysis.addCriterion(new AverageProfitCriterion()); ! stockAnalysis.addCriterion(new NumberOfTicksCriterion()); ! ! Set<Strategy> strategies = new HashSet<Strategy>(); ! for (int i = 4; i < 20; i++) { ! Indicator<Double> close = new ClosePriceIndicator(timeSeries); ! Indicator<Double> tracker = new EMAIndicator(close, i); ! Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); ! strategies.add(strategy); ! } ! stockAnalysis.createReport(strategies); ! ! strategies = new HashSet<Strategy>(); ! for (int i = 4; i < 20; i++) { ! Indicator<Double> close = new ClosePriceIndicator(timeSeries); ! Indicator<Double> tracker = new SMAIndicator(close, i); ! Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); ! strategies.add(strategy); ! } ! ! stockAnalysis.createReport(strategies); ! ! strategies = new HashSet<Strategy>(); ! for (int i = 4; i < 20; i++) { ! Indicator<Double> close = new ClosePriceIndicator(timeSeries); ! Indicator<Double> tracker = new WilliamsRIndicator(timeSeries,i); ! Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); ! strategies.add(strategy); ! } ! ! stockAnalysis.createReport(strategies); ! ! Serializer<StockAnalysis> serializer = new Serializer<StockAnalysis>(); ! String xml = serializer.toXML(stockAnalysis); ! ! try { ! FileOutputStream fos = new FileOutputStream("xml/StockAnalysisTest.xml"); ! OutputStreamWriter osw = new OutputStreamWriter(fos); ! BufferedWriter bw = new BufferedWriter(osw); ! bw.write(xml); ! bw.close(); ! ! } catch (FileNotFoundException e) { ! e.printStackTrace(); ! }catch (IOException e) { ! e.printStackTrace(); ! } } ! public static void main(String[] args) { StockAnalysisXmlSerializerTest xmlSerializer = new StockAnalysisXmlSerializerTest(); --- 32,110 ---- public class StockAnalysisXmlSerializerTest { public void testXMLSerialize() { ! Stock stock = new Stock("test", "BaseBovespa/15min/ambv4.csv"); ! AnalysisCriterion applyedCriterion = new TotalProfitCriterion(); ! CedroTimeSeriesLoader ctsl = new CedroTimeSeriesLoader(); ! TimeSeries timeSeries = null; ! try { ! timeSeries = ctsl.load(new FileInputStream(stock.getSeriesAdress()), "Por favor me tire esse campo"); ! } catch (FileNotFoundException e) { ! e.printStackTrace(); ! } catch (IOException e) { ! e.printStackTrace(); ! } ! TimeSeriesSlicer slicer = new SlicerByTimePeriod(timeSeries, new Period().withDays(1), SlicerType.MEMORIZED); ! Runner runner = new HistoryRunner(OperationType.BUY); ! Evaluator evaluator = new BestStrategyEvaluator(runner); ! StockAnalysis stockAnalysis = new StockAnalysis(stock, applyedCriterion, slicer, evaluator); ! stockAnalysis.addCriterion(new MaximumDrawDownCriterion()); ! stockAnalysis.addCriterion(new AverageProfitCriterion()); ! stockAnalysis.addCriterion(new NumberOfTicksCriterion()); ! Set<Strategy> strategies = new HashSet<Strategy>(); ! for (int i = 4; i < 20; i++) { ! Indicator<Double> close = new ClosePriceIndicator(timeSeries); ! Indicator<Double> tracker = new EMAIndicator(close, i); ! Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); ! strategies.add(strategy); ! } ! stockAnalysis.createReport(strategies); ! strategies = new HashSet<Strategy>(); ! ! for (int i = 4; i < 20; i++) { ! Indicator<Double> close = new ClosePriceIndicator(timeSeries); ! Indicator<Double> tracker = new SMAIndicator(close, i); ! Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); ! strategies.add(strategy); ! } ! ! stockAnalysis.createReport(strategies); ! ! strategies = new HashSet<Strategy>(); ! ! for (int i = 4; i < 20; i++) { ! Indicator<Double> close = new ClosePriceIndicator(timeSeries); ! Indicator<Double> tracker = new WilliamsRIndicator(timeSeries, i); ! Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); ! strategies.add(strategy); ! } ! ! stockAnalysis.createReport(strategies); ! ! Serializer<StockAnalysis> serializer = new Serializer<StockAnalysis>(); ! String xml = serializer.toXML(stockAnalysis); ! ! try { ! FileOutputStream fos = new FileOutputStream("xml/StockAnalysisTest.xml"); ! OutputStreamWriter osw = new OutputStreamWriter(fos); ! BufferedWriter bw = new BufferedWriter(osw); ! bw.write(xml); ! bw.close(); ! ! } catch (FileNotFoundException e) { ! e.printStackTrace(); ! } catch (IOException e) { ! e.printStackTrace(); ! } } ! public static void main(String[] args) { StockAnalysisXmlSerializerTest xmlSerializer = new StockAnalysisXmlSerializerTest(); Index: TradeTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/TradeTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TradeTest.java 21 Aug 2007 20:58:35 -0000 1.6 --- TradeTest.java 23 Aug 2007 12:51:08 -0000 1.7 *************** *** 9,61 **** public class TradeTest { - - private Trade trade, uncoveredTrade, trEquals1, trEquals2, - trNotEquals1, trNotEquals2; ! @Before public void setUp() { this.trade = new Trade(); this.uncoveredTrade = new Trade(OperationType.SELL); ! trEquals1 = new Trade(); trEquals1.operate(1); trEquals1.operate(2); ! trEquals2 = new Trade(); trEquals2.operate(1); trEquals2.operate(2); ! trNotEquals1 = new Trade(OperationType.SELL); trNotEquals1.operate(1); trNotEquals1.operate(2); ! trNotEquals2 = new Trade(OperationType.SELL); trNotEquals2.operate(1); ! trNotEquals2.operate(2); } ! ! @Test public void ! whenNewShouldCreateBuyOperationWhenEntering() { trade.operate(0); assertEquals(new Operation(0, OperationType.BUY), trade.getEntry()); } ! ! @Test public void ! whenNewShouldNotExit() { Trade trade = new Trade(); assertFalse(trade.isOpened()); } ! ! @Test public void ! whenOpenedShouldCreateSellOperationWhenExiting() { Trade trade = new Trade(); trade.operate(0); trade.operate(1); ! assertEquals(new Operation(1, OperationType.SELL), trade.getExit()); } ! @Test ! public void ! whenClosedShouldNotEnter() { Trade trade = new Trade(); trade.operate(0); --- 9,60 ---- public class TradeTest { ! private Trade trade, uncoveredTrade, trEquals1, trEquals2, trNotEquals1, trNotEquals2; ! ! @Before ! public void setUp() { this.trade = new Trade(); this.uncoveredTrade = new Trade(OperationType.SELL); ! trEquals1 = new Trade(); trEquals1.operate(1); trEquals1.operate(2); ! trEquals2 = new Trade(); trEquals2.operate(1); trEquals2.operate(2); ! trNotEquals1 = new Trade(OperationType.SELL); trNotEquals1.operate(1); trNotEquals1.operate(2); ! trNotEquals2 = new Trade(OperationType.SELL); trNotEquals2.operate(1); ! trNotEquals2.operate(2); } ! ! @Test ! public void whenNewShouldCreateBuyOperationWhenEntering() { trade.operate(0); assertEquals(new Operation(0, OperationType.BUY), trade.getEntry()); } ! ! @Test ! public void whenNewShouldNotExit() { Trade trade = new Trade(); assertFalse(trade.isOpened()); } ! ! @Test ! public void whenOpenedShouldCreateSellOperationWhenExiting() { Trade trade = new Trade(); trade.operate(0); trade.operate(1); ! assertEquals(new Operation(1, OperationType.SELL), trade.getExit()); } ! @Test ! public void whenClosedShouldNotEnter() { Trade trade = new Trade(); trade.operate(0); *************** *** 66,72 **** } ! @Test(expected = IllegalStateException.class) ! public void ! whenExitIndexIsLessThanEntryIndexShouldThrowException() { Trade trade = new Trade(); trade.operate(3); --- 65,70 ---- } ! @Test(expected = IllegalStateException.class) ! public void whenExitIndexIsLessThanEntryIndexShouldThrowException() { Trade trade = new Trade(); trade.operate(3); *************** *** 74,79 **** } ! @Test public void ! shouldCloseTradeOnSameIndex() { Trade trade = new Trade(); trade.operate(3); --- 72,77 ---- } ! @Test ! public void shouldCloseTradeOnSameIndex() { Trade trade = new Trade(); trade.operate(3); *************** *** 81,137 **** assertTrue(trade.isClosed()); } ! ! @Test(expected = NullPointerException.class) public void ! shouldThrowNullPointerExceptionWhenOperationTyprIsNull() { @SuppressWarnings("unused") Trade t = new Trade(null); ! } ! @Test public void ! whenNewShouldCreateSellOperationWhenEnteringUncovered() { uncoveredTrade.operate(0); ! assertEquals(new Operation(0, OperationType.SELL), uncoveredTrade.getEntry()); } ! ! @Test public void ! whenOpenedShouldCreateBuyOperationWhenExitingUncovered() { uncoveredTrade.operate(0); uncoveredTrade.operate(1); ! assertEquals(new Operation(1, OperationType.BUY), uncoveredTrade.getExit()); } ! @Test ! public void testOverrideOperationEquals() ! { assertTrue(trEquals1.equals(trEquals2)); assertTrue(trEquals2.equals(trEquals1)); ! assertFalse(trEquals1.equals(trNotEquals1)); assertFalse(trEquals1.equals(trNotEquals2)); ! assertFalse(trEquals2.equals(trNotEquals1)); assertFalse(trEquals2.equals(trNotEquals2)); ! } ! @Test ! public void testOverrideOperationHashCode() ! { ! assertEquals(trEquals1.hashCode(),trEquals2.hashCode()); ! assertTrue(trEquals1.hashCode() != trNotEquals1.hashCode()); assertTrue(trEquals1.hashCode() != trNotEquals2.hashCode()); } ! @Test ! public void testOverrideToString() ! { ! assertEquals(trEquals1.toString(),trEquals2.toString()); ! assertFalse(trEquals1.toString().equals(trNotEquals1.toString())); assertFalse(trEquals1.toString().equals(trNotEquals2.toString())); ! } } --- 79,133 ---- assertTrue(trade.isClosed()); } ! ! @Test(expected = NullPointerException.class) ! public void shouldThrowNullPointerExceptionWhenOperationTyprIsNull() { @SuppressWarnings("unused") Trade t = new Trade(null); ! } ! ! @Test ! public void whenNewShouldCreateSellOperationWhenEnteringUncovered() { uncoveredTrade.operate(0); ! assertEquals(new Operation(0, OperationType.SELL), uncoveredTrade.getEntry()); } ! ! @Test ! public void whenOpenedShouldCreateBuyOperationWhenExitingUncovered() { uncoveredTrade.operate(0); uncoveredTrade.operate(1); ! assertEquals(new Operation(1, OperationType.BUY), uncoveredTrade.getExit()); } ! @Test ! public void testOverrideOperationEquals() { assertTrue(trEquals1.equals(trEquals2)); assertTrue(trEquals2.equals(trEquals1)); ! assertFalse(trEquals1.equals(trNotEquals1)); assertFalse(trEquals1.equals(trNotEquals2)); ! assertFalse(trEquals2.equals(trNotEquals1)); assertFalse(trEquals2.equals(trNotEquals2)); ! } ! @Test ! public void testOverrideOperationHashCode() { ! assertEquals(trEquals1.hashCode(), trEquals2.hashCode()); ! assertTrue(trEquals1.hashCode() != trNotEquals1.hashCode()); assertTrue(trEquals1.hashCode() != trNotEquals2.hashCode()); } ! @Test ! public void testOverrideToString() { ! assertEquals(trEquals1.toString(), trEquals2.toString()); ! assertFalse(trEquals1.toString().equals(trNotEquals1.toString())); assertFalse(trEquals1.toString().equals(trNotEquals2.toString())); ! } } Index: OperationTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/OperationTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OperationTest.java 7 Jul 2007 18:45:24 -0000 1.2 --- OperationTest.java 23 Aug 2007 12:51:08 -0000 1.3 *************** *** 11,64 **** public class OperationTest { ! Operation opEquals1, opEquals2, ! opNotEquals1, opNotEquals2; ! @Before ! public void setUp() ! { opEquals1 = new Operation(1, OperationType.BUY); opEquals2 = new Operation(1, OperationType.BUY); ! opNotEquals1 = new Operation(1, OperationType.SELL); opNotEquals2 = new Operation(2, OperationType.BUY); } ! @Test ! public void testOverrideOperationEquals() ! { assertTrue(opEquals1.equals(opEquals2)); assertTrue(opEquals2.equals(opEquals1)); ! assertFalse(opEquals1.equals(opNotEquals1)); assertFalse(opEquals1.equals(opNotEquals2)); ! assertFalse(opEquals2.equals(opNotEquals1)); assertFalse(opEquals2.equals(opNotEquals2)); ! } ! @Test ! public void testOverrideOperationHashCode() ! { ! assertEquals(opEquals1.hashCode(),opEquals2.hashCode()); ! assertTrue(opEquals1.hashCode() != opNotEquals1.hashCode()); assertTrue(opEquals1.hashCode() != opNotEquals2.hashCode()); } ! @Test ! public void testOverrideToString() ! { ! assertEquals(opEquals1.toString(),opEquals2.toString()); ! assertFalse(opEquals1.toString().equals(opNotEquals1.toString())); assertFalse(opEquals1.toString().equals(opNotEquals2.toString())); ! } ! public static junit.framework.Test suite() { return new JUnit4TestAdapter(OperationTest.class); } ! } --- 11,59 ---- public class OperationTest { ! Operation opEquals1, opEquals2, opNotEquals1, opNotEquals2; ! @Before ! public void setUp() { opEquals1 = new Operation(1, OperationType.BUY); opEquals2 = new Operation(1, OperationType.BUY); ! opNotEquals1 = new Operation(1, OperationType.SELL); opNotEquals2 = new Operation(2, OperationType.BUY); } ! @Test ! public void testOverrideOperationEquals() { assertTrue(opEquals1.equals(opEquals2)); assertTrue(opEquals2.equals(opEquals1)); ! assertFalse(opEquals1.equals(opNotEquals1)); assertFalse(opEquals1.equals(opNotEquals2)); ! assertFalse(opEquals2.equals(opNotEquals1)); assertFalse(opEquals2.equals(opNotEquals2)); ! } ! @Test ! public void testOverrideOperationHashCode() { ! assertEquals(opEquals1.hashCode(), opEquals2.hashCode()); ! assertTrue(opEquals1.hashCode() != opNotEquals1.hashCode()); assertTrue(opEquals1.hashCode() != opNotEquals2.hashCode()); } ! @Test ! public void testOverrideToString() { ! assertEquals(opEquals1.toString(), opEquals2.toString()); ! assertFalse(opEquals1.toString().equals(opNotEquals1.toString())); assertFalse(opEquals1.toString().equals(opNotEquals2.toString())); ! } ! public static junit.framework.Test suite() { return new JUnit4TestAdapter(OperationTest.class); } ! } Index: ReportXmlSerializerTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/ReportXmlSerializerTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ReportXmlSerializerTest.java 20 Aug 2007 22:31:54 -0000 1.1 --- ReportXmlSerializerTest.java 23 Aug 2007 12:51:08 -0000 1.2 *************** *** 27,36 **** public class ReportXmlSerializerTest { - public void testXMLSerialize() { ! CedroTimeSeriesLoader ctsl = new CedroTimeSeriesLoader(); TimeSeries timeSeries = null; ! try { timeSeries = ctsl.load(new FileInputStream("BaseBovespa/15min/ambv4.csv"), "AMBV4 IntraDAY"); --- 27,35 ---- public class ReportXmlSerializerTest { public void testXMLSerialize() { ! CedroTimeSeriesLoader ctsl = new CedroTimeSeriesLoader(); TimeSeries timeSeries = null; ! try { timeSeries = ctsl.load(new FileInputStream("BaseBovespa/15min/ambv4.csv"), "AMBV4 IntraDAY"); *************** *** 42,48 **** Walker w = new WalkForward(new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY))); ! Set<Strategy> strategies = new HashSet<Strategy>(); ! for (int i = 4; i < 20; i++) { Indicator<Double> close = new ClosePriceIndicator(timeSeries); --- 41,47 ---- Walker w = new WalkForward(new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY))); ! Set<Strategy> strategies = new HashSet<Strategy>(); ! for (int i = 4; i < 20; i++) { Indicator<Double> close = new ClosePriceIndicator(timeSeries); *************** *** 52,59 **** } ! Report r = w.walk(strategies,new SlicerByTimePeriod(timeSeries,new Period().withDays(1), SlicerType.MEMORIZED),new TotalProfitCriterion()); Serializer<Report> serializer = new Serializer<Report>(); String xml = serializer.toXML(r); ! try { FileOutputStream fos = new FileOutputStream("xml/ReportTest.xml"); --- 51,60 ---- } ! Report r = w.walk(strategies, ! new SlicerByTimePeriod(timeSeries, new Period().withDays(1), SlicerType.MEMORIZED), ! new TotalProfitCriterion()); Serializer<Report> serializer = new Serializer<Report>(); String xml = serializer.toXML(r); ! try { FileOutputStream fos = new FileOutputStream("xml/ReportTest.xml"); *************** *** 62,73 **** bw.write(xml); bw.close(); ! } catch (FileNotFoundException e) { e.printStackTrace(); ! }catch (IOException e) { e.printStackTrace(); } } ! public static void main(String[] args) { ReportXmlSerializerTest xmlSerializer = new ReportXmlSerializerTest(); --- 63,74 ---- bw.write(xml); bw.close(); ! } catch (FileNotFoundException e) { e.printStackTrace(); ! } catch (IOException e) { e.printStackTrace(); } } ! public static void main(String[] args) { ReportXmlSerializerTest xmlSerializer = new ReportXmlSerializerTest(); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:38
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/flow In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/flow Modified Files: CashFlowTest.java Log Message: Index: CashFlowTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/flow/CashFlowTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** CashFlowTest.java 21 Aug 2007 20:58:34 -0000 1.8 --- CashFlowTest.java 23 Aug 2007 12:51:08 -0000 1.9 *************** *** 26,33 **** } - @Test public void testCashFlowBuyWithOnlyOneTrade() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 2d}); List<Trade> trades = new ArrayList<Trade>(); --- 26,32 ---- } @Test public void testCashFlowBuyWithOnlyOneTrade() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 2d }); List<Trade> trades = new ArrayList<Trade>(); *************** *** 39,46 **** 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>(); --- 38,45 ---- 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>(); *************** *** 51,66 **** 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 testCashFlowWithInitialValue() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries( 2, 1, 3, 5, 6, 3, 20); List<Trade> trades = new ArrayList<Trade>(); --- 50,65 ---- 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 testCashFlowWithInitialValue() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(2, 1, 3, 5, 6, 3, 20); List<Trade> trades = new ArrayList<Trade>(); *************** *** 71,86 **** CashFlow cashFlow = new CashFlow(sampleTimeSeries, trades, 100); ! assertEquals(100d , cashFlow.getValue(0), 0.0001); ! assertEquals(50d , cashFlow.getValue(1), 0.0001); ! assertEquals(50d , cashFlow.getValue(2), 0.0001); ! assertEquals(50d , cashFlow.getValue(3), 0.0001); ! assertEquals(60d , cashFlow.getValue(4), 0.0001); ! assertEquals(60d , cashFlow.getValue(5), 0.0001); assertEquals(9d, 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>(); --- 70,85 ---- CashFlow cashFlow = new CashFlow(sampleTimeSeries, trades, 100); ! assertEquals(100d, cashFlow.getValue(0), 0.0001); ! assertEquals(50d, cashFlow.getValue(1), 0.0001); ! assertEquals(50d, cashFlow.getValue(2), 0.0001); ! assertEquals(50d, cashFlow.getValue(3), 0.0001); ! assertEquals(60d, cashFlow.getValue(4), 0.0001); ! assertEquals(60d, cashFlow.getValue(5), 0.0001); assertEquals(9d, 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>(); *************** *** 96,103 **** 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>(); --- 95,102 ---- 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>(); *************** *** 115,122 **** assertEquals(2d, cashFlow.getValue(5), 0.0001); } ! @Test public void testCashFlowValueWithOnlyOneTradeAndAGapBefore() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 1d, 2d}); List<Trade> trades = new ArrayList<Trade>(); --- 114,121 ---- assertEquals(2d, cashFlow.getValue(5), 0.0001); } ! @Test public void testCashFlowValueWithOnlyOneTradeAndAGapBefore() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 1d, 2d }); List<Trade> trades = new ArrayList<Trade>(); *************** *** 132,136 **** @Test public void testCashFlowValueWithOnlyOneTradeAndAGapAfter() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 2d, 2d}); List<Trade> trades = new ArrayList<Trade>(); --- 131,135 ---- @Test public void testCashFlowValueWithOnlyOneTradeAndAGapAfter() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 2d, 2d }); List<Trade> trades = new ArrayList<Trade>(); *************** *** 138,143 **** CashFlow cashFlow = new CashFlow(sampleTimeSeries, trades); ! ! assertEquals(3, cashFlow.getSize()); assertEquals(1d, cashFlow.getValue(0), 0.0001); --- 137,141 ---- CashFlow cashFlow = new CashFlow(sampleTimeSeries, trades); ! assertEquals(3, cashFlow.getSize()); assertEquals(1d, cashFlow.getValue(0), 0.0001); *************** *** 148,152 **** @Test public void testCashFlowValueWithTwoTradesAndLongTimeWithoutOperations() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 2d, 4d, 8d, 16d, 32d}); List<Trade> trades = new ArrayList<Trade>(); --- 146,150 ---- @Test public void testCashFlowValueWithTwoTradesAndLongTimeWithoutOperations() { ! TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 1d, 2d, 4d, 8d, 16d, 32d }); List<Trade> trades = new ArrayList<Trade>(); *************** *** 205,209 **** } ! @Test(expected=RuntimeException.class) public void testCashFlowWithIllegalArgument() { TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 3d, 2d, 5d, 4d, 7d, 6d, 7d, 8d, 5d, 6d }); --- 203,207 ---- } ! @Test(expected = RuntimeException.class) public void testCashFlowWithIllegalArgument() { TimeSeries sampleTimeSeries = new SampleTimeSeries(new double[] { 3d, 2d, 5d, 4d, 7d, 6d, 7d, 8d, 5d, 6d }); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:36
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/report In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/report Modified Files: ReportTest.java ReportGeneratorTest.java Log Message: Index: ReportTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/report/ReportTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ReportTest.java 21 Aug 2007 20:58:34 -0000 1.1 --- ReportTest.java 23 Aug 2007 12:51:08 -0000 1.2 *************** *** 25,29 **** --- 25,31 ---- private List<Decision> decisions; + private SlicerByTimePeriod slicer; + private List<Trade> trades; *************** *** 39,58 **** new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); ! slicer = new SlicerByTimePeriod(series,new Period().withYears(1), SlicerType.MEMORIZED); } ! ! @Test public void testGetAllTrades() throws IOException { ! Report report = new Report(new TotalProfitCriterion(),slicer , decisions); assertEquals(trades, report.getAllTrades()); ! } ! ! @Test public void testGetCriterionValue() throws IOException { ! Report report = new Report(new TotalProfitCriterion(),slicer , decisions); assertEquals(4.5, report.getCriterionValue()); } --- 41,58 ---- new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); ! slicer = new SlicerByTimePeriod(series, new Period().withYears(1), SlicerType.MEMORIZED); } ! @Test public void testGetAllTrades() throws IOException { ! Report report = new Report(new TotalProfitCriterion(), slicer, decisions); assertEquals(trades, report.getAllTrades()); ! } ! @Test public void testGetCriterionValue() throws IOException { ! Report report = new Report(new TotalProfitCriterion(), slicer, decisions); assertEquals(4.5, report.getCriterionValue()); } Index: ReportGeneratorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/report/ReportGeneratorTest.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** ReportGeneratorTest.java 20 Aug 2007 18:15:29 -0000 1.17 --- ReportGeneratorTest.java 23 Aug 2007 12:51:08 -0000 1.18 *************** *** 25,28 **** --- 25,29 ---- private List<Decision> decisions; + private SlicerByTimePeriod slicer; *************** *** 38,54 **** new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); ! slicer = new SlicerByTimePeriod(series,new Period().withYears(1), SlicerType.MEMORIZED); } ! ! @Test public void testSMAGenerate() throws IOException { ! Report report = new Report(new TotalProfitCriterion(),slicer , decisions); StringBuffer html = new ReportGenerator().generate(report); System.out.println(html); ! assertTrue(html.toString().contains("TotalProfitCriterion")); assertTrue(html.toString().contains("4,5")); ! } } --- 39,54 ---- new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); ! slicer = new SlicerByTimePeriod(series, new Period().withYears(1), SlicerType.MEMORIZED); } ! @Test public void testSMAGenerate() throws IOException { ! Report report = new Report(new TotalProfitCriterion(), slicer, decisions); StringBuffer html = new ReportGenerator().generate(report); System.out.println(html); ! assertTrue(html.toString().contains("TotalProfitCriterion")); assertTrue(html.toString().contains("4,5")); ! } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:20
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/analysis/criteria Modified Files: VersusBuyAndHoldCriterionTest.java NumberOfTicksCriterionTest.java AverageProfitCriterionTest.java MaximumDrawDownCriterionTest.java RewardRiskRatioCriterionTest.java NumberOfTradesCriterionTest.java BuyAndHoldCriterionTest.java TotalProfitCriterionTest.java Log Message: Index: TotalProfitCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/TotalProfitCriterionTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TotalProfitCriterionTest.java 26 Jul 2007 20:48:55 -0000 1.6 --- TotalProfitCriterionTest.java 23 Aug 2007 12:51:10 -0000 1.7 *************** *** 57,60 **** assertEquals(1d, profit.calculate(series, trades)); } ! } --- 57,60 ---- assertEquals(1d, profit.calculate(series, trades)); } ! } Index: MaximumDrawDownCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/MaximumDrawDownCriterionTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** MaximumDrawDownCriterionTest.java 18 Aug 2007 14:05:33 -0000 1.9 --- MaximumDrawDownCriterionTest.java 23 Aug 2007 12:51:10 -0000 1.10 *************** *** 18,22 **** public class MaximumDrawDownCriterionTest { - @Test public void testCalculateWithNoTrades() { --- 18,21 ---- *************** *** 75,79 **** @Test public void testWithSimpleTrades() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 1, 10, 5, 6, 1}); MaximumDrawDownCriterion mdd = new MaximumDrawDownCriterion(); List<Trade> trades = new ArrayList<Trade>(); --- 74,78 ---- @Test public void testWithSimpleTrades() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 1, 10, 5, 6, 1 }); MaximumDrawDownCriterion mdd = new MaximumDrawDownCriterion(); List<Trade> trades = new ArrayList<Trade>(); *************** *** 83,112 **** trades.add(new Trade(new Operation(3, OperationType.BUY), new Operation(4, OperationType.SELL))); // TODO: should raise IndexOutOfBoundsException ! //trades.add(new Trade(new Operation(4, OperationType.BUY), new Operation(5, OperationType.SELL))); assertEquals(9d, 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(); --- 82,111 ---- trades.add(new Trade(new Operation(3, OperationType.BUY), new Operation(4, OperationType.SELL))); // TODO: should raise IndexOutOfBoundsException ! // trades.add(new Trade(new Operation(4, OperationType.BUY), new ! // Operation(5, OperationType.SELL))); assertEquals(9d, 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(); Index: NumberOfTicksCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/NumberOfTicksCriterionTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NumberOfTicksCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.2 --- NumberOfTicksCriterionTest.java 23 Aug 2007 12:51:10 -0000 1.3 *************** *** 23,27 **** SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); List<Trade> trades = new ArrayList<Trade>(); ! AnalysisCriterion buyAndHold = new NumberOfTicksCriterion(); assertEquals(0d, buyAndHold.calculate(series, trades)); --- 23,27 ---- SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); List<Trade> trades = new ArrayList<Trade>(); ! AnalysisCriterion buyAndHold = new NumberOfTicksCriterion(); assertEquals(0d, buyAndHold.calculate(series, trades)); *************** *** 38,42 **** assertEquals(4d, buyAndHold.calculate(series, trades)); } - @Test --- 38,41 ---- *************** *** 44,58 **** 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)); --- 43,57 ---- 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.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NumberOfTradesCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.2 --- NumberOfTradesCriterionTest.java 23 Aug 2007 12:51:10 -0000 1.3 *************** *** 23,27 **** SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); List<Trade> trades = new ArrayList<Trade>(); ! AnalysisCriterion buyAndHold = new NumberOfTradesCriterion(); assertEquals(0d, buyAndHold.calculate(series, trades)); --- 23,27 ---- SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 110, 100, 95, 105 }); List<Trade> trades = new ArrayList<Trade>(); ! AnalysisCriterion buyAndHold = new NumberOfTradesCriterion(); assertEquals(0d, buyAndHold.calculate(series, trades)); *************** *** 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); } } --- 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.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** VersusBuyAndHoldCriterionTest.java 15 Aug 2007 22:07:53 -0000 1.3 --- VersusBuyAndHoldCriterionTest.java 23 Aug 2007 12:51:10 -0000 1.4 *************** *** 34,43 **** 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))); --- 34,43 ---- 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))); *************** *** 45,51 **** decisions.add(dummy2); AnalysisCriterion buyAndHold = new VersusBuyAndHoldCriterion(); ! assertEquals(1.10 * 1.05 / 1.05, buyAndHold.summarize(series, decisions),0.01); } ! @Test public void testCalculateOnlyWithLossTrades() { --- 45,51 ---- decisions.add(dummy2); AnalysisCriterion buyAndHold = new VersusBuyAndHoldCriterion(); ! assertEquals(1.10 * 1.05 / 1.05, buyAndHold.summarize(series, decisions), 0.01); } ! @Test public void testCalculateOnlyWithLossTrades() { Index: AverageProfitCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/AverageProfitCriterionTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** AverageProfitCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.9 --- AverageProfitCriterionTest.java 23 Aug 2007 12:51:10 -0000 1.10 *************** *** 42,60 **** 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 public void testCalculateWithASimpleTrade() { --- 42,60 ---- 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 public void testCalculateWithASimpleTrade() { *************** *** 66,70 **** } - @Test public void testCalculateOnlyWithLossTrades() { --- 66,69 ---- Index: RewardRiskRatioCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/RewardRiskRatioCriterionTest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** RewardRiskRatioCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.10 --- RewardRiskRatioCriterionTest.java 23 Aug 2007 12:51:10 -0000 1.11 *************** *** 21,31 **** private RewardRiskRatioCriterion rrc; ! @Before ! public void setUp() ! { this.rrc = new RewardRiskRatioCriterion(); } ! @Test public void testRewardRiskRatioCriterion() { --- 21,30 ---- private RewardRiskRatioCriterion rrc; ! @Before ! public void setUp() { this.rrc = new RewardRiskRatioCriterion(); } ! @Test public void testRewardRiskRatioCriterion() { *************** *** 34,45 **** trades.add(new Trade(new Operation(2, OperationType.BUY), new Operation(4, OperationType.SELL))); trades.add(new Trade(new Operation(5, OperationType.BUY), new Operation(7, OperationType.SELL))); ! ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 95, 100, 90, 95, 80, 120 }); ! ! ! assertEquals(((105d / 100) * (90d / 95d) * (120d / 95)) / (((105d / 100) * (100d / 95)) - (105d / 100 * 90d / 95 * 80d / 95)) , rrc.calculate(series, trades), 0.01); } - @Test --- 33,43 ---- trades.add(new Trade(new Operation(2, OperationType.BUY), new Operation(4, OperationType.SELL))); trades.add(new Trade(new Operation(5, OperationType.BUY), new Operation(7, OperationType.SELL))); ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 100, 105, 95, 100, 90, 95, 80, 120 }); ! ! assertEquals(((105d / 100) * (90d / 95d) * (120d / 95)) ! / (((105d / 100) * (100d / 95)) - (105d / 100 * 90d / 95 * 80d / 95)), rrc.calculate(series, trades), ! 0.01); } @Test *************** *** 47,92 **** 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() ! { SampleTimeSeries series = new SampleTimeSeries(new double[] { 1, 2, 3, 6, 8, 20, 3 }); 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(2, OperationType.BUY), new Operation(5, OperationType.SELL))); ! assertTrue(Double.isInfinite(rrc.calculate(series, trades))); ! } ! @Test ! public void testRewardRiskRatioCriterionWithNoTrades() ! { SampleTimeSeries series = new SampleTimeSeries(new double[] { 1, 2, 3, 6, 8, 20, 3 }); List<Trade> trades = new ArrayList<Trade>(); ! assertTrue(Double.isInfinite(rrc.calculate(series, trades))); - - } - } --- 45,88 ---- 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() { SampleTimeSeries series = new SampleTimeSeries(new double[] { 1, 2, 3, 6, 8, 20, 3 }); 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(2, OperationType.BUY), new Operation(5, OperationType.SELL))); ! assertTrue(Double.isInfinite(rrc.calculate(series, trades))); ! } ! @Test ! public void testRewardRiskRatioCriterionWithNoTrades() { SampleTimeSeries series = new SampleTimeSeries(new double[] { 1, 2, 3, 6, 8, 20, 3 }); List<Trade> trades = new ArrayList<Trade>(); ! assertTrue(Double.isInfinite(rrc.calculate(series, trades))); + } } Index: BuyAndHoldCriterionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria/BuyAndHoldCriterionTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** BuyAndHoldCriterionTest.java 9 Aug 2007 15:21:25 -0000 1.2 --- BuyAndHoldCriterionTest.java 23 Aug 2007 12:51:10 -0000 1.3 *************** *** 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() { --- 30,52 ---- } @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() { *************** *** 70,73 **** assertEquals(0.7, buyAndHold.calculate(series, trades)); } ! } --- 68,71 ---- assertEquals(0.7, buyAndHold.calculate(series, trades)); } ! } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:17
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/graphics In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/graphics Modified Files: ChartForReportTest.java ChartTest.java StockAndCashFlowChartTest.java CashFlowDatasetTest.java SeriesDatasetTest.java StockAndCashFlowDatasetTest.java CombinedSeriesAndFlowChartTest.java Log Message: Index: ChartTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/graphics/ChartTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ChartTest.java 20 Aug 2007 21:31:21 -0000 1.4 --- ChartTest.java 23 Aug 2007 12:51:10 -0000 1.5 *************** *** 33,44 **** import org.jfree.ui.RefineryUtilities; ! public class ChartTest extends ApplicationFrame implements ActionListener{ private static final long serialVersionUID = -6626066873257820845L; private SeriesDataset seriesDataset; private final List<Indicator<? extends Number>> indicators; private final TimeSeries timeSeries; - private int seriesEndIndex = 50; public ChartTest(String chartName) { --- 33,47 ---- import org.jfree.ui.RefineryUtilities; ! public class ChartTest extends ApplicationFrame implements ActionListener { private static final long serialVersionUID = -6626066873257820845L; + private SeriesDataset seriesDataset; + private final List<Indicator<? extends Number>> indicators; + private final TimeSeries timeSeries; + private int seriesEndIndex = 50; public ChartTest(String chartName) { *************** *** 51,55 **** button2.setActionCommand("Move Left"); button2.addActionListener(this); ! JButton button = new JButton("Move Right"); button.setActionCommand("Move Right"); --- 54,58 ---- button2.setActionCommand("Move Left"); button2.addActionListener(this); ! JButton button = new JButton("Move Right"); button.setActionCommand("Move Right"); *************** *** 60,67 **** JPanel mainPanel = new JPanel(new FlowLayout()); ! mainPanel.add(button2,"South"); ! mainPanel.add(button,"South"); ! mainPanel.add(chartPanel,"North"); ! mainPanel.setPreferredSize(new Dimension(1280, 1024)); --- 63,69 ---- JPanel mainPanel = new JPanel(new FlowLayout()); ! mainPanel.add(button2, "South"); ! mainPanel.add(button, "South"); ! mainPanel.add(chartPanel, "North"); mainPanel.setPreferredSize(new Dimension(1280, 1024)); *************** *** 70,76 **** } ! ! public static void main(String args[]) ! { ChartTest chart = new ChartTest("Chart test"); chart.pack(); --- 72,76 ---- } ! public static void main(String args[]) { ChartTest chart = new ChartTest("Chart test"); chart.pack(); *************** *** 79,84 **** } ! public JPanel createBollingerBandsChart() ! { ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); --- 79,83 ---- } ! public JPanel createBollingerBandsChart() { ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); *************** *** 94,108 **** indicators.add(bbl); - seriesDataset = new SeriesDataset(timeSeries, indicators,0,seriesEndIndex); - SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart("Test Chart"); ! return new ChartPanel(jfreechart); } ! public JPanel createSmaAndStrategyChart() ! { ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); SMAIndicator sma = new SMAIndicator(close, 8); --- 93,105 ---- indicators.add(bbl); + seriesDataset = new SeriesDataset(timeSeries, indicators, 0, seriesEndIndex); SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart("Test Chart"); ! return new ChartPanel(jfreechart); } ! public JPanel createSmaAndStrategyChart() { ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); SMAIndicator sma = new SMAIndicator(close, 8); *************** *** 111,126 **** indicators.add(sma); ! List<Trade> trades = new HistoryRunner(OperationType.BUY).run(new IndicatorCrossedIndicatorStrategy(close,sma), 0, 100); - seriesDataset = new SeriesDataset(timeSeries, indicators,0,seriesEndIndex,trades); - SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart("Test Chart"); ! return new ChartPanel(jfreechart); } - - /** * @return --- 108,122 ---- indicators.add(sma); ! List<Trade> trades = new HistoryRunner(OperationType.BUY).run( ! new IndicatorCrossedIndicatorStrategy(close, sma), 0, 100); ! ! seriesDataset = new SeriesDataset(timeSeries, indicators, 0, seriesEndIndex, trades); SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart("Test Chart"); ! return new ChartPanel(jfreechart); } /** * @return *************** *** 138,147 **** return timeSeries; } public void actionPerformed(ActionEvent e) { ! if(e.getActionCommand().equals("Move Right")){ seriesDataset.moveRight(); ! } ! else if(e.getActionCommand().equals("Move Left")){ seriesDataset.moveLeft(); --- 134,143 ---- return timeSeries; } + public void actionPerformed(ActionEvent e) { ! if (e.getActionCommand().equals("Move Right")) { seriesDataset.moveRight(); ! } else if (e.getActionCommand().equals("Move Left")) { seriesDataset.moveLeft(); Index: StockAndCashFlowChartTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/graphics/StockAndCashFlowChartTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** StockAndCashFlowChartTest.java 20 Aug 2007 21:55:31 -0000 1.2 --- StockAndCashFlowChartTest.java 23 Aug 2007 12:51:10 -0000 1.3 *************** *** 26,35 **** import org.jfree.ui.RefineryUtilities; ! public class StockAndCashFlowChartTest extends ApplicationFrame{ private static final long serialVersionUID = -6626066873257820845L; private StockAndCashFlowDataset seriesDataset; private Indicator<? extends Number> indicator; private CashFlow cashFlow; private final TimeSeries timeSeries; --- 26,39 ---- import org.jfree.ui.RefineryUtilities; ! public class StockAndCashFlowChartTest extends ApplicationFrame { private static final long serialVersionUID = -6626066873257820845L; + private StockAndCashFlowDataset seriesDataset; + private Indicator<? extends Number> indicator; + private CashFlow cashFlow; + private final TimeSeries timeSeries; *************** *** 43,47 **** JPanel mainPanel = new JPanel(new FlowLayout()); ! mainPanel.add(chartPanel,"North"); mainPanel.setPreferredSize(new Dimension(1280, 1024)); --- 47,51 ---- JPanel mainPanel = new JPanel(new FlowLayout()); ! mainPanel.add(chartPanel, "North"); mainPanel.setPreferredSize(new Dimension(1280, 1024)); *************** *** 50,56 **** } ! ! public static void main(String args[]) ! { StockAndCashFlowChartTest chart = new StockAndCashFlowChartTest("Chart test"); chart.pack(); --- 54,58 ---- } ! public static void main(String args[]) { StockAndCashFlowChartTest chart = new StockAndCashFlowChartTest("Chart test"); chart.pack(); *************** *** 59,78 **** } ! public JPanel createSmaAndStrategyChart() ! { indicator = new ClosePriceIndicator(timeSeries); SMAIndicator sma = new SMAIndicator(indicator, 8); ! List<Trade> trades = new HistoryRunner(OperationType.BUY).run(new IndicatorCrossedIndicatorStrategy(indicator,sma), timeSeries.getBegin(), timeSeries.getEnd()); cashFlow = new CashFlow(timeSeries, trades, indicator.getValue(0).doubleValue()); ! seriesDataset = new StockAndCashFlowDataset(timeSeries, indicator, cashFlow); ! StockAndCashFlowChart seriesAndFlowChart = new StockAndCashFlowChart(seriesDataset); JFreeChart jfreechart = seriesAndFlowChart.createChart("Test Chart"); ! return new ChartPanel(jfreechart); } ! /** * @return --- 61,80 ---- } ! public JPanel createSmaAndStrategyChart() { indicator = new ClosePriceIndicator(timeSeries); SMAIndicator sma = new SMAIndicator(indicator, 8); ! List<Trade> trades = new HistoryRunner(OperationType.BUY).run(new IndicatorCrossedIndicatorStrategy(indicator, ! sma), timeSeries.getBegin(), timeSeries.getEnd()); cashFlow = new CashFlow(timeSeries, trades, indicator.getValue(0).doubleValue()); ! seriesDataset = new StockAndCashFlowDataset(timeSeries, indicator, cashFlow); ! StockAndCashFlowChart seriesAndFlowChart = new StockAndCashFlowChart(seriesDataset); JFreeChart jfreechart = seriesAndFlowChart.createChart("Test Chart"); ! return new ChartPanel(jfreechart); } ! /** * @return Index: SeriesDatasetTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/graphics/SeriesDatasetTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SeriesDatasetTest.java 20 Aug 2007 18:15:31 -0000 1.4 --- SeriesDatasetTest.java 23 Aug 2007 12:51:10 -0000 1.5 *************** *** 1,5 **** package net.sf.tail.graphics; - import static junit.framework.Assert.assertEquals; --- 1,4 ---- *************** *** 22,73 **** public class SeriesDatasetTest { ! TimeSeries series; List<Indicator<? extends Number>> indicators; List<Trade> trades; List<Tick> ticks; private SampleIndicator indicator1; private SampleIndicator indicator2; ! @Before public void setUp() throws Exception { ticks = new LinkedList<Tick>(); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 6),1d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,7),2d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,8),3d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,9),4d)); ! ! series = new DefaultTimeSeries(ticks); indicators = new LinkedList<Indicator<? extends Number>>(); trades = new LinkedList<Trade>(); ! ! indicator1 = new SampleIndicator(new double[]{2d,3d,4d,5d}); ! indicator2 = new SampleIndicator(new double[]{5d,4d,3d,2d}); ! indicators.add(indicator1); indicators.add(indicator2); ! ! Operation entry = new Operation(0,OperationType.BUY); ! Operation exit = new Operation(1,OperationType.SELL); ! trades.add(new Trade(entry,exit)); ! ! entry = new Operation(2,OperationType.BUY); ! exit = new Operation(3,OperationType.SELL); ! trades.add(new Trade(entry,exit)); } @Test ! public void testDefaultConstructor(){ ! SeriesDataset dataset = new SeriesDataset(series,indicators,0,3); assertEquals(indicators.size(), dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(4d, dataset.getValue(1, 1)); } ! @Test ! public void testTradesConstructor(){ ! SeriesDataset dataset = new SeriesDataset(series,indicators,0,3,trades); ! assertEquals(indicators.size()+trades.size(), dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(2d, dataset.getValue(3, 1)); --- 21,76 ---- public class SeriesDatasetTest { ! TimeSeries series; ! List<Indicator<? extends Number>> indicators; + List<Trade> trades; + List<Tick> ticks; + private SampleIndicator indicator1; + private SampleIndicator indicator2; ! @Before public void setUp() throws Exception { ticks = new LinkedList<Tick>(); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 6), 1d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 7), 2d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 8), 3d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 9), 4d)); ! series = new DefaultTimeSeries(ticks); indicators = new LinkedList<Indicator<? extends Number>>(); trades = new LinkedList<Trade>(); ! ! indicator1 = new SampleIndicator(new double[] { 2d, 3d, 4d, 5d }); ! indicator2 = new SampleIndicator(new double[] { 5d, 4d, 3d, 2d }); ! indicators.add(indicator1); indicators.add(indicator2); ! ! Operation entry = new Operation(0, OperationType.BUY); ! Operation exit = new Operation(1, OperationType.SELL); ! trades.add(new Trade(entry, exit)); ! ! entry = new Operation(2, OperationType.BUY); ! exit = new Operation(3, OperationType.SELL); ! trades.add(new Trade(entry, exit)); } @Test ! public void testDefaultConstructor() { ! SeriesDataset dataset = new SeriesDataset(series, indicators, 0, 3); assertEquals(indicators.size(), dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(4d, dataset.getValue(1, 1)); } ! @Test ! public void testTradesConstructor() { ! SeriesDataset dataset = new SeriesDataset(series, indicators, 0, 3, trades); ! assertEquals(indicators.size() + trades.size(), dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(2d, dataset.getValue(3, 1)); *************** *** 75,82 **** @Test ! public void testMoveRightWhenIndicatorDontHaveMoreDataUnmappedShouldDoNothing(){ ! SeriesDataset dataset = new SeriesDataset(series,indicators,0,3,trades); dataset.moveRight(); ! assertEquals(indicators.size()+trades.size(), dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(2d, dataset.getValue(3, 1)); --- 78,85 ---- @Test ! public void testMoveRightWhenIndicatorDontHaveMoreDataUnmappedShouldDoNothing() { ! SeriesDataset dataset = new SeriesDataset(series, indicators, 0, 3, trades); dataset.moveRight(); ! assertEquals(indicators.size() + trades.size(), dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(2d, dataset.getValue(3, 1)); *************** *** 84,118 **** @Test ! public void testMoveLeftWhenIndicatorDontHaveMoreDataUnmappedShouldDoNothing(){ ! SeriesDataset dataset = new SeriesDataset(series,indicators,0,3,trades); dataset.moveLeft(); ! assertEquals(indicators.size()+trades.size(), dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(2d, dataset.getValue(3, 1)); } ! @Test ! public void testMoveRight(){ ! SeriesDataset dataset = new SeriesDataset(series,indicators,0,3,trades); ! ticks.add(new Tick(new DateTime().withDate(2007,6,10),4d)); indicator1.addValue(15d); indicator2.addValue(30d); ! dataset.moveRight(); ! assertEquals(indicators.size()+trades.size(), dataset.getRowCount()); assertEquals(series.getSize() - 1, dataset.getColumnCount()); assertEquals(3d, dataset.getValue(1, 1)); } ! @Test ! public void testMoveLeft(){ ! SeriesDataset dataset = new SeriesDataset(series,indicators,0,3,trades); ! ticks.add(new Tick(new DateTime().withDate(2007,6,10),4d)); indicator1.addValue(15d); indicator2.addValue(30d); ! dataset.moveRight(); dataset.moveLeft(); ! assertEquals(indicators.size()+trades.size(), dataset.getRowCount()); assertEquals(series.getSize() - 1, dataset.getColumnCount()); assertEquals(4d, dataset.getValue(1, 1)); --- 87,121 ---- @Test ! public void testMoveLeftWhenIndicatorDontHaveMoreDataUnmappedShouldDoNothing() { ! SeriesDataset dataset = new SeriesDataset(series, indicators, 0, 3, trades); dataset.moveLeft(); ! assertEquals(indicators.size() + trades.size(), dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(2d, dataset.getValue(3, 1)); } ! @Test ! public void testMoveRight() { ! SeriesDataset dataset = new SeriesDataset(series, indicators, 0, 3, trades); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 10), 4d)); indicator1.addValue(15d); indicator2.addValue(30d); ! dataset.moveRight(); ! assertEquals(indicators.size() + trades.size(), dataset.getRowCount()); assertEquals(series.getSize() - 1, dataset.getColumnCount()); assertEquals(3d, dataset.getValue(1, 1)); } ! @Test ! public void testMoveLeft() { ! SeriesDataset dataset = new SeriesDataset(series, indicators, 0, 3, trades); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 10), 4d)); indicator1.addValue(15d); indicator2.addValue(30d); ! dataset.moveRight(); dataset.moveLeft(); ! assertEquals(indicators.size() + trades.size(), dataset.getRowCount()); assertEquals(series.getSize() - 1, dataset.getColumnCount()); assertEquals(4d, dataset.getValue(1, 1)); Index: CombinedSeriesAndFlowChartTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/graphics/CombinedSeriesAndFlowChartTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CombinedSeriesAndFlowChartTest.java 20 Aug 2007 21:31:21 -0000 1.3 --- CombinedSeriesAndFlowChartTest.java 23 Aug 2007 12:51:10 -0000 1.4 *************** *** 30,41 **** import org.jfree.ui.RefineryUtilities; ! public class CombinedSeriesAndFlowChartTest extends ApplicationFrame implements ActionListener{ private static final long serialVersionUID = -6626066873257820845L; private SeriesDataset seriesDataset; private CashFlowDataset flowDataset; private final List<Indicator<? extends Number>> indicators; private CashFlow cashFlow; private final TimeSeries timeSeries; private int seriesEndIndex = 50; --- 30,47 ---- import org.jfree.ui.RefineryUtilities; ! public class CombinedSeriesAndFlowChartTest extends ApplicationFrame implements ActionListener { private static final long serialVersionUID = -6626066873257820845L; + private SeriesDataset seriesDataset; + private CashFlowDataset flowDataset; + private final List<Indicator<? extends Number>> indicators; + private CashFlow cashFlow; + private final TimeSeries timeSeries; + private int seriesEndIndex = 50; *************** *** 49,53 **** button2.setActionCommand("Move Left"); button2.addActionListener(this); ! JButton button = new JButton("Move Right"); button.setActionCommand("Move Right"); --- 55,59 ---- button2.setActionCommand("Move Left"); button2.addActionListener(this); ! JButton button = new JButton("Move Right"); button.setActionCommand("Move Right"); *************** *** 58,64 **** JPanel mainPanel = new JPanel(new FlowLayout()); ! mainPanel.add(button2,"South"); ! mainPanel.add(button,"South"); ! mainPanel.add(chartPanel,"North"); mainPanel.setPreferredSize(new Dimension(1280, 1024)); --- 64,70 ---- JPanel mainPanel = new JPanel(new FlowLayout()); ! mainPanel.add(button2, "South"); ! mainPanel.add(button, "South"); ! mainPanel.add(chartPanel, "North"); mainPanel.setPreferredSize(new Dimension(1280, 1024)); *************** *** 67,73 **** } ! ! public static void main(String args[]) ! { CombinedSeriesAndFlowChartTest chart = new CombinedSeriesAndFlowChartTest("Chart test"); chart.pack(); --- 73,77 ---- } ! public static void main(String args[]) { CombinedSeriesAndFlowChartTest chart = new CombinedSeriesAndFlowChartTest("Chart test"); chart.pack(); *************** *** 76,81 **** } ! public JPanel createSmaAndStrategyChart() ! { ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); SMAIndicator sma = new SMAIndicator(close, 8); --- 80,84 ---- } ! public JPanel createSmaAndStrategyChart() { ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); SMAIndicator sma = new SMAIndicator(close, 8); *************** *** 84,99 **** indicators.add(sma); ! List<Trade> trades = new HistoryRunner(OperationType.BUY).run(new IndicatorCrossedIndicatorStrategy(close,sma), 0, 100); cashFlow = new CashFlow(timeSeries, trades); ! ! seriesDataset = new SeriesDataset(timeSeries, indicators, 0, seriesEndIndex,trades); flowDataset = new CashFlowDataset(timeSeries, cashFlow, 0, seriesEndIndex); ! CombinedSeriesAndFlowChart seriesAndFlowChart = new CombinedSeriesAndFlowChart(seriesDataset, flowDataset); JFreeChart jfreechart = seriesAndFlowChart.createChart("Test Chart"); ! return new ChartPanel(jfreechart); } ! /** * @return --- 87,103 ---- indicators.add(sma); ! List<Trade> trades = new HistoryRunner(OperationType.BUY).run( ! new IndicatorCrossedIndicatorStrategy(close, sma), 0, 100); cashFlow = new CashFlow(timeSeries, trades); ! ! seriesDataset = new SeriesDataset(timeSeries, indicators, 0, seriesEndIndex, trades); flowDataset = new CashFlowDataset(timeSeries, cashFlow, 0, seriesEndIndex); ! CombinedSeriesAndFlowChart seriesAndFlowChart = new CombinedSeriesAndFlowChart(seriesDataset, flowDataset); JFreeChart jfreechart = seriesAndFlowChart.createChart("Test Chart"); ! return new ChartPanel(jfreechart); } ! /** * @return *************** *** 111,120 **** return timeSeries; } public void actionPerformed(ActionEvent e) { ! if(e.getActionCommand().equals("Move Right")){ flowDataset.moveRight(); seriesDataset.moveRight(); ! } ! else if(e.getActionCommand().equals("Move Left")){ flowDataset.moveLeft(); seriesDataset.moveLeft(); --- 115,124 ---- return timeSeries; } + public void actionPerformed(ActionEvent e) { ! if (e.getActionCommand().equals("Move Right")) { flowDataset.moveRight(); seriesDataset.moveRight(); ! } else if (e.getActionCommand().equals("Move Left")) { flowDataset.moveLeft(); seriesDataset.moveLeft(); Index: ChartForReportTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/graphics/ChartForReportTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChartForReportTest.java 20 Aug 2007 21:31:21 -0000 1.3 --- ChartForReportTest.java 23 Aug 2007 12:51:10 -0000 1.4 *************** *** 29,35 **** --- 29,39 ---- private static final long serialVersionUID = -6626066873257820845L; + private SeriesDataset seriesDataset; + private final List<Indicator<? extends Number>> indicators; + private final TimeSeries timeSeries; + private int chartSize = 50; *************** *** 44,58 **** try { OutputStream out = new BufferedOutputStream(new FileOutputStream(htmlChart)); ! PrintWriter writer = new PrintWriter(out); ! writer.println("<html>"); ! writer.println("<head><title>" + chartName + "</title></head>"); ! writer.println("<body><table align=\"center\">"); ! for (String fileName : createSmaAndStrategyChartsInPNGFile()) { ! writer.println("<tr><img src=\"PNGCharts/" + fileName + ! "\" width=\"800\" height=\"600\"></tr>"); } ! writer.println("</table></body>"); ! writer.println("</html>"); ! writer.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block --- 48,61 ---- try { OutputStream out = new BufferedOutputStream(new FileOutputStream(htmlChart)); ! PrintWriter writer = new PrintWriter(out); ! writer.println("<html>"); ! writer.println("<head><title>" + chartName + "</title></head>"); ! writer.println("<body><table align=\"center\">"); ! for (String fileName : createSmaAndStrategyChartsInPNGFile()) { ! writer.println("<tr><img src=\"PNGCharts/" + fileName + "\" width=\"800\" height=\"600\"></tr>"); } ! writer.println("</table></body>"); ! writer.println("</html>"); ! writer.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block *************** *** 61,72 **** } ! ! public static void main(String args[]) ! { new ChartForReportTest("SMA Chart"); } ! public List<String> createSmaAndStrategyChartsInPNGFile() ! { List<String> fileNames = new ArrayList<String>(); ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); --- 64,72 ---- } ! public static void main(String args[]) { new ChartForReportTest("SMA Chart"); } ! public List<String> createSmaAndStrategyChartsInPNGFile() { List<String> fileNames = new ArrayList<String>(); ClosePriceIndicator close = new ClosePriceIndicator(timeSeries); *************** *** 76,93 **** indicators.add(sma); ! List<Trade> trades = new HistoryRunner(OperationType.BUY).run(new IndicatorCrossedIndicatorStrategy(close,sma), timeSeries.getBegin(), timeSeries.getEnd()); ! //for (int i = timeSeries.getBegin(); i < timeSeries.getEnd(); i = i + chartSize) ! for (int i = timeSeries.getBegin(); i < 200; i = i + chartSize) ! { ! if (i + chartSize > timeSeries.getEnd()) ! { seriesDataset = new SeriesDataset(timeSeries, indicators, i, timeSeries.getEnd(), trades); ! } ! else ! { seriesDataset = new SeriesDataset(timeSeries, indicators, i, i + chartSize, trades); } ! SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart("Report Chart"); --- 76,91 ---- indicators.add(sma); ! List<Trade> trades = new HistoryRunner(OperationType.BUY).run( ! new IndicatorCrossedIndicatorStrategy(close, sma), timeSeries.getBegin(), timeSeries.getEnd()); ! // for (int i = timeSeries.getBegin(); i < timeSeries.getEnd(); i = i + ! // chartSize) ! for (int i = timeSeries.getBegin(); i < 200; i = i + chartSize) { ! if (i + chartSize > timeSeries.getEnd()) { seriesDataset = new SeriesDataset(timeSeries, indicators, i, timeSeries.getEnd(), trades); ! } else { seriesDataset = new SeriesDataset(timeSeries, indicators, i, i + chartSize, trades); } ! SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart("Report Chart"); *************** *** 102,106 **** } } ! return fileNames; } --- 100,104 ---- } } ! return fileNames; } Index: CashFlowDatasetTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/graphics/CashFlowDatasetTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CashFlowDatasetTest.java 20 Aug 2007 18:15:31 -0000 1.3 --- CashFlowDatasetTest.java 23 Aug 2007 12:51:10 -0000 1.4 *************** *** 1,5 **** package net.sf.tail.graphics; - import static junit.framework.Assert.assertEquals; --- 1,4 ---- *************** *** 21,54 **** public class CashFlowDatasetTest { ! TimeSeries series; CashFlow cashFlow; List<Trade> trades; List<Tick> ticks; ! @Before public void setUp() throws Exception { ticks = new LinkedList<Tick>(); ! ticks.add(new Tick(new DateTime().withDate(2007,6,6),1d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,7),2d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,8),3d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,9),4d)); ! series = new DefaultTimeSeries(ticks); trades = new LinkedList<Trade>(); ! ! Operation entry = new Operation(0,OperationType.BUY); ! Operation exit = new Operation(1,OperationType.SELL); ! trades.add(new Trade(entry,exit)); ! ! entry = new Operation(2,OperationType.BUY); ! exit = new Operation(3,OperationType.SELL); ! trades.add(new Trade(entry,exit)); ! cashFlow = new CashFlow(series, trades); } @Test ! public void testDefaultConstructor(){ CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); assertEquals(1, dataset.getRowCount()); --- 20,56 ---- public class CashFlowDatasetTest { ! TimeSeries series; ! CashFlow cashFlow; + List<Trade> trades; + List<Tick> ticks; ! @Before public void setUp() throws Exception { ticks = new LinkedList<Tick>(); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 6), 1d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 7), 2d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 8), 3d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 9), 4d)); ! series = new DefaultTimeSeries(ticks); trades = new LinkedList<Trade>(); ! ! Operation entry = new Operation(0, OperationType.BUY); ! Operation exit = new Operation(1, OperationType.SELL); ! trades.add(new Trade(entry, exit)); ! ! entry = new Operation(2, OperationType.BUY); ! exit = new Operation(3, OperationType.SELL); ! trades.add(new Trade(entry, exit)); ! cashFlow = new CashFlow(series, trades); } @Test ! public void testDefaultConstructor() { CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); assertEquals(1, dataset.getRowCount()); *************** *** 58,62 **** @Test ! public void testMoveRightWhenIndicatorDontHaveMoreDataUnmappedShouldDoNothing(){ CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); dataset.moveRight(); --- 60,64 ---- @Test ! public void testMoveRightWhenIndicatorDontHaveMoreDataUnmappedShouldDoNothing() { CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); dataset.moveRight(); *************** *** 67,71 **** @Test ! public void testMoveLeftWhenIndicatorDontHaveMoreDataUnmappedShouldDoNothing(){ CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); dataset.moveLeft(); --- 69,73 ---- @Test ! public void testMoveLeftWhenIndicatorDontHaveMoreDataUnmappedShouldDoNothing() { CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); dataset.moveLeft(); *************** *** 74,103 **** assertEquals(2d, dataset.getValue(0, 1)); } ! @Test ! public void testMoveRight(){ ! ticks.add(new Tick(new DateTime().withDate(2007,6,10),4d)); series = new DefaultTimeSeries(ticks); cashFlow = new CashFlow(series, trades); CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); ! dataset.moveRight(); assertEquals(1, dataset.getRowCount()); assertEquals(series.getSize() - 1, dataset.getColumnCount()); ! assertEquals(8d/3, dataset.getValue(0, 3)); } ! @Test ! public void testMoveLeft(){ ! ticks.add(new Tick(new DateTime().withDate(2007,6,10),4d)); series = new DefaultTimeSeries(ticks); cashFlow = new CashFlow(series, trades); CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); ! dataset.moveRight(); dataset.moveLeft(); assertEquals(1, dataset.getRowCount()); assertEquals(series.getSize() - 1, dataset.getColumnCount()); ! assertEquals(8d/3, dataset.getValue(0, 3)); } } --- 76,105 ---- assertEquals(2d, dataset.getValue(0, 1)); } ! @Test ! public void testMoveRight() { ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 10), 4d)); series = new DefaultTimeSeries(ticks); cashFlow = new CashFlow(series, trades); CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); ! dataset.moveRight(); assertEquals(1, dataset.getRowCount()); assertEquals(series.getSize() - 1, dataset.getColumnCount()); ! assertEquals(8d / 3, dataset.getValue(0, 3)); } ! @Test ! public void testMoveLeft() { ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 10), 4d)); series = new DefaultTimeSeries(ticks); cashFlow = new CashFlow(series, trades); CashFlowDataset dataset = new CashFlowDataset(series, cashFlow, 0, 3); ! dataset.moveRight(); dataset.moveLeft(); assertEquals(1, dataset.getRowCount()); assertEquals(series.getSize() - 1, dataset.getColumnCount()); ! assertEquals(8d / 3, dataset.getValue(0, 3)); } } Index: StockAndCashFlowDatasetTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/graphics/StockAndCashFlowDatasetTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** StockAndCashFlowDatasetTest.java 20 Aug 2007 21:47:57 -0000 1.1 --- StockAndCashFlowDatasetTest.java 23 Aug 2007 12:51:10 -0000 1.2 *************** *** 1,5 **** package net.sf.tail.graphics; - import static junit.framework.Assert.assertEquals; --- 1,4 ---- *************** *** 23,51 **** TimeSeries series; ClosePriceIndicator close; CashFlow cashFlow; List<Trade> trades; List<Tick> ticks; ! @Before public void setUp() throws Exception { ticks = new LinkedList<Tick>(); ! ticks.add(new Tick(new DateTime().withDate(2007,6,6),1d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,7),2d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,8),3d)); ! ticks.add(new Tick(new DateTime().withDate(2007,6,9),4d)); ! series = new DefaultTimeSeries(ticks); trades = new LinkedList<Trade>(); ! ! Operation entry = new Operation(0,OperationType.BUY); ! Operation exit = new Operation(1,OperationType.SELL); ! trades.add(new Trade(entry,exit)); ! ! entry = new Operation(2,OperationType.BUY); ! exit = new Operation(3,OperationType.SELL); ! trades.add(new Trade(entry,exit)); ! close = new ClosePriceIndicator(series); cashFlow = new CashFlow(series, trades); --- 22,54 ---- TimeSeries series; + ClosePriceIndicator close; + CashFlow cashFlow; + List<Trade> trades; + List<Tick> ticks; ! @Before public void setUp() throws Exception { ticks = new LinkedList<Tick>(); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 6), 1d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 7), 2d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 8), 3d)); ! ticks.add(new Tick(new DateTime().withDate(2007, 6, 9), 4d)); ! series = new DefaultTimeSeries(ticks); trades = new LinkedList<Trade>(); ! ! Operation entry = new Operation(0, OperationType.BUY); ! Operation exit = new Operation(1, OperationType.SELL); ! trades.add(new Trade(entry, exit)); ! ! entry = new Operation(2, OperationType.BUY); ! exit = new Operation(3, OperationType.SELL); ! trades.add(new Trade(entry, exit)); ! close = new ClosePriceIndicator(series); cashFlow = new CashFlow(series, trades); *************** *** 53,62 **** @Test ! public void testDefaultConstructor(){ StockAndCashFlowDataset dataset = new StockAndCashFlowDataset(series, close, cashFlow); assertEquals(2, dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(1d, dataset.getValue(1, 0)); ! assertEquals(8d/3, dataset.getValue(1, 3)); assertEquals(1d, dataset.getValue(0, 0)); assertEquals(4d, dataset.getValue(0, 3)); --- 56,65 ---- @Test ! public void testDefaultConstructor() { StockAndCashFlowDataset dataset = new StockAndCashFlowDataset(series, close, cashFlow); assertEquals(2, dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(1d, dataset.getValue(1, 0)); ! assertEquals(8d / 3, dataset.getValue(1, 3)); assertEquals(1d, dataset.getValue(0, 0)); assertEquals(4d, dataset.getValue(0, 3)); *************** *** 64,73 **** @Test ! public void testConstructorWithSizes(){ ! StockAndCashFlowDataset dataset = new StockAndCashFlowDataset(series, close, cashFlow, series.getBegin(), series.getEnd()); assertEquals(2, dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(1d, dataset.getValue(1, 0)); ! assertEquals(8d/3, dataset.getValue(1, 3)); assertEquals(1d, dataset.getValue(0, 0)); assertEquals(4d, dataset.getValue(0, 3)); --- 67,77 ---- @Test ! public void testConstructorWithSizes() { ! StockAndCashFlowDataset dataset = new StockAndCashFlowDataset(series, close, cashFlow, series.getBegin(), ! series.getEnd()); assertEquals(2, dataset.getRowCount()); assertEquals(series.getSize(), dataset.getColumnCount()); assertEquals(1d, dataset.getValue(1, 0)); ! assertEquals(8d / 3, dataset.getValue(1, 3)); assertEquals(1d, dataset.getValue(0, 0)); assertEquals(4d, dataset.getValue(0, 3)); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:16
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/strategy Modified Files: JustBuyOnceStrategyTest.java IndicatorOverIndicatorStrategyTest.java IndicatorCrossedIndicatorStrategyTest.java FakeStrategy.java MinValueStopperStrategyTest.java MinValueStarterStrategyTest.java DistanceBetweenIndicatorsStrategyTest.java Log Message: Index: FakeStrategy.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/FakeStrategy.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** FakeStrategy.java 21 Aug 2007 20:58:34 -0000 1.4 --- FakeStrategy.java 23 Aug 2007 12:51:09 -0000 1.5 *************** *** 8,12 **** private Operation[] exit; ! public FakeStrategy(Operation[] enter, Operation[] exit) { this.enter = enter; --- 8,12 ---- private Operation[] exit; ! public FakeStrategy(Operation[] enter, Operation[] exit) { this.enter = enter; *************** *** 14,18 **** } ! public String getName(){ return "Fake Strategy"; } --- 14,18 ---- } ! public String getName() { return "Fake Strategy"; } *************** *** 25,29 **** public boolean shouldExit(int index) { ! if (exit[index] != null) return true; return false; --- 25,29 ---- public boolean shouldExit(int index) { ! if (exit[index] != null) return true; return false; Index: JustBuyOnceStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/JustBuyOnceStrategyTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** JustBuyOnceStrategyTest.java 21 Aug 2007 20:58:34 -0000 1.7 --- JustBuyOnceStrategyTest.java 23 Aug 2007 12:51:09 -0000 1.8 *************** *** 1,5 **** package net.sf.tail.strategy; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; --- 1,4 ---- *************** *** 16,19 **** --- 15,19 ---- private Strategy strategy; + private Trade trade; *************** *** 24,31 **** } ! @Test public void ! shouldBuyTradeOnce() { ! Operation buy = new Operation(0,OperationType.BUY); ! assertTrue(strategy.shouldOperate(trade, 0)); trade.operate(0); --- 24,31 ---- } ! @Test ! public void shouldBuyTradeOnce() { ! Operation buy = new Operation(0, OperationType.BUY); ! assertTrue(strategy.shouldOperate(trade, 0)); trade.operate(0); *************** *** 33,42 **** assertFalse(strategy.shouldOperate(trade, 1)); assertFalse(strategy.shouldOperate(trade, 6)); ! } ! ! @Test public void ! sameIndexShouldResultSameAnswer() { ! Operation buy = new Operation(0,OperationType.BUY); assertTrue(strategy.shouldOperate(trade, 0)); --- 33,42 ---- assertFalse(strategy.shouldOperate(trade, 1)); assertFalse(strategy.shouldOperate(trade, 6)); ! } ! ! @Test ! public void sameIndexShouldResultSameAnswer() { ! Operation buy = new Operation(0, OperationType.BUY); assertTrue(strategy.shouldOperate(trade, 0)); *************** *** 48,52 **** assertEquals(buy, trade2.getEntry()); } ! ! } --- 48,51 ---- assertEquals(buy, trade2.getEntry()); } ! } Index: MinValueStopperStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/MinValueStopperStrategyTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MinValueStopperStrategyTest.java 21 Aug 2007 20:58:34 -0000 1.5 --- MinValueStopperStrategyTest.java 23 Aug 2007 12:51:09 -0000 1.6 *************** *** 19,34 **** @Before public void setUp() throws Exception { ! indicator = new SampleIndicator(new double[] {100,100,96,95,94}); } @Test public void testStopperShouldSell() { ! Strategy justBuy = new JustBuyOnceStrategy(); ! Strategy stopper = new MinValueStopperStrategy(indicator,justBuy,5); ! ! Operation buy = new Operation(0,OperationType.BUY); ! Operation sell = new Operation(4,OperationType.SELL); ! Trade trade = new Trade(); assertTrue(stopper.shouldOperate(trade, 0)); --- 19,34 ---- @Before public void setUp() throws Exception { ! indicator = new SampleIndicator(new double[] { 100, 100, 96, 95, 94 }); } @Test public void testStopperShouldSell() { ! Strategy justBuy = new JustBuyOnceStrategy(); ! Strategy stopper = new MinValueStopperStrategy(indicator, justBuy, 5); ! ! Operation buy = new Operation(0, OperationType.BUY); ! Operation sell = new Operation(4, OperationType.SELL); ! Trade trade = new Trade(); assertTrue(stopper.shouldOperate(trade, 0)); *************** *** 37,41 **** assertFalse(stopper.shouldOperate(trade, 1)); assertFalse(stopper.shouldOperate(trade, 2)); - assertTrue(stopper.shouldOperate(trade, 4)); --- 37,40 ---- *************** *** 43,73 **** assertEquals(sell, trade.getExit()); } ! @Test public void testStopperShouldSellIfStrategySays() { ! ! Operation[] enter = new Operation[] { new Operation(0, OperationType.BUY), null, null, null, null}; ! Operation[] exit = new Operation[] { null,new Operation(1, OperationType.SELL) , null, null, null }; ! Strategy sell1 = new FakeStrategy(enter, exit); ! ! Strategy stopper = new MinValueStopperStrategy(indicator,sell1,500); ! ! Operation buy = new Operation(0,OperationType.BUY); ! Operation sell = new Operation(1,OperationType.SELL); ! Trade trade = new Trade(); assertTrue(stopper.shouldOperate(trade, 0)); trade.operate(0); ! assertEquals(buy, trade.getEntry()); ! assertTrue(stopper.shouldOperate(trade, 1)); trade.operate(1); ! assertEquals(sell, trade.getExit()); } ! ! ! } --- 42,70 ---- assertEquals(sell, trade.getExit()); } ! @Test public void testStopperShouldSellIfStrategySays() { ! ! Operation[] enter = new Operation[] { new Operation(0, OperationType.BUY), null, null, null, null }; ! Operation[] exit = new Operation[] { null, new Operation(1, OperationType.SELL), null, null, null }; ! Strategy sell1 = new FakeStrategy(enter, exit); ! ! Strategy stopper = new MinValueStopperStrategy(indicator, sell1, 500); ! ! Operation buy = new Operation(0, OperationType.BUY); ! Operation sell = new Operation(1, OperationType.SELL); ! Trade trade = new Trade(); assertTrue(stopper.shouldOperate(trade, 0)); trade.operate(0); ! assertEquals(buy, trade.getEntry()); ! assertTrue(stopper.shouldOperate(trade, 1)); trade.operate(1); ! assertEquals(sell, trade.getExit()); } ! } Index: DistanceBetweenIndicatorsStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/DistanceBetweenIndicatorsStrategyTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DistanceBetweenIndicatorsStrategyTest.java 21 Aug 2007 20:58:34 -0000 1.4 --- DistanceBetweenIndicatorsStrategyTest.java 23 Aug 2007 12:51:09 -0000 1.5 *************** *** 20,24 **** upper = new SampleIndicator(new double[] { 30, 32, 33, 32, 35, 33, 32 }); lower = new SampleIndicator(new double[] { 10, 10, 10, 12, 14, 15, 15 }); ! distanceEnter = new DistanceBetweenIndicatorsStrategy(upper, lower, 20, 0.1); } --- 20,24 ---- upper = new SampleIndicator(new double[] { 30, 32, 33, 32, 35, 33, 32 }); lower = new SampleIndicator(new double[] { 10, 10, 10, 12, 14, 15, 15 }); ! distanceEnter = new DistanceBetweenIndicatorsStrategy(upper, lower, 20, 0.1); } *************** *** 26,30 **** public void testStrategyIsBuyingCorreclty() { Trade trade = new Trade(); ! assertFalse(distanceEnter.shouldOperate(trade, 0)); assertTrue(distanceEnter.shouldOperate(trade, 1)); --- 26,30 ---- public void testStrategyIsBuyingCorreclty() { Trade trade = new Trade(); ! assertFalse(distanceEnter.shouldOperate(trade, 0)); assertTrue(distanceEnter.shouldOperate(trade, 1)); *************** *** 34,53 **** assertFalse(distanceEnter.shouldOperate(trade, 4)); } ! @Test public void testStrategyIsSellingCorrectly() { Trade trade = new Trade(); trade.operate(2); ! assertFalse(distanceEnter.shouldOperate(trade, 0)); assertTrue(distanceEnter.shouldOperate(trade, 5)); ! trade = new Trade(); trade.operate(2); ! assertTrue(distanceEnter.shouldOperate(trade, 6)); assertFalse(distanceEnter.shouldOperate(trade, 3)); assertFalse(distanceEnter.shouldOperate(trade, 4)); ! } } --- 34,53 ---- assertFalse(distanceEnter.shouldOperate(trade, 4)); } ! @Test public void testStrategyIsSellingCorrectly() { Trade trade = new Trade(); trade.operate(2); ! assertFalse(distanceEnter.shouldOperate(trade, 0)); assertTrue(distanceEnter.shouldOperate(trade, 5)); ! trade = new Trade(); trade.operate(2); ! assertTrue(distanceEnter.shouldOperate(trade, 6)); assertFalse(distanceEnter.shouldOperate(trade, 3)); assertFalse(distanceEnter.shouldOperate(trade, 4)); ! } } Index: IndicatorCrossedIndicatorStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/IndicatorCrossedIndicatorStrategyTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** IndicatorCrossedIndicatorStrategyTest.java 21 Aug 2007 20:58:34 -0000 1.7 --- IndicatorCrossedIndicatorStrategyTest.java 23 Aug 2007 12:51:09 -0000 1.8 *************** *** 20,41 **** Indicator<Double> first = new SampleIndicator(new double[] { 4, 7, 9, 6, 3, 2 }); Indicator<Double> second = new SampleIndicator(new double[] { 3, 6, 10, 8, 2, 1 }); ! Strategy s = new IndicatorCrossedIndicatorStrategy(first, second); Trade trade = new Trade(); assertFalse(s.shouldOperate(trade, 0)); assertFalse(s.shouldOperate(trade, 1)); ! assertTrue(s.shouldOperate(trade, 2)); trade.operate(2); Operation enter = new Operation(2, OperationType.BUY); assertEquals(enter, trade.getEntry()); ! assertFalse(s.shouldOperate(trade, 3)); assertTrue(s.shouldOperate(trade, 4)); trade.operate(4); ! Operation exit = new Operation(4,OperationType.SELL); assertEquals(exit, trade.getExit()); ! assertFalse(s.shouldOperate(trade, 5)); } --- 20,41 ---- Indicator<Double> first = new SampleIndicator(new double[] { 4, 7, 9, 6, 3, 2 }); Indicator<Double> second = new SampleIndicator(new double[] { 3, 6, 10, 8, 2, 1 }); ! Strategy s = new IndicatorCrossedIndicatorStrategy(first, second); Trade trade = new Trade(); assertFalse(s.shouldOperate(trade, 0)); assertFalse(s.shouldOperate(trade, 1)); ! assertTrue(s.shouldOperate(trade, 2)); trade.operate(2); Operation enter = new Operation(2, OperationType.BUY); assertEquals(enter, trade.getEntry()); ! assertFalse(s.shouldOperate(trade, 3)); assertTrue(s.shouldOperate(trade, 4)); trade.operate(4); ! Operation exit = new Operation(4, OperationType.SELL); assertEquals(exit, trade.getExit()); ! assertFalse(s.shouldOperate(trade, 5)); } *************** *** 60,74 **** Strategy s = new IndicatorCrossedIndicatorStrategy(first, second); ! ! Operation enter = new Operation(2,OperationType.BUY); assertTrue(s.shouldOperate(trade, 2)); trade.operate(2); ! assertEquals(enter,trade.getEntry()); for (int i = 3; i < 6; i++) { ! assertFalse(s.shouldOperate(trade,i)); } } ! @Test public void testEqualIndicatorsShouldNotExitWhenIndicatorsBecameEquals() { --- 60,74 ---- Strategy s = new IndicatorCrossedIndicatorStrategy(first, second); ! ! Operation enter = new Operation(2, OperationType.BUY); assertTrue(s.shouldOperate(trade, 2)); trade.operate(2); ! assertEquals(enter, trade.getEntry()); for (int i = 3; i < 6; i++) { ! assertFalse(s.shouldOperate(trade, i)); } } ! @Test public void testEqualIndicatorsShouldNotExitWhenIndicatorsBecameEquals() { *************** *** 78,87 **** Trade trade = new Trade(); ! assertTrue(s.shouldOperate(trade,1)); trade.operate(1); Operation enter = trade.getEntry(); assertNotNull(enter); ! assertEquals(enter.getType(), OperationType.BUY); --- 78,87 ---- Trade trade = new Trade(); ! assertTrue(s.shouldOperate(trade, 1)); trade.operate(1); Operation enter = trade.getEntry(); assertNotNull(enter); ! assertEquals(enter.getType(), OperationType.BUY); *************** *** 98,113 **** Trade trade = new Trade(); ! Operation enter = new Operation(1,OperationType.BUY); ! assertTrue(s.shouldOperate(trade,1)); trade.operate(1); ! assertEquals(enter,trade.getEntry()); for (int i = 2; i < 6; i++) { assertFalse(s.shouldOperate(trade, i)); } ! ! Operation exit = new Operation(6,OperationType.SELL); ! assertTrue(s.shouldOperate(trade,6)); trade.operate(6); assertEquals(exit, trade.getExit()); --- 98,113 ---- Trade trade = new Trade(); ! Operation enter = new Operation(1, OperationType.BUY); ! assertTrue(s.shouldOperate(trade, 1)); trade.operate(1); ! assertEquals(enter, trade.getEntry()); for (int i = 2; i < 6; i++) { assertFalse(s.shouldOperate(trade, i)); } ! ! Operation exit = new Operation(6, OperationType.SELL); ! assertTrue(s.shouldOperate(trade, 6)); trade.operate(6); assertEquals(exit, trade.getExit()); *************** *** 120,126 **** Strategy s = new IndicatorCrossedIndicatorStrategy(firstEqual, secondEqual); Trade trade = new Trade(); ! for (int i = 0; i < 7; i++) { ! assertFalse(s.shouldOperate(trade,i)); } } --- 120,126 ---- Strategy s = new IndicatorCrossedIndicatorStrategy(firstEqual, secondEqual); Trade trade = new Trade(); ! for (int i = 0; i < 7; i++) { ! assertFalse(s.shouldOperate(trade, i)); } } Index: IndicatorOverIndicatorStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/IndicatorOverIndicatorStrategyTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** IndicatorOverIndicatorStrategyTest.java 21 Aug 2007 20:58:34 -0000 1.9 --- IndicatorOverIndicatorStrategyTest.java 23 Aug 2007 12:51:09 -0000 1.10 *************** *** 23,29 **** public void setUp() throws Exception { ! first = new SampleIndicator(new double[] {4,7,9,6,3,2}); ! second = new SampleIndicator(new double[] {3,6,10,8,2,1}); ! } --- 23,29 ---- public void setUp() throws Exception { ! first = new SampleIndicator(new double[] { 4, 7, 9, 6, 3, 2 }); ! second = new SampleIndicator(new double[] { 3, 6, 10, 8, 2, 1 }); ! } *************** *** 31,56 **** public void testOverIndicators() { Trade trade = new Trade(); ! Strategy s = new IndicatorOverIndicatorStrategy(first, second); assertFalse(s.shouldOperate(trade, 0)); assertFalse(s.shouldOperate(trade, 1)); assertEquals(null, trade.getEntry()); ! Operation buy = new Operation(2,OperationType.BUY); assertTrue(s.shouldOperate(trade, 2)); trade.operate(2); assertEquals(buy, trade.getEntry()); trade = new Trade(); ! buy = new Operation(3,OperationType.BUY); assertTrue(s.shouldOperate(trade, 3)); trade.operate(3); assertEquals(buy, trade.getEntry()); ! assertFalse(s.shouldOperate(trade, 3)); ! ! Operation sell = new Operation(4,OperationType.SELL); assertTrue(s.shouldOperate(trade, 4)); trade.operate(4); assertEquals(sell, trade.getExit()); ! } } --- 31,56 ---- public void testOverIndicators() { Trade trade = new Trade(); ! Strategy s = new IndicatorOverIndicatorStrategy(first, second); assertFalse(s.shouldOperate(trade, 0)); assertFalse(s.shouldOperate(trade, 1)); assertEquals(null, trade.getEntry()); ! Operation buy = new Operation(2, OperationType.BUY); assertTrue(s.shouldOperate(trade, 2)); trade.operate(2); assertEquals(buy, trade.getEntry()); trade = new Trade(); ! buy = new Operation(3, OperationType.BUY); assertTrue(s.shouldOperate(trade, 3)); trade.operate(3); assertEquals(buy, trade.getEntry()); ! assertFalse(s.shouldOperate(trade, 3)); ! ! Operation sell = new Operation(4, OperationType.SELL); assertTrue(s.shouldOperate(trade, 4)); trade.operate(4); assertEquals(sell, trade.getExit()); ! } } Index: MinValueStarterStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/MinValueStarterStrategyTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** MinValueStarterStrategyTest.java 21 Aug 2007 20:58:34 -0000 1.6 --- MinValueStarterStrategyTest.java 23 Aug 2007 12:51:09 -0000 1.7 *************** *** 53,57 **** assertTrue(starter.shouldOperate(trade, 3)); trade.operate(3); ! assertFalse(starter.shouldOperate(trade, 3)); assertEquals(buy, trade.getEntry()); --- 53,57 ---- assertTrue(starter.shouldOperate(trade, 3)); trade.operate(3); ! assertFalse(starter.shouldOperate(trade, 3)); assertEquals(buy, trade.getEntry()); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:16
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/runner In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/runner Modified Files: HistoryRunnerTest.java ShortSellRunnerTest.java Log Message: Index: HistoryRunnerTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/runner/HistoryRunnerTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** HistoryRunnerTest.java 13 Aug 2007 21:45:16 -0000 1.12 --- HistoryRunnerTest.java 23 Aug 2007 12:51:11 -0000 1.13 *************** *** 24,46 **** @Before public void setUp() { ! enter = new Operation[] { null, ! null, ! new Operation(2, OperationType.BUY), ! new Operation(3, OperationType.BUY), ! null, ! null, ! new Operation(6, OperationType.BUY), ! null, ! null ! }; ! exit = new Operation[] { null, ! null, ! null, ! null, ! new Operation(4, OperationType.SELL), ! null, ! null, ! new Operation(7, OperationType.SELL), ! new Operation(8, OperationType.SELL) }; strategy = new FakeStrategy(enter, exit); } --- 24,31 ---- @Before public void setUp() { ! enter = new Operation[] { null, null, new Operation(2, OperationType.BUY), new Operation(3, OperationType.BUY), ! null, null, new Operation(6, OperationType.BUY), null, null }; ! exit = new Operation[] { null, null, null, null, new Operation(4, OperationType.SELL), null, null, ! new Operation(7, OperationType.SELL), new Operation(8, OperationType.SELL) }; strategy = new FakeStrategy(enter, exit); } *************** *** 87,122 **** } ! @Test public void ! testDoesntRunOnEmptyInterval() { HistoryRunner runner = new HistoryRunner(OperationType.BUY); ! List<Trade> trades = runner.run(this.strategy, 0, 0); ! assertEquals(0, trades.size()); } @Test(expected = IndexOutOfBoundsException.class) ! public void ! testDoesntRunOnInvalidIntervalNegativeStart() { HistoryRunner runner = new HistoryRunner(OperationType.BUY); ! @SuppressWarnings("unused") List<Trade> trades = runner.run(this.strategy, -1, 0); } ! @Test (expected = IndexOutOfBoundsException.class) ! public void ! testDoesntRunOnInvalidIntervalNegativeEnd() { HistoryRunner runner = new HistoryRunner(OperationType.BUY); ! @SuppressWarnings("unused") List<Trade> trades = runner.run(this.strategy, 0, -1); } ! @Test (expected = IllegalArgumentException.class) ! public void ! testDoesntRunOnInvalidIntervalEndBeforeStarting() { HistoryRunner runner = new HistoryRunner(OperationType.BUY); ! @SuppressWarnings("unused") List<Trade> trades = runner.run(this.strategy, 3, 2); --- 72,104 ---- } ! @Test ! public void testDoesntRunOnEmptyInterval() { HistoryRunner runner = new HistoryRunner(OperationType.BUY); ! List<Trade> trades = runner.run(this.strategy, 0, 0); ! assertEquals(0, trades.size()); } @Test(expected = IndexOutOfBoundsException.class) ! public void testDoesntRunOnInvalidIntervalNegativeStart() { HistoryRunner runner = new HistoryRunner(OperationType.BUY); ! @SuppressWarnings("unused") List<Trade> trades = runner.run(this.strategy, -1, 0); } ! @Test(expected = IndexOutOfBoundsException.class) ! public void testDoesntRunOnInvalidIntervalNegativeEnd() { HistoryRunner runner = new HistoryRunner(OperationType.BUY); ! @SuppressWarnings("unused") List<Trade> trades = runner.run(this.strategy, 0, -1); } ! @Test(expected = IllegalArgumentException.class) ! public void testDoesntRunOnInvalidIntervalEndBeforeStarting() { HistoryRunner runner = new HistoryRunner(OperationType.BUY); ! @SuppressWarnings("unused") List<Trade> trades = runner.run(this.strategy, 3, 2); *************** *** 124,146 **** @Test(expected = NullPointerException.class) ! public void ! testNullTypeShouldThrowException() { @SuppressWarnings("unused") HistoryRunner runner = new HistoryRunner(null); } ! ! @Test ! public void ! testRunSplitted() { HistoryRunner historyRunner = new HistoryRunner(OperationType.BUY); List<Trade> trades = historyRunner.run(this.strategy, 0, 3); assertEquals(1, trades.size()); ! trades = historyRunner.run(this.strategy, 3, 6); ! assertEquals(2, trades.size()); assertEquals(new Operation(3, OperationType.BUY), trades.get(0).getEntry()); assertEquals(new Operation(4, OperationType.SELL), trades.get(0).getExit()); ! trades = historyRunner.run(this.strategy, 6, 8); --- 106,126 ---- @Test(expected = NullPointerException.class) ! public void testNullTypeShouldThrowException() { @SuppressWarnings("unused") HistoryRunner runner = new HistoryRunner(null); } ! ! @Test ! public void testRunSplitted() { HistoryRunner historyRunner = new HistoryRunner(OperationType.BUY); List<Trade> trades = historyRunner.run(this.strategy, 0, 3); assertEquals(1, trades.size()); ! trades = historyRunner.run(this.strategy, 3, 6); ! assertEquals(2, trades.size()); assertEquals(new Operation(3, OperationType.BUY), trades.get(0).getEntry()); assertEquals(new Operation(4, OperationType.SELL), trades.get(0).getExit()); ! trades = historyRunner.run(this.strategy, 6, 8); Index: ShortSellRunnerTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/runner/ShortSellRunnerTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ShortSellRunnerTest.java 16 Aug 2007 03:31:01 -0000 1.2 --- ShortSellRunnerTest.java 23 Aug 2007 12:51:11 -0000 1.3 *************** *** 62,66 **** } - @Test public void testRunWithNoTrades() { --- 62,65 ---- *************** *** 74,77 **** } - } --- 73,75 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:16
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/series In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/series Modified Files: SlicerByTimePeriodTest.java Log Message: Index: SlicerByTimePeriodTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/series/SlicerByTimePeriodTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SlicerByTimePeriodTest.java 20 Aug 2007 18:15:30 -0000 1.1 --- SlicerByTimePeriodTest.java 23 Aug 2007 12:51:11 -0000 1.2 *************** *** 26,30 **** public void testSplitByYearOneDatePerYear() { ! series = new SampleTimeSeries(date.withYear(2000),date.withYear(2001), date.withYear(2002),date.withYear(2003), date.withYear(2004)); Period period = new Period().withYears(1); --- 26,31 ---- public void testSplitByYearOneDatePerYear() { ! series = new SampleTimeSeries(date.withYear(2000), date.withYear(2001), date.withYear(2002), date ! .withYear(2003), date.withYear(2004)); Period period = new Period().withYears(1); *************** *** 48,55 **** public void testSplitByYear() { ! series = new SampleTimeSeries( date.withYear(2000), date.withYear(2000), date.withYear(2000), ! date.withYear(2001), date.withYear(2001), date.withYear(2001), ! date.withYear(2002), date.withYear(2002), date.withYear(2002),date.withYear(2002), ! date.withYear(2003) ); Period period = new Period().withYears(1); --- 49,55 ---- public void testSplitByYear() { ! series = new SampleTimeSeries(date.withYear(2000), date.withYear(2000), date.withYear(2000), date ! .withYear(2001), date.withYear(2001), date.withYear(2001), date.withYear(2002), date.withYear(2002), ! date.withYear(2002), date.withYear(2002), date.withYear(2003)); Period period = new Period().withYears(1); *************** *** 72,87 **** } - @Test public void testSplitByYearForcingJuly() { Period period = new Period().withYears(1); ! series = new SampleTimeSeries( ! date.withDate(2000,1,1), date.withDate(2000,2,1), date.withDate(2000,3,1), ! date.withDate(2001,1,1), date.withDate(2001,2,1), date.withDate(2001,12,12), ! date.withDate(2002,1,1), date.withDate(2002,2,1), date.withDate(2002,3,1), date.withDate(2002,5,1), ! date.withDate(2003,3,1) ); ! TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, date.withYear(2000).withMonthOfYear(7), SlicerType.REGULAR); assertEquals(3, split.getSlices()); --- 72,86 ---- } @Test public void testSplitByYearForcingJuly() { Period period = new Period().withYears(1); ! series = new SampleTimeSeries(date.withDate(2000, 1, 1), date.withDate(2000, 2, 1), date.withDate(2000, 3, 1), ! date.withDate(2001, 1, 1), date.withDate(2001, 2, 1), date.withDate(2001, 12, 12), date.withDate(2002, ! 1, 1), date.withDate(2002, 2, 1), date.withDate(2002, 3, 1), date.withDate(2002, 5, 1), date ! .withDate(2003, 3, 1)); ! TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, date.withYear(2000).withMonthOfYear(7), ! SlicerType.REGULAR); assertEquals(3, split.getSlices()); *************** *** 100,107 **** public void testSplitByYearWithHolesBetweenSlices() { ! series = new SampleTimeSeries(date.withYear(2000), date.withYear(2000), date.withYear(2000), ! date.withYear(2001), date.withYear(2001), date.withYear(2001), ! date.withYear(2002), date.withYear(2002), date.withYear(2002), date.withYear(2002), ! date.withYear(2005), date.withYear(2005)); Period period = new Period().withYears(1); --- 99,105 ---- public void testSplitByYearWithHolesBetweenSlices() { ! series = new SampleTimeSeries(date.withYear(2000), date.withYear(2000), date.withYear(2000), date ! .withYear(2001), date.withYear(2001), date.withYear(2001), date.withYear(2002), date.withYear(2002), ! date.withYear(2002), date.withYear(2002), date.withYear(2005), date.withYear(2005)); Period period = new Period().withYears(1); *************** *** 126,134 **** @Test public void testSplitByYearWithBiggerSlices() { ! ! series = new SampleTimeSeries( date.withDate(2000, 1, 1), date.withDate(2000, 2, 1), date.withDate(2000, 3, 15), ! date.withDate(2001, 1, 1), date.withDate(2001, 1, 3), date.withDate(2001, 12, 31), ! date.withDate(2002, 1, 1), date.withDate(2002, 1, 2), date.withDate(2002, 1, 3), date.withDate(2002, 5, 5), ! date.withDate(2003, 3, 3) ); Period period = new Period().withYears(1); --- 124,132 ---- @Test public void testSplitByYearWithBiggerSlices() { ! ! series = new SampleTimeSeries(date.withDate(2000, 1, 1), date.withDate(2000, 2, 1), date.withDate(2000, 3, 15), ! date.withDate(2001, 1, 1), date.withDate(2001, 1, 3), date.withDate(2001, 12, 31), date.withDate(2002, ! 1, 1), date.withDate(2002, 1, 2), date.withDate(2002, 1, 3), date.withDate(2002, 5, 5), date ! .withDate(2003, 3, 3)); Period period = new Period().withYears(1); *************** *** 151,158 **** Period period = new Period().withYears(1); ! series = new SampleTimeSeries( ! date.withDate(2000, 7, 1), date.withDate(2000, 8, 1),date.withDate(2000, 9, 15), date.withDate(2001, 1, 1), date.withDate(2001, 1, 3), ! date.withDate(2001, 12, 31), date.withDate(2002, 1, 1), date.withDate(2002, 1, 2), date.withDate(2002, 1, 3), date.withDate(2002, 5, 5), ! date.withDate(2003, 3, 3) ); TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, SlicerType.REGULAR); --- 149,156 ---- Period period = new Period().withYears(1); ! series = new SampleTimeSeries(date.withDate(2000, 7, 1), date.withDate(2000, 8, 1), date.withDate(2000, 9, 15), ! date.withDate(2001, 1, 1), date.withDate(2001, 1, 3), date.withDate(2001, 12, 31), date.withDate(2002, ! 1, 1), date.withDate(2002, 1, 2), date.withDate(2002, 1, 3), date.withDate(2002, 5, 5), date ! .withDate(2003, 3, 3)); TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, SlicerType.REGULAR); *************** *** 173,180 **** Period period = new Period().withYears(1); ! series = new SampleTimeSeries( ! date.withDate(2000, 7, 1), date.withDate(2000, 8, 1),date.withDate(2000, 9, 15), date.withDate(2001, 1, 1), date.withDate(2001, 1, 3), ! date.withDate(2001, 12, 31), date.withDate(2002, 1, 1), date.withDate(2002, 1, 2), date.withDate(2002, 1, 3), date.withDate(2002, 5, 5), ! date.withDate(2003, 3, 3) ); TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, date.withDate(2000, 1, 1), SlicerType.REGULAR); --- 171,178 ---- Period period = new Period().withYears(1); ! series = new SampleTimeSeries(date.withDate(2000, 7, 1), date.withDate(2000, 8, 1), date.withDate(2000, 9, 15), ! date.withDate(2001, 1, 1), date.withDate(2001, 1, 3), date.withDate(2001, 12, 31), date.withDate(2002, ! 1, 1), date.withDate(2002, 1, 2), date.withDate(2002, 1, 3), date.withDate(2002, 5, 5), date ! .withDate(2003, 3, 3)); TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, date.withDate(2000, 1, 1), SlicerType.REGULAR); *************** *** 197,210 **** public void testSplitByHour() { Period period = new Period().withHours(1); ! DateTime openTime = new DateTime(0).withTime(10, 0, 0, 0); ! series = new SampleTimeSeries( ! openTime, openTime.plusMinutes(1) , openTime.plusMinutes(2), openTime.plusMinutes(10), openTime.plusMinutes(15), openTime.plusMinutes(25), ! openTime.plusHours(1), ! openTime.plusHours(2), ! openTime.plusHours(7), ! openTime.plusHours(10).plusMinutes(5), openTime.plusHours(10).plusMinutes(10), openTime.plusHours(10).plusMinutes(20), openTime.plusHours(10).plusMinutes(30) ); ! TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, SlicerType.REGULAR); --- 195,206 ---- public void testSplitByHour() { Period period = new Period().withHours(1); ! DateTime openTime = new DateTime(0).withTime(10, 0, 0, 0); ! series = new SampleTimeSeries(openTime, openTime.plusMinutes(1), openTime.plusMinutes(2), openTime ! .plusMinutes(10), openTime.plusMinutes(15), openTime.plusMinutes(25), openTime.plusHours(1), openTime ! .plusHours(2), openTime.plusHours(7), openTime.plusHours(10).plusMinutes(5), openTime.plusHours(10) ! .plusMinutes(10), openTime.plusHours(10).plusMinutes(20), openTime.plusHours(10).plusMinutes(30)); ! TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, SlicerType.REGULAR); *************** *** 227,240 **** } ! @Test ! public void testMemorizedSlicer() ! { Period period = new Period().withYears(1); ! series = new SampleTimeSeries( ! date.withDate(2000, 7, 1), date.withDate(2000, 8, 1),date.withDate(2000, 9, 15), date.withDate(2001, 1, 1), date.withDate(2001, 1, 3), ! date.withDate(2001, 12, 31), date.withDate(2002, 1, 1), date.withDate(2002, 1, 2), date.withDate(2002, 1, 3), date.withDate(2002, 5, 5), ! date.withDate(2003, 3, 3) ); TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, date.withDate(2000, 1, 1), SlicerType.MEMORIZED); --- 223,235 ---- } ! @Test ! public void testMemorizedSlicer() { Period period = new Period().withYears(1); ! series = new SampleTimeSeries(date.withDate(2000, 7, 1), date.withDate(2000, 8, 1), date.withDate(2000, 9, 15), ! date.withDate(2001, 1, 1), date.withDate(2001, 1, 3), date.withDate(2001, 12, 31), date.withDate(2002, ! 1, 1), date.withDate(2002, 1, 2), date.withDate(2002, 1, 3), date.withDate(2002, 5, 5), date ! .withDate(2003, 3, 3)); TimeSeriesSlicer split = new SlicerByTimePeriod(series, period, date.withDate(2000, 1, 1), SlicerType.MEMORIZED); *************** *** 251,257 **** assertEquals(0, split.getSlice(3).getBegin()); ! assertEquals(10, split.getSlice(3).getEnd()); } ! ! } --- 246,251 ---- assertEquals(0, split.getSlice(3).getBegin()); ! assertEquals(10, split.getSlice(3).getEnd()); } ! } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:16
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/cache In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/indicator/cache Modified Files: CachedIndicatorTest.java Log Message: Index: CachedIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/cache/CachedIndicatorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** CachedIndicatorTest.java 8 Aug 2007 18:34:33 -0000 1.11 --- CachedIndicatorTest.java 23 Aug 2007 12:51:12 -0000 1.12 *************** *** 52,84 **** @Test ! public void testReallyBigCachedEMAExtendsCachedIndicator() ! { int maxIndex = 1000000; ! List<Tick> ticks = new ArrayList<Tick>(Collections.nCopies(maxIndex, new Tick(0))); TimeSeries longData = new SampleTimeSeries(ticks); EMAIndicator quoteEMA = new EMAIndicator(new ClosePriceIndicator(longData), 10); ! quoteEMA.getValue(maxIndex - 1); - - } @Test ! public void testReallyCachedBigRSINotExtendsCachedIndicator() ! { int maxIndex = 1000000; ! List<Tick> ticks = new ArrayList<Tick>(Collections.nCopies(maxIndex, new Tick(0))); TimeSeries longData = new SampleTimeSeries(ticks); RSIIndicator RSI = new RSIIndicator(new ClosePriceIndicator(longData), 10); ! RSI.getValue(maxIndex - 1); ! } ! @Test ! public void testGetName() ! { SMAIndicator quoteSMA = new SMAIndicator(new ClosePriceIndicator(data), 3); ! assertEquals("SMAIndicator timeFrame: 3", quoteSMA.getName()); } } --- 52,80 ---- @Test ! public void testReallyBigCachedEMAExtendsCachedIndicator() { int maxIndex = 1000000; ! List<Tick> ticks = new ArrayList<Tick>(Collections.nCopies(maxIndex, new Tick(0))); TimeSeries longData = new SampleTimeSeries(ticks); EMAIndicator quoteEMA = new EMAIndicator(new ClosePriceIndicator(longData), 10); ! quoteEMA.getValue(maxIndex - 1); + } @Test ! public void testReallyCachedBigRSINotExtendsCachedIndicator() { int maxIndex = 1000000; ! List<Tick> ticks = new ArrayList<Tick>(Collections.nCopies(maxIndex, new Tick(0))); TimeSeries longData = new SampleTimeSeries(ticks); RSIIndicator RSI = new RSIIndicator(new ClosePriceIndicator(longData), 10); ! RSI.getValue(maxIndex - 1); ! } ! @Test ! public void testGetName() { SMAIndicator quoteSMA = new SMAIndicator(new ClosePriceIndicator(data), 3); ! assertEquals("SMAIndicator timeFrame: 3", quoteSMA.getName()); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:16
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/analysis Modified Files: StockAnalysisTest.java Log Message: Index: StockAnalysisTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/StockAnalysisTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** StockAnalysisTest.java 23 Aug 2007 12:47:06 -0000 1.2 --- StockAnalysisTest.java 23 Aug 2007 12:51:12 -0000 1.3 *************** *** 30,91 **** public class StockAnalysisTest { ! private Stock stock; private TotalProfitCriterion applyedCriterion; private StockAnalysis stockAnalysis; private BestStrategyEvaluator evaluator; private SlicerByTimePeriod slicer; private HashSet<Strategy> strategies; private Report report; private WalkForward walker; @Before public void setUp() throws Exception { ! this.stock = new Stock("Teste","Teste"); this.applyedCriterion = new TotalProfitCriterion(); Period period = new Period().withYears(1); DateTime date = new DateTime(); ! TimeSeries series = new SampleTimeSeries( ! date.withDate(2000,1,1), date.withDate(2000,2,1), date.withDate(2000,3,1), ! date.withDate(2001,1,1), date.withDate(2001,2,1), date.withDate(2001,12,12), ! date.withDate(2002,1,1), date.withDate(2002,2,1), date.withDate(2002,3,1), date.withDate(2002,5,1), ! date.withDate(2003,3,1) ); slicer = new SlicerByTimePeriod(series, period, date.withYear(2000).withMonthOfYear(7), SlicerType.REGULAR); Runner runner = new HistoryRunner(OperationType.BUY); evaluator = new BestStrategyEvaluator(runner); ! ! Operation[] enter = new Operation[] { new Operation(0, OperationType.BUY), ! null, ! new Operation(2, OperationType.BUY), ! null, ! null, ! null, ! null, ! null, ! null, ! null, ! null ! }; ! Operation[] exit = new Operation[] { null, ! new Operation(1, OperationType.SELL), ! null, ! null, ! null, ! new Operation(5, OperationType.SELL), ! null, ! null, ! null, ! null, ! null ! }; ! strategies = new HashSet<Strategy>(); ! strategies.add(new FakeStrategy(enter,exit)); ! walker = new WalkForward(evaluator); report = walker.walk(strategies, slicer, applyedCriterion); ! ! this.stockAnalysis = new StockAnalysis(stock,applyedCriterion,slicer, evaluator); } --- 30,77 ---- public class StockAnalysisTest { ! private Stock stock; + private TotalProfitCriterion applyedCriterion; + private StockAnalysis stockAnalysis; + private BestStrategyEvaluator evaluator; + private SlicerByTimePeriod slicer; + private HashSet<Strategy> strategies; + private Report report; + private WalkForward walker; @Before public void setUp() throws Exception { ! this.stock = new Stock("Teste", "Teste"); this.applyedCriterion = new TotalProfitCriterion(); Period period = new Period().withYears(1); DateTime date = new DateTime(); ! TimeSeries series = new SampleTimeSeries(date.withDate(2000, 1, 1), date.withDate(2000, 2, 1), date.withDate( ! 2000, 3, 1), date.withDate(2001, 1, 1), date.withDate(2001, 2, 1), date.withDate(2001, 12, 12), date ! .withDate(2002, 1, 1), date.withDate(2002, 2, 1), date.withDate(2002, 3, 1), date.withDate(2002, 5, 1), ! date.withDate(2003, 3, 1)); slicer = new SlicerByTimePeriod(series, period, date.withYear(2000).withMonthOfYear(7), SlicerType.REGULAR); Runner runner = new HistoryRunner(OperationType.BUY); evaluator = new BestStrategyEvaluator(runner); ! ! Operation[] enter = new Operation[] { new Operation(0, OperationType.BUY), null, ! new Operation(2, OperationType.BUY), null, null, null, null, null, null, null, null }; ! Operation[] exit = new Operation[] { null, new Operation(1, OperationType.SELL), null, null, null, ! new Operation(5, OperationType.SELL), null, null, null, null, null }; ! strategies = new HashSet<Strategy>(); ! strategies.add(new FakeStrategy(enter, exit)); ! walker = new WalkForward(evaluator); report = walker.walk(strategies, slicer, applyedCriterion); ! ! this.stockAnalysis = new StockAnalysis(stock, applyedCriterion, slicer, evaluator); } *************** *** 129,133 **** @Test public void testGetReports() { ! } --- 115,119 ---- @Test public void testGetReports() { ! } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:16
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/oscilator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/indicator/oscilator Modified Files: StochasticOscilatorKTest.java StochasticOscilatorDTest.java Log Message: Index: StochasticOscilatorKTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/oscilator/StochasticOscilatorKTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** StochasticOscilatorKTest.java 20 Aug 2007 18:15:30 -0000 1.4 --- StochasticOscilatorKTest.java 23 Aug 2007 12:51:11 -0000 1.5 *************** *** 41,45 **** @Test public void testStochasticOscilatorKParam14() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); --- 41,45 ---- @Test public void testStochasticOscilatorKParam14() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); *************** *** 51,55 **** @Test public void testStochasticOscilatorKShouldWorkJumpingIndexes() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); assertEquals(57.81, sof.getValue(13), 0.01); --- 51,55 ---- @Test public void testStochasticOscilatorKShouldWorkJumpingIndexes() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); assertEquals(57.81, sof.getValue(13), 0.01); *************** *** 62,68 **** sof.getValue(1300); } @Test ! public void testGetName() ! { StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); assertEquals("StochasticOscilatorK timeFrame: 14", sof.getName()); --- 62,68 ---- sof.getValue(1300); } + @Test ! public void testGetName() { StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); assertEquals("StochasticOscilatorK timeFrame: 14", sof.getName()); Index: StochasticOscilatorDTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/oscilator/StochasticOscilatorDTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** StochasticOscilatorDTest.java 20 Aug 2007 18:15:30 -0000 1.4 --- StochasticOscilatorDTest.java 23 Aug 2007 12:51:11 -0000 1.5 *************** *** 39,63 **** } - @Test public void testStochasticOscilatorDParam14UsingSMA3AndGenericConstructer() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); SMAIndicator sma = new SMAIndicator(sof, 3); StochasticOscilatorD sos = new StochasticOscilatorD(sma); ! ! assertEquals(sma.getValue(0), sos.getValue(0), 0.01); assertEquals(sma.getValue(1), sos.getValue(1), 0.01); assertEquals(sma.getValue(2), sos.getValue(2), 0.01); } ! @Test public void testStochasticOscilatorDParam14UsingSMA3() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); StochasticOscilatorD sos = new StochasticOscilatorD(sof); SMAIndicator sma = new SMAIndicator(sof, 3); ! assertEquals(sma.getValue(0), sos.getValue(0), 0.01); assertEquals(sma.getValue(1), sos.getValue(1), 0.01); --- 39,61 ---- } @Test public void testStochasticOscilatorDParam14UsingSMA3AndGenericConstructer() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); SMAIndicator sma = new SMAIndicator(sof, 3); StochasticOscilatorD sos = new StochasticOscilatorD(sma); ! assertEquals(sma.getValue(0), sos.getValue(0), 0.01); assertEquals(sma.getValue(1), sos.getValue(1), 0.01); assertEquals(sma.getValue(2), sos.getValue(2), 0.01); } ! @Test public void testStochasticOscilatorDParam14UsingSMA3() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); StochasticOscilatorD sos = new StochasticOscilatorD(sof); SMAIndicator sma = new SMAIndicator(sof, 3); ! assertEquals(sma.getValue(0), sos.getValue(0), 0.01); assertEquals(sma.getValue(1), sos.getValue(1), 0.01); *************** *** 67,75 **** @Test public void testStochasticOscilatorDShouldWorkJumpingIndexes() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); StochasticOscilatorD sos = new StochasticOscilatorD(sof); SMAIndicator sma = new SMAIndicator(sof, 3); ! assertEquals(sma.getValue(13), sos.getValue(13), 0.01); } --- 65,73 ---- @Test public void testStochasticOscilatorDShouldWorkJumpingIndexes() { ! StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); StochasticOscilatorD sos = new StochasticOscilatorD(sof); SMAIndicator sma = new SMAIndicator(sof, 3); ! assertEquals(sma.getValue(13), sos.getValue(13), 0.01); } *************** *** 80,90 **** StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); StochasticOscilatorD sos = new StochasticOscilatorD(sof); ! sos.getValue(14); } @Test ! public void testGetName() ! { StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); StochasticOscilatorD sos = new StochasticOscilatorD(sof); --- 78,87 ---- StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); StochasticOscilatorD sos = new StochasticOscilatorD(sof); ! sos.getValue(14); } @Test ! public void testGetName() { StochasticOscilatorK sof = new StochasticOscilatorK(data, 14); StochasticOscilatorD sos = new StochasticOscilatorD(sof); |