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: Carlos <ma...@us...> - 2007-05-17 18:29:49
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv18683/src/test/net/sf/tail/indicator Added Files: AverageGainIndicatorTest.java Log Message: Teste para a classe AverageGain --- NEW FILE: AverageGainIndicatorTest.java --- package net.sf.tail.indicator; import net.sf.tail.SampleTimeSeries; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.AverageGainIndicator; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import junit.framework.JUnit4TestAdapter; public class AverageGainIndicatorTest { private TimeSeries data; @Before public void prepare() throws Exception { data = new SampleTimeSeries(new double[] { 1, 2, 3, 4, 3, 4, 5, 4, 3, 3, 4, 3, 2 }); } @Test public void testAverageGain5() throws Exception { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); assertEquals(2/3, averageGain.getValue(5), 0.01); assertEquals(62.75, averageGain.getValue(6), 0.01); assertEquals(66.67, averageGain.getValue(7), 0.01); assertEquals(75.23, averageGain.getValue(8), 0.01); assertEquals(71.93, averageGain.getValue(9), 0.01); assertEquals(73.33, averageGain.getValue(10), 0.01); assertEquals(77.78, averageGain.getValue(11), 0.01); assertEquals(74.67, averageGain.getValue(12), 0.01); } @Test public void test19daysJumping() { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); assertEquals(73.33, averageGain.getValue(19), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); assertEquals(3d, averageGain.getValue(300)); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) //e o JUnit4 public static junit.framework.Test suite() { return new JUnit4TestAdapter(RSIIndicatorTest.class); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 17:22:23
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv22311/src/test/net/sf/tail Modified Files: SampleTimeSeries.java Log Message: refatoração dos testes Index: SampleTimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/SampleTimeSeries.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SampleTimeSeries.java 14 May 2007 16:05:56 -0000 1.3 --- SampleTimeSeries.java 17 May 2007 17:22:17 -0000 1.4 *************** *** 1,4 **** --- 1,5 ---- package net.sf.tail; + import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; *************** *** 14,17 **** --- 15,28 ---- } } + + public SampleTimeSeries() { + ticks = new ArrayList<Tick>(); + for (double i = 0d; i < 10; i++) { + Tick tick = new Tick(new Timestamp(System.currentTimeMillis()), i, + i + 1, i + 2, i + 3, i + 4, i + 5, i + 6, i + 7, + (int) (i + 8)); + ticks.add(tick); + } + } public Tick getTick(int i) { |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 17:22:23
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv22311/src/test/net/sf/tail/indicator/simple Modified Files: ChangePriceIndicatorTest.java MinPriceIndicatorTest.java VolumeFinancierIndicatorTest.java TradeIndicatorTest.java VolumeAmountIndicatorTest.java PreviousPriceIndicatorTest.java OpenPriceIndicatorTest.java MaxPriceIndicatorTest.java ClosePriceIndicatorTest.java Removed Files: SimpleIndicatorTest.java Log Message: refatoração dos testes Index: VolumeFinancierIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/VolumeFinancierIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** VolumeFinancierIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- VolumeFinancierIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 *************** *** 4,18 **** import junit.framework.JUnit4TestAdapter; import org.junit.Before; import org.junit.Test; ! public class VolumeFinancierIndicatorTest extends SimpleIndicatorTest{ private VolumeFinancierIndicator volumeFinancierIndicator; @Before public void setUp(){ ! initialize(); ! volumeFinancierIndicator = new VolumeFinancierIndicator(getTimeSeries()); ! } --- 4,22 ---- import junit.framework.JUnit4TestAdapter; + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; ! public class VolumeFinancierIndicatorTest { private VolumeFinancierIndicator volumeFinancierIndicator; + TimeSeries timeSeries; + @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! volumeFinancierIndicator = new VolumeFinancierIndicator(timeSeries); } Index: MaxPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/MaxPriceIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MaxPriceIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- MaxPriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 *************** *** 4,17 **** import junit.framework.JUnit4TestAdapter; import org.junit.Before; import org.junit.Test; ! public class MaxPriceIndicatorTest extends SimpleIndicatorTest{ private MaxPriceIndicator maxPriceIndicator; @Before public void setUp(){ ! initialize(); ! maxPriceIndicator = new MaxPriceIndicator(getTimeSeries()); } --- 4,22 ---- import junit.framework.JUnit4TestAdapter; + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; ! public class MaxPriceIndicatorTest { private MaxPriceIndicator maxPriceIndicator; + TimeSeries timeSeries; + @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! maxPriceIndicator = new MaxPriceIndicator(timeSeries); } --- SimpleIndicatorTest.java DELETED --- Index: TradeIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/TradeIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TradeIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- TradeIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 *************** *** 4,17 **** import junit.framework.JUnit4TestAdapter; import org.junit.Before; import org.junit.Test; ! public class TradeIndicatorTest extends SimpleIndicatorTest{ private TradeIndicator tradeIndicator; @Before public void setUp(){ ! initialize(); ! tradeIndicator = new TradeIndicator(getTimeSeries()); } --- 4,22 ---- import junit.framework.JUnit4TestAdapter; + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; ! public class TradeIndicatorTest { private TradeIndicator tradeIndicator; + TimeSeries timeSeries; + @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! tradeIndicator = new TradeIndicator(timeSeries); } Index: OpenPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/OpenPriceIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpenPriceIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- OpenPriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 *************** *** 4,17 **** import junit.framework.JUnit4TestAdapter; import org.junit.Before; import org.junit.Test; ! public class OpenPriceIndicatorTest extends SimpleIndicatorTest{ private OpenPriceIndicator openPriceIndicator; @Before public void setUp(){ ! initialize(); ! openPriceIndicator = new OpenPriceIndicator(getTimeSeries()); } --- 4,22 ---- import junit.framework.JUnit4TestAdapter; + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; ! public class OpenPriceIndicatorTest { private OpenPriceIndicator openPriceIndicator; + TimeSeries timeSeries; + @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! openPriceIndicator = new OpenPriceIndicator(timeSeries); } Index: ChangePriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/ChangePriceIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChangePriceIndicatorTest.java 14 May 2007 16:05:55 -0000 1.3 --- ChangePriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.4 *************** *** 1,4 **** --- 1,7 ---- package net.sf.tail.indicator.simple; + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; *************** *** 11,21 **** * simples. (dtsato) */ ! public class ChangePriceIndicatorTest extends SimpleIndicatorTest { private ChangeIndicator changeIndicator; @Before public void setUp(){ ! initialize(); ! changeIndicator = new ChangeIndicator(getTimeSeries()); } --- 14,26 ---- * simples. (dtsato) */ ! public class ChangePriceIndicatorTest { ! private ChangeIndicator changeIndicator; + private TimeSeries timeSeries; @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! changeIndicator = new ChangeIndicator(timeSeries); } Index: MinPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/MinPriceIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MinPriceIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- MinPriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 *************** *** 4,18 **** import junit.framework.JUnit4TestAdapter; import org.junit.Before; import org.junit.Test; ! public class MinPriceIndicatorTest extends SimpleIndicatorTest{ private MinPriceIndicator minPriceIndicator; @Before public void setUp(){ ! initialize(); ! minPriceIndicator = new MinPriceIndicator(getTimeSeries()); ! } --- 4,22 ---- import junit.framework.JUnit4TestAdapter; + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; ! public class MinPriceIndicatorTest { private MinPriceIndicator minPriceIndicator; + TimeSeries timeSeries; + @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! minPriceIndicator = new MinPriceIndicator(timeSeries); } Index: VolumeAmountIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/VolumeAmountIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** VolumeAmountIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- VolumeAmountIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 *************** *** 4,17 **** import junit.framework.JUnit4TestAdapter; import org.junit.Before; import org.junit.Test; ! public class VolumeAmountIndicatorTest extends SimpleIndicatorTest{ private VolumeAmountIndicator volumeAmountIndicator; @Before public void setUp(){ ! initialize(); ! volumeAmountIndicator = new VolumeAmountIndicator(getTimeSeries()); } --- 4,22 ---- import junit.framework.JUnit4TestAdapter; + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; ! public class VolumeAmountIndicatorTest { private VolumeAmountIndicator volumeAmountIndicator; + TimeSeries timeSeries; + @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! volumeAmountIndicator = new VolumeAmountIndicator(timeSeries); } Index: ClosePriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/ClosePriceIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ClosePriceIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- ClosePriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 *************** *** 5,18 **** import org.junit.Before; import org.junit.Test; ! public class ClosePriceIndicatorTest extends SimpleIndicatorTest { private ClosePriceIndicator closePrice; @Before public void setUp(){ ! initialize(); ! closePrice = new ClosePriceIndicator(getTimeSeries()); } --- 5,23 ---- + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; ! public class ClosePriceIndicatorTest { private ClosePriceIndicator closePrice; + TimeSeries timeSeries; + @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! closePrice = new ClosePriceIndicator(timeSeries); } Index: PreviousPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/PreviousPriceIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PreviousPriceIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- PreviousPriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 *************** *** 4,17 **** import junit.framework.JUnit4TestAdapter; import org.junit.Before; import org.junit.Test; ! public class PreviousPriceIndicatorTest extends SimpleIndicatorTest{ private PreviousPriceIndicator previousPriceIndicator; @Before public void setUp(){ ! initialize(); ! previousPriceIndicator = new PreviousPriceIndicator(getTimeSeries()); } --- 4,22 ---- import junit.framework.JUnit4TestAdapter; + import net.sf.tail.SampleTimeSeries; + import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; ! public class PreviousPriceIndicatorTest { private PreviousPriceIndicator previousPriceIndicator; + TimeSeries timeSeries; + @Before public void setUp(){ ! timeSeries = new SampleTimeSeries(); ! previousPriceIndicator = new PreviousPriceIndicator(timeSeries); } |
|
From: Thies <tg...@us...> - 2007-05-17 16:55:23
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10221/src/test/net/sf/tail/reader Modified Files: CedroTimeSeriesLoaderTest.java Log Message: Modificado o nome do método de prepare() para setUp() Index: CedroTimeSeriesLoaderTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/reader/CedroTimeSeriesLoaderTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** CedroTimeSeriesLoaderTest.java 14 May 2007 16:05:56 -0000 1.5 --- CedroTimeSeriesLoaderTest.java 17 May 2007 16:55:17 -0000 1.6 *************** *** 16,21 **** @Before ! // TODO: Prefiro seguir o padrão do JUnit e usar setUp() (dtsato) ! public void prepare() throws Exception { ctsl = new CedroTimeSeriesLoader(); ts = ctsl.load(new FileInputStream("BaseBovespa/tests/Cedro-ReaderTest.csv")); --- 16,20 ---- @Before ! public void setUp() throws Exception { ctsl = new CedroTimeSeriesLoader(); ts = ctsl.load(new FileInputStream("BaseBovespa/tests/Cedro-ReaderTest.csv")); |
|
From: Danilo S. <dt...@us...> - 2007-05-15 14:52:44
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11972/src/java/net/sf/tail/indicator/tracker Modified Files: CachedIndicator.java RSIIndicator.java Log Message: Mais alguns TODOs e formatao de cdigo. Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** RSIIndicator.java 14 May 2007 12:08:21 -0000 1.7 --- RSIIndicator.java 15 May 2007 14:52:43 -0000 1.8 *************** *** 10,40 **** protected Double calculate(int index) { ! return 100d - 100d/(1 + rs(index)); } ! private Double rs(int index) { ! if(index < timeFrame){ ! /* TODO - Na interpretação da minha fonte (www.stockcharts.com) RSI de Ãndices menores que o timeFrame são null */ } ! return averageGain(index)/averageLoss(index); } private double averageLoss(int index) { double result = 0; ! for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if(indicator.getValue(i).doubleValue() < indicator.getValue(i-1).doubleValue() ) ! result += indicator.getValue(i-1).doubleValue() - indicator.getValue(i).doubleValue(); } ! return result/ Math.min(timeFrame, index + 1); } public double averageGain(int index) { double result = 0; ! for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if(indicator.getValue(i).doubleValue() >= indicator.getValue(i-1).doubleValue() ) ! result += indicator.getValue(i).doubleValue() - indicator.getValue(i-1).doubleValue(); } ! return result/ Math.min(timeFrame, index + 1); } } --- 10,53 ---- protected Double calculate(int index) { ! return 100d - 100d / (1 + rs(index)); } ! private Double rs(int index) { ! if (index < timeFrame) { ! /* ! * TODO - Na interpretação da minha fonte (www.stockcharts.com) RSI ! * de Ãndices menores que o timeFrame são null ! */ } ! return averageGain(index) / averageLoss(index); } + /* + * TODO: O código desse método e do averageGain parecem muito duplicados + * (pouca coisa diferente). Ambos iteram nos mesmos Ãndices, o que significa + * que estamos fazendo loops demais. Como são private, acho que já podÃamos + * acumular as duas coisas para evitar comparações desnecessárias depois. + * (dtsato) + */ private double averageLoss(int index) { double result = 0; ! for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if (indicator.getValue(i).doubleValue() < indicator.getValue(i - 1).doubleValue()) ! result += indicator.getValue(i - 1).doubleValue() - indicator.getValue(i).doubleValue(); } ! return result / Math.min(timeFrame, index + 1); } + /* + * TODO: Por que esse é público e o outro é private? (dtsato) + */ public double averageGain(int index) { double result = 0; ! for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if (indicator.getValue(i).doubleValue() >= indicator.getValue(i - 1).doubleValue()) ! result += indicator.getValue(i).doubleValue() - indicator.getValue(i - 1).doubleValue(); } ! return result / Math.min(timeFrame, index + 1); } } Index: CachedIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/CachedIndicator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CachedIndicator.java 14 May 2007 15:47:09 -0000 1.2 --- CachedIndicator.java 15 May 2007 14:52:43 -0000 1.3 *************** *** 16,19 **** --- 16,25 ---- protected List<T> results; + /* + * TODO: Não entendi esse construtor nem os parâmetros. Eles não são usados + * aqui. Concordo em deixar o CachedIndicator como um decorator de Indicator. + * (dtsato) + */ + public CachedIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; |
|
From: Julian G. M. <jul...@us...> - 2007-05-15 02:51:04
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv7460/src/java/net/sf/tail/indicator/simple Modified Files: VolumeFinancierIndicator.java ChangeIndicator.java Log Message: added some TODOs Index: ChangeIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/simple/ChangeIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ChangeIndicator.java 12 May 2007 19:17:09 -0000 1.1 --- ChangeIndicator.java 15 May 2007 02:50:52 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- import net.sf.tail.TimeSeries; + //TODO: (jm) trocaria esse nome para para VariationIndicator... (change soou estranho) public class ChangeIndicator implements Indicator<Double> { Index: VolumeFinancierIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/simple/VolumeFinancierIndicator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** VolumeFinancierIndicator.java 12 May 2007 17:45:51 -0000 1.2 --- VolumeFinancierIndicator.java 15 May 2007 02:50:52 -0000 1.3 *************** *** 4,7 **** --- 4,8 ---- import net.sf.tail.TimeSeries; + //TODO: (jm) esse nome tambem esta estranho public class VolumeFinancierIndicator implements Indicator<Double> { |
|
From: Danilo S. <dt...@us...> - 2007-05-14 16:06:01
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27414/src/test/net/sf/tail/indicator/simple Modified Files: ChangePriceIndicatorTest.java SimpleIndicatorTest.java Log Message: Comentrios no cdigo de teste. Index: SimpleIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/SimpleIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SimpleIndicatorTest.java 14 May 2007 12:20:36 -0000 1.2 --- SimpleIndicatorTest.java 14 May 2007 16:05:55 -0000 1.3 *************** *** 1,29 **** package net.sf.tail.indicator.simple; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; - - import net.sf.tail.Tick; import net.sf.tail.TickTimeSeries; import net.sf.tail.TimeSeries; public abstract class SimpleIndicatorTest { private TimeSeries timeSeries; ! public TimeSeries getTimeSeries() { return timeSeries; } ! ! public void initialize() ! { ! List<Tick>ticksTest = new ArrayList<Tick>(); double i = 0.0; for (int j = 0; j < 10; j++) { ! Tick tick = new Tick(new Timestamp(System.currentTimeMillis()), i, i+1, i+2, i+3, i+4, i+5, i+6, i+7, (int)(i+8)); ticksTest.add(tick); i++; ! } timeSeries = new TickTimeSeries(ticksTest); --- 1,45 ---- package net.sf.tail.indicator.simple; + import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import net.sf.tail.Tick; import net.sf.tail.TickTimeSeries; import net.sf.tail.TimeSeries; + /* + * TODO: Os testes devem ser auto-explicativos. Devem servir como + * documentação do código testado. Por isso, acho ruim ter que ficar navegando + * na hierarquia para entender o teste. Reaproveitar o TimeSeries sequencial não + * justifica a herança. Nesse caso acho melhor fazer uma outra classe que estende + * TimeSeries (como fizemos com o SampleTimeSeries) que é instanciado nos testes + * que vão utilizar. (dtsato) + */ public abstract class SimpleIndicatorTest { private TimeSeries timeSeries; ! public TimeSeries getTimeSeries() { return timeSeries; } ! ! /* ! * TODO: Por que isso não é instanciado no construtor? Todo filho ! * precisa saber que esse método deve ser chamado sempre? (dtsato) ! */ ! public void initialize() { ! List<Tick> ticksTest = new ArrayList<Tick>(); ! /* ! * TODO: Por que iterar no j e usar o i? Dá pra iterar no i e transformar ! * as somas em double na hora de instanciar o Tick. ! */ double i = 0.0; for (int j = 0; j < 10; j++) { ! Tick tick = new Tick(new Timestamp(System.currentTimeMillis()), i, ! i + 1, i + 2, i + 3, i + 4, i + 5, i + 6, i + 7, ! (int) (i + 8)); ticksTest.add(tick); i++; ! } timeSeries = new TickTimeSeries(ticksTest); Index: ChangePriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/ChangePriceIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ChangePriceIndicatorTest.java 14 May 2007 12:04:03 -0000 1.2 --- ChangePriceIndicatorTest.java 14 May 2007 16:05:55 -0000 1.3 *************** *** 7,10 **** --- 7,14 ---- import junit.framework.JUnit4TestAdapter; + /* + * TODO: Os TODOs dessa classe valem para os outros testes de indicadores + * simples. (dtsato) + */ public class ChangePriceIndicatorTest extends SimpleIndicatorTest { private ChangeIndicator changeIndicator; *************** *** 18,23 **** --- 22,34 ---- @Test + // TODO: Nomenclatura: testIndicatorShouldRetrieveTickChangePrice public void testChange() { + /* + * TODO: Não está legÃvel esse teste. Eu preferia algo assim: + * timeSeries.getTick(i).getChangePrice() + * (dtsato) + * Esse código assume que você sabe como o ts foi instanciado. + */ for (int i = 0; i < 10; i++) { assertEquals(changeIndicator.getValue(i), (double)(i + 4)); *************** *** 27,30 **** --- 38,42 ---- public void testWrongIndex() { + // TODO: não precisa do assertEquals se a idéia é soltar a exceção. (dtsato) assertEquals(changeIndicator.getValue(10), 0.0); } |
|
From: Danilo S. <dt...@us...> - 2007-05-14 16:06:01
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27414/src/test/net/sf/tail Modified Files: SampleTimeSeries.java Log Message: Comentrios no cdigo de teste. Index: SampleTimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/SampleTimeSeries.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SampleTimeSeries.java 12 May 2007 15:38:09 -0000 1.2 --- SampleTimeSeries.java 14 May 2007 16:05:56 -0000 1.3 *************** *** 6,26 **** public class SampleTimeSeries implements TimeSeries { ! private List<Tick> ticks; ! public SampleTimeSeries(double[] data) { ! ticks = new ArrayList<Tick>(); ! for (double d : data) { ! ticks.add(new Tick(d)); ! } ! } ! public Tick getTick(int i) { ! return ticks.get(i); ! } ! public int getSize() ! { ! return ticks.size(); ! } } --- 6,25 ---- public class SampleTimeSeries implements TimeSeries { ! private List<Tick> ticks; + public SampleTimeSeries(double[] data) { + ticks = new ArrayList<Tick>(); + for (double d : data) { + ticks.add(new Tick(d)); + } + } ! public Tick getTick(int i) { ! return ticks.get(i); ! } ! public int getSize() { ! return ticks.size(); ! } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-14 00:26:38
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13988/src/java/net/sf/tail/indicator/tracker Modified Files: AbstractIndicator.java SMAIndicator.java EMAIndicator.java RSIIndicator.java Log Message: implementado o RSI Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** RSIIndicator.java 13 May 2007 01:28:25 -0000 1.5 --- RSIIndicator.java 14 May 2007 00:26:35 -0000 1.6 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class RSIIndicator extends AbstractIndicator { public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class RSIIndicator extends AbstractIndicator<Double> { public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: EMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/EMAIndicator.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** EMAIndicator.java 13 May 2007 01:28:25 -0000 1.7 --- EMAIndicator.java 14 May 2007 00:26:35 -0000 1.8 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class EMAIndicator extends AbstractIndicator { public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class EMAIndicator extends AbstractIndicator<Double> { public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: SMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/SMAIndicator.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** SMAIndicator.java 13 May 2007 01:28:25 -0000 1.5 --- SMAIndicator.java 14 May 2007 00:26:35 -0000 1.6 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class SMAIndicator extends AbstractIndicator { public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class SMAIndicator extends AbstractIndicator<Double> { public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: AbstractIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/AbstractIndicator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AbstractIndicator.java 13 May 2007 01:28:25 -0000 1.2 --- AbstractIndicator.java 14 May 2007 00:26:35 -0000 1.3 *************** *** 1,39 **** package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; ! public abstract class AbstractIndicator implements Indicator<Double> { protected final Indicator<? extends Number> indicator; protected final int timeFrame; ! protected Double[] resultsList; public AbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; ! resultsList = new Double[100]; } ! public Double getValue(int index) { ! if(resultsList.length <= index ) { ! increaseLenght(); } ! if(resultsList[index] == null){ ! resultsList[index] = calculate(index); } ! return resultsList[index]; } ! private void increaseLenght() { ! Double[] tmp = new Double[resultsList.length*2]; ! for (int i = 0; i < resultsList.length; i++) { ! tmp[i] = resultsList[i]; } - resultsList = tmp; } ! protected abstract Double calculate(int index); --- 1,42 ---- package net.sf.tail.indicator.tracker; + import java.util.ArrayList; + import java.util.List; + import net.sf.tail.Indicator; ! public abstract class AbstractIndicator<T> implements Indicator { protected final Indicator<? extends Number> indicator; protected final int timeFrame; ! protected List<T> resultsList; public AbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; ! resultsList = new ArrayList<T>(); ! } ! public T getValue(int index) { ! if(resultsList.size() <= index ) { ! increaseLenght(index); } ! if(resultsList.get(index) == null){ ! resultsList.set(index,calculate(index)); } ! return resultsList.get(index); } ! private void increaseLenght(int index) { ! ! for (int i = 0; i <= index; i++) { ! resultsList.add(null); } } ! protected abstract T calculate(int index); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-13 01:28:26
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11044/src/java/net/sf/tail/indicator/tracker Modified Files: AbstractIndicator.java SMAIndicator.java EMAIndicator.java RSIIndicator.java Log Message: Criada a classe AbstractIndicator e refatorada as classes filhas ;-) Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** RSIIndicator.java 13 May 2007 01:16:51 -0000 1.4 --- RSIIndicator.java 13 May 2007 01:28:25 -0000 1.5 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class RSIIndicator extends AbstractIndicator<Double> { public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class RSIIndicator extends AbstractIndicator { public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: EMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/EMAIndicator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** EMAIndicator.java 13 May 2007 01:16:51 -0000 1.6 --- EMAIndicator.java 13 May 2007 01:28:25 -0000 1.7 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class EMAIndicator extends AbstractIndicator<Double> { public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class EMAIndicator extends AbstractIndicator { public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: SMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/SMAIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SMAIndicator.java 13 May 2007 01:16:51 -0000 1.4 --- SMAIndicator.java 13 May 2007 01:28:25 -0000 1.5 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class SMAIndicator extends AbstractIndicator<Double> { public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class SMAIndicator extends AbstractIndicator { public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: AbstractIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/AbstractIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AbstractIndicator.java 13 May 2007 01:00:06 -0000 1.1 --- AbstractIndicator.java 13 May 2007 01:28:25 -0000 1.2 *************** *** 1,40 **** package net.sf.tail.indicator.tracker; - import java.util.ArrayList; - import java.util.List; import net.sf.tail.Indicator; ! public abstract class AbstractIndicator<T> implements Indicator<T> { protected final Indicator<? extends Number> indicator; protected final int timeFrame; ! protected List<T> resultsList; public AbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; ! resultsList = new ArrayList<T>(); } ! public T getValue(int index) { ! if(resultsList.size() <= index ) { ! increaseLenght(index); } ! if(resultsList.get(index) == null){ ! resultsList.set(index,calculate(index)); } ! return resultsList.get(index); } ! private void increaseLenght(int lenght) { ! ! for (int i = 0; i <= lenght; i++) { ! resultsList.add(null); } } ! protected abstract T calculate(int index); --- 1,39 ---- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; ! public abstract class AbstractIndicator implements Indicator<Double> { protected final Indicator<? extends Number> indicator; protected final int timeFrame; ! protected Double[] resultsList; public AbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; ! resultsList = new Double[100]; } ! public Double getValue(int index) { ! if(resultsList.length <= index ) { ! increaseLenght(); } ! if(resultsList[index] == null){ ! resultsList[index] = calculate(index); } ! return resultsList[index]; } ! private void increaseLenght() { ! Double[] tmp = new Double[resultsList.length*2]; ! for (int i = 0; i < resultsList.length; i++) { ! tmp[i] = resultsList[i]; } + resultsList = tmp; } ! protected abstract Double calculate(int index); |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-13 01:16:52
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv6229/src/java/net/sf/tail/indicator/tracker Modified Files: SMAIndicator.java EMAIndicator.java RSIIndicator.java Removed Files: EMAAbstractIndicator.java SMAAbstractIndicator.java RSIAbstractIndicator.java Log Message: Criada a classe AbstractIndicator e refatorada as classes filhas ;-) Index: EMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/EMAIndicator.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** EMAIndicator.java 13 May 2007 01:00:06 -0000 1.5 --- EMAIndicator.java 13 May 2007 01:16:51 -0000 1.6 *************** *** 3,34 **** import net.sf.tail.Indicator; ! public class EMAIndicator implements Indicator<Double> { - private final Indicator<? extends Number> indicator; - private final int timeFrame; - private Double[] resultsList; - public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; ! resultsList = new Double[100]; ! } ! ! public Double getValue(int index) { ! if(resultsList.length <= index ) { ! resultsList = increaseLenght(resultsList); ! } ! if(resultsList[index] == null){ ! resultsList[index] = calculate(index); ! } ! return resultsList[index]; ! } ! ! private Double[] increaseLenght(Double[] array) { ! Double[] tmpDouble = new Double[array.length*2]; ! for (int i = 0; i < array.length; i++) { ! tmpDouble[i] = array[i]; ! } ! return tmpDouble; } --- 3,10 ---- import net.sf.tail.Indicator; ! public class EMAIndicator extends AbstractIndicator<Double> { public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! super(indicator, timeFrame); } *************** *** 37,41 **** } ! private Double calculate(int index) { if(index + 1 < timeFrame) --- 13,17 ---- } ! protected Double calculate(int index) { if(index + 1 < timeFrame) *************** *** 43,47 **** double emaPrev = getValue(index - 1).doubleValue(); ! return ( ( indicator.getValue(index).doubleValue() - emaPrev ) * multiplier()) + emaPrev; } } --- 19,23 ---- double emaPrev = getValue(index - 1).doubleValue(); ! return ( ( indicator.getValue(index).doubleValue() - emaPrev ) * multiplier()) + emaPrev; } } --- RSIAbstractIndicator.java DELETED --- --- EMAAbstractIndicator.java DELETED --- Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RSIIndicator.java 13 May 2007 01:00:06 -0000 1.3 --- RSIIndicator.java 13 May 2007 01:16:51 -0000 1.4 *************** *** 3,37 **** import net.sf.tail.Indicator; ! public class RSIIndicator implements Indicator<Double> { ! ! private final Indicator<? extends Number> indicator; ! private final int timeFrame; ! private Double[] resultsList; public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; ! resultsList = new Double[100]; ! } ! ! public Double getValue(int index) { ! if(resultsList.length <= index ) { ! resultsList = increaseLenght(resultsList); ! } ! if(resultsList[index] == null){ ! resultsList[index] = calculate(index); ! } ! return resultsList[index]; ! } ! ! private Double[] increaseLenght(Double[] array) { ! Double[] tmpDouble = new Double[array.length*2]; ! for (int i = 0; i < array.length; i++) { ! tmpDouble[i] = array[i]; ! } ! return tmpDouble; } ! private Double calculate(int index) { return 100d - 100d/(1 + rs(index)); } --- 3,13 ---- import net.sf.tail.Indicator; ! public class RSIIndicator extends AbstractIndicator<Double> { public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! super(indicator, timeFrame); } ! protected Double calculate(int index) { return 100d - 100d/(1 + rs(index)); } --- SMAAbstractIndicator.java DELETED --- Index: SMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/SMAIndicator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SMAIndicator.java 12 May 2007 17:34:01 -0000 1.3 --- SMAIndicator.java 13 May 2007 01:16:51 -0000 1.4 *************** *** 3,39 **** import net.sf.tail.Indicator; ! public class SMAIndicator implements Indicator<Double> { ! ! private final Indicator<? extends Number> indicator; ! private final int timeFrame; ! private Double[] resultsList; public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; ! resultsList = new Double[100]; ! } ! ! public Double getValue(int index) { ! ! if(resultsList.length <= index ) { ! resultsList = increaseLenght(resultsList); ! } ! if(resultsList[index] == null){ ! resultsList[index] = calculate(index); ! } ! return resultsList[index]; ! ! } ! ! private Double[] increaseLenght(Double[] array) { ! Double[] tmpDouble = new Double[array.length*2]; ! for (int i = 0; i < array.length; i++) { ! tmpDouble[i] = array[i]; ! } ! return tmpDouble; } ! private Double calculate(int index) { double sum = 0.0; for (int i = Math.max(0, index - timeFrame + 1); i <= index; i++) { --- 3,13 ---- import net.sf.tail.Indicator; ! public class SMAIndicator extends AbstractIndicator<Double> { public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! super(indicator, timeFrame); } ! protected Double calculate(int index) { double sum = 0.0; for (int i = Math.max(0, index - timeFrame + 1); i <= index; i++) { |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-13 01:00:09
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv956/src/java/net/sf/tail/indicator/tracker Modified Files: EMAIndicator.java RSIIndicator.java Added Files: AbstractIndicator.java EMAAbstractIndicator.java SMAAbstractIndicator.java RSIAbstractIndicator.java Log Message: Criada a nova classe AbstractIndicator e seus filhos ;-) Index: EMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/EMAIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** EMAIndicator.java 12 May 2007 18:13:01 -0000 1.4 --- EMAIndicator.java 13 May 2007 01:00:06 -0000 1.5 *************** *** 39,53 **** private Double calculate(int index) { ! if(index + 1 < timeFrame){ return new SMAIndicator(indicator,timeFrame).getValue(index); - } double emaPrev = getValue(index - 1).doubleValue(); ! double result = ( ( indicator.getValue(index).doubleValue() - emaPrev ) * multiplier()) + emaPrev; ! ! ! return result; ! ! } } --- 39,47 ---- private Double calculate(int index) { ! if(index + 1 < timeFrame) return new SMAIndicator(indicator,timeFrame).getValue(index); double emaPrev = getValue(index - 1).doubleValue(); ! return ( ( indicator.getValue(index).doubleValue() - emaPrev ) * multiplier()) + emaPrev; } } --- NEW FILE: AbstractIndicator.java --- package net.sf.tail.indicator.tracker; import java.util.ArrayList; import java.util.List; import net.sf.tail.Indicator; public abstract class AbstractIndicator<T> implements Indicator<T> { protected final Indicator<? extends Number> indicator; protected final int timeFrame; protected List<T> resultsList; public AbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; resultsList = new ArrayList<T>(); } public T getValue(int index) { if(resultsList.size() <= index ) { increaseLenght(index); } if(resultsList.get(index) == null){ resultsList.set(index,calculate(index)); } return resultsList.get(index); } private void increaseLenght(int lenght) { for (int i = 0; i <= lenght; i++) { resultsList.add(null); } } protected abstract T calculate(int index); } --- NEW FILE: RSIAbstractIndicator.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; public class RSIAbstractIndicator extends AbstractIndicator<Double> { public RSIAbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { super(indicator, timeFrame); } protected Double calculate(int index) { return 100d - 100d/(1 + rs(index)); } private Double rs(int index) { if(index < timeFrame){ /* TODO - Na interpretação da minha fonte (www.stockcharts.com) RSI de Ãndices menores que o timeFrame são null */ } return averageGain(index)/averageLoss(index); } private double averageLoss(int index) { double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { if(indicator.getValue(i).doubleValue() < indicator.getValue(i-1).doubleValue() ) result += indicator.getValue(i-1).doubleValue() - indicator.getValue(i).doubleValue(); } return result/ Math.min(timeFrame, index + 1); } public double averageGain(int index) { double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { if(indicator.getValue(i).doubleValue() >= indicator.getValue(i-1).doubleValue() ) result += indicator.getValue(i).doubleValue() - indicator.getValue(i-1).doubleValue(); } return result/ Math.min(timeFrame, index + 1); } } --- NEW FILE: EMAAbstractIndicator.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; public class EMAAbstractIndicator extends AbstractIndicator<Double> { public EMAAbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { super(indicator, timeFrame); } private double multiplier(){ return 2 / (double)(timeFrame + 1); } protected Double calculate(int index) { if(index + 1 < timeFrame) return new SMAIndicator(indicator,timeFrame).getValue(index); double emaPrev = getValue(index - 1).doubleValue(); return ( ( indicator.getValue(index).doubleValue() - emaPrev ) * multiplier()) + emaPrev; } } Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** RSIIndicator.java 12 May 2007 23:54:53 -0000 1.2 --- RSIIndicator.java 13 May 2007 01:00:06 -0000 1.3 *************** *** 42,49 **** /* TODO - Na interpretação da minha fonte (www.stockcharts.com) RSI de Ãndices menores que o timeFrame são null */ } ! ! ! return averageGain(index)/averageLoss(index); ! } --- 42,46 ---- /* TODO - Na interpretação da minha fonte (www.stockcharts.com) RSI de Ãndices menores que o timeFrame são null */ } ! return averageGain(index)/averageLoss(index); } *************** *** 51,57 **** double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if(indicator.getValue(i).doubleValue() < indicator.getValue(i-1).doubleValue() ){ result += indicator.getValue(i-1).doubleValue() - indicator.getValue(i).doubleValue(); - } } return result/ Math.min(timeFrame, index + 1); --- 48,53 ---- double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if(indicator.getValue(i).doubleValue() < indicator.getValue(i-1).doubleValue() ) result += indicator.getValue(i-1).doubleValue() - indicator.getValue(i).doubleValue(); } return result/ Math.min(timeFrame, index + 1); *************** *** 61,70 **** double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if(indicator.getValue(i).doubleValue() >= indicator.getValue(i-1).doubleValue() ){ result += indicator.getValue(i).doubleValue() - indicator.getValue(i-1).doubleValue(); - } } - - return result/ Math.min(timeFrame, index + 1); } --- 57,63 ---- double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if(indicator.getValue(i).doubleValue() >= indicator.getValue(i-1).doubleValue() ) result += indicator.getValue(i).doubleValue() - indicator.getValue(i-1).doubleValue(); } return result/ Math.min(timeFrame, index + 1); } --- NEW FILE: SMAAbstractIndicator.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; public class SMAAbstractIndicator extends AbstractIndicator<Double> { public SMAAbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { super(indicator, timeFrame); } protected Double calculate(int index) { double sum = 0.0; for (int i = Math.max(0, index - timeFrame + 1); i <= index; i++) { sum += indicator.getValue(i).doubleValue(); } return sum / Math.min(timeFrame, index + 1); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-13 01:00:07
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv956/src/test/net/sf/tail/indicator Modified Files: RSIIndicatorTest.java Log Message: Criada a nova classe AbstractIndicator e seus filhos ;-) Index: RSIIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/RSIIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RSIIndicatorTest.java 13 May 2007 00:05:50 -0000 1.3 --- RSIIndicatorTest.java 13 May 2007 01:00:06 -0000 1.4 *************** *** 23,29 **** public void testRSI14() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); - for (int i = 14; i < 20; i++) { - System.out.println(i +" "+rsi.averageGain(i)); - } assertEquals(62.75, rsi.getValue(15), 0.01); --- 23,26 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-13 00:05:54
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10728/src/test/net/sf/tail/indicator Modified Files: RSIIndicatorTest.java Log Message: implementado o RSI Index: RSIIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/RSIIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** RSIIndicatorTest.java 12 May 2007 23:54:53 -0000 1.2 --- RSIIndicatorTest.java 13 May 2007 00:05:50 -0000 1.3 *************** *** 17,21 **** @Before public void setUp() { ! data = new SampleTimeSeries(new double[] {50.45, 50.30, 50.20, 50.15, 50.05, 50.06, 50.10, 50.08 , 50.03 , 50.07 , 50.01 , 50.14 , 50.22, 50.43, 50.50, 50.56, 50.52, 50.70, 50.55, 50.62, 50.90}); } --- 17,21 ---- @Before public void setUp() { ! data = new SampleTimeSeries(new double[] {50.45, 50.30, 50.20, 50.15, 50.05, 50.06, 50.10, 50.08 , 50.03 , 50.07 , 50.01 , 50.14 , 50.22, 50.43, 50.50, 50.56, 50.52, 50.70, 50.55, 50.62, 50.90, 50.82, 50.86, 51.20, 51.30, 51.10}); } *************** *** 32,35 **** --- 32,40 ---- assertEquals(71.93, rsi.getValue(18), 0.01); assertEquals(73.33, rsi.getValue(19), 0.01); + assertEquals(77.78, rsi.getValue(20), 0.01); + assertEquals(74.67, rsi.getValue(21), 0.01); + assertEquals(77.85, rsi.getValue(22), 0.01); + assertEquals(81.56, rsi.getValue(23), 0.01); + assertEquals(85.25, rsi.getValue(24), 0.01); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-12 23:54:55
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv6155/src/java/net/sf/tail/indicator/tracker Modified Files: RSIIndicator.java Log Message: implementado o RSI Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RSIIndicator.java 12 May 2007 19:39:32 -0000 1.1 --- RSIIndicator.java 12 May 2007 23:54:53 -0000 1.2 *************** *** 34,94 **** private Double calculate(int index) { ! return 100d - 100d/(1 + calculateRS(index)); } ! private Double calculateRS(int index) { if(index < timeFrame){ /* TODO - Na interpretação da minha fonte (www.stockcharts.com) RSI de Ãndices menores que o timeFrame são null */ } ! else if( index == timeFrame){ ! /** Base */ return averageGain(index)/averageLoss(index); ! } ! double up = (averageGain(index) * (index) + currentGain(index))/(double)timeFrame; ! double down = (averageGain(index) * (index) + currentLoss(index))/(double)timeFrame; ! return up/down; ! ! ! } ! ! ! ! private double currentLoss(int index) { ! if(index == 0) ! return 0; ! double loss = indicator.getValue(index - 1).doubleValue() - indicator.getValue(index).doubleValue(); ! if( loss < 0 ) ! loss = 0; ! return loss; ! } ! ! private double currentGain(int index) { ! if(index == 0) ! return 0; ! double gain = indicator.getValue(index).doubleValue() - indicator.getValue(index-1).doubleValue(); ! if( gain < 0 ) ! gain = 0; ! return gain; } private double averageLoss(int index) { double result = 0; ! for (int i = 1; i <= index; i++) { if(indicator.getValue(i).doubleValue() < indicator.getValue(i-1).doubleValue() ){ result += indicator.getValue(i-1).doubleValue() - indicator.getValue(i).doubleValue(); } } ! return result/(double)timeFrame; } ! private double averageGain(int index) { double result = 0; ! for (int i = 1; i <= index; i++) { ! if(indicator.getValue(i).doubleValue() > indicator.getValue(i-1).doubleValue() ){ result += indicator.getValue(i).doubleValue() - indicator.getValue(i-1).doubleValue(); } } ! return result/(double)timeFrame; } } --- 34,71 ---- private Double calculate(int index) { ! return 100d - 100d/(1 + rs(index)); } ! private Double rs(int index) { if(index < timeFrame){ /* TODO - Na interpretação da minha fonte (www.stockcharts.com) RSI de Ãndices menores que o timeFrame são null */ } ! ! return averageGain(index)/averageLoss(index); ! } private double averageLoss(int index) { double result = 0; ! for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { if(indicator.getValue(i).doubleValue() < indicator.getValue(i-1).doubleValue() ){ result += indicator.getValue(i-1).doubleValue() - indicator.getValue(i).doubleValue(); } } ! return result/ Math.min(timeFrame, index + 1); } ! public double averageGain(int index) { double result = 0; ! for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { ! if(indicator.getValue(i).doubleValue() >= indicator.getValue(i-1).doubleValue() ){ result += indicator.getValue(i).doubleValue() - indicator.getValue(i-1).doubleValue(); } } ! ! ! return result/ Math.min(timeFrame, index + 1); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-12 23:54:54
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv6155/src/test/net/sf/tail/indicator Modified Files: RSIIndicatorTest.java Log Message: implementado o RSI Index: RSIIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/RSIIndicatorTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RSIIndicatorTest.java 12 May 2007 19:39:09 -0000 1.1 --- RSIIndicatorTest.java 12 May 2007 23:54:53 -0000 1.2 *************** *** 17,22 **** @Before public void setUp() { ! ! data = new SampleTimeSeries(new double[] {46.125 ,47.1250, 46.4375 , 46.9375, 44.9375, 44.2500, 44.6250, 45.7500, 47.8125, 47.5625, 47.0000, 44.5625, 46.3125, 47.6875, 46.6875, 45.6875, 43.0625, 43.5625, 44.8750, 43.6875 }); } --- 17,21 ---- @Before public void setUp() { ! data = new SampleTimeSeries(new double[] {50.45, 50.30, 50.20, 50.15, 50.05, 50.06, 50.10, 50.08 , 50.03 , 50.07 , 50.01 , 50.14 , 50.22, 50.43, 50.50, 50.56, 50.52, 50.70, 50.55, 50.62, 50.90}); } *************** *** 24,41 **** public void testRSI14() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); ! assertEquals(51.779, rsi.getValue(14), 0.01); ! ! assertEquals(48.477, rsi.getValue(15), 0.01); ! assertEquals(41.073, rsi.getValue(16), 0.01); ! assertEquals(42.863, rsi.getValue(17), 0.01); ! assertEquals(47.382, rsi.getValue(18), 0.01); ! assertEquals(43.992, rsi.getValue(19), 0.01); } @Test ! public void test10daysJumping() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); ! assertEquals(43.992, rsi.getValue(19), 0.01); } --- 23,41 ---- public void testRSI14() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); + for (int i = 14; i < 20; i++) { + System.out.println(i +" "+rsi.averageGain(i)); + } ! assertEquals(62.75, rsi.getValue(15), 0.01); ! assertEquals(66.67, rsi.getValue(16), 0.01); ! assertEquals(75.23, rsi.getValue(17), 0.01); ! assertEquals(71.93, rsi.getValue(18), 0.01); ! assertEquals(73.33, rsi.getValue(19), 0.01); } @Test ! public void test19daysJumping() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); ! assertEquals(73.33, rsi.getValue(19), 0.01); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-12 19:39:36
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25546/src/java/net/sf/tail/indicator/tracker Added Files: RSIIndicator.java Log Message: implementado o EMA e implementando o RSI --- NEW FILE: RSIIndicator.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; public class RSIIndicator implements Indicator<Double> { private final Indicator<? extends Number> indicator; private final int timeFrame; private Double[] resultsList; public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; resultsList = new Double[100]; } public Double getValue(int index) { if(resultsList.length <= index ) { resultsList = increaseLenght(resultsList); } if(resultsList[index] == null){ resultsList[index] = calculate(index); } return resultsList[index]; } private Double[] increaseLenght(Double[] array) { Double[] tmpDouble = new Double[array.length*2]; for (int i = 0; i < array.length; i++) { tmpDouble[i] = array[i]; } return tmpDouble; } private Double calculate(int index) { return 100d - 100d/(1 + calculateRS(index)); } private Double calculateRS(int index) { if(index < timeFrame){ /* TODO - Na interpretação da minha fonte (www.stockcharts.com) RSI de Ãndices menores que o timeFrame são null */ } else if( index == timeFrame){ /** Base */ return averageGain(index)/averageLoss(index); } double up = (averageGain(index) * (index) + currentGain(index))/(double)timeFrame; double down = (averageGain(index) * (index) + currentLoss(index))/(double)timeFrame; return up/down; } private double currentLoss(int index) { if(index == 0) return 0; double loss = indicator.getValue(index - 1).doubleValue() - indicator.getValue(index).doubleValue(); if( loss < 0 ) loss = 0; return loss; } private double currentGain(int index) { if(index == 0) return 0; double gain = indicator.getValue(index).doubleValue() - indicator.getValue(index-1).doubleValue(); if( gain < 0 ) gain = 0; return gain; } private double averageLoss(int index) { double result = 0; for (int i = 1; i <= index; i++) { if(indicator.getValue(i).doubleValue() < indicator.getValue(i-1).doubleValue() ){ result += indicator.getValue(i-1).doubleValue() - indicator.getValue(i).doubleValue(); } } return result/(double)timeFrame; } private double averageGain(int index) { double result = 0; for (int i = 1; i <= index; i++) { if(indicator.getValue(i).doubleValue() > indicator.getValue(i-1).doubleValue() ){ result += indicator.getValue(i).doubleValue() - indicator.getValue(i-1).doubleValue(); } } return result/(double)timeFrame; } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-12 19:39:11
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25453/src/test/net/sf/tail/reader Modified Files: CedroTimeSeriesLoaderTest.java Log Message: implementado o EMA e implementando o RSI Index: CedroTimeSeriesLoaderTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/reader/CedroTimeSeriesLoaderTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CedroTimeSeriesLoaderTest.java 12 May 2007 18:13:01 -0000 1.3 --- CedroTimeSeriesLoaderTest.java 12 May 2007 19:39:10 -0000 1.4 *************** *** 2,18 **** import static org.junit.Assert.assertEquals; - import java.io.FileInputStream; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Date; - import junit.framework.JUnit4TestAdapter; import net.sf.tail.TimeSeries; - import org.junit.Before; import org.junit.Test; - public class CedroTimeSeriesLoaderTest { private CedroTimeSeriesLoader ctsl; --- 2,14 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-12 19:39:10
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25453/src/test/net/sf/tail/indicator Modified Files: EMAIndicatorTest.java Added Files: RSIIndicatorTest.java Log Message: implementado o EMA e implementando o RSI --- NEW FILE: RSIIndicatorTest.java --- package net.sf.tail.indicator; import static org.junit.Assert.assertEquals; import junit.framework.JUnit4TestAdapter; import net.sf.tail.SampleTimeSeries; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.RSIIndicator; import org.junit.Before; import org.junit.Test; public class RSIIndicatorTest { private TimeSeries data; @Before public void setUp() { data = new SampleTimeSeries(new double[] {46.125 ,47.1250, 46.4375 , 46.9375, 44.9375, 44.2500, 44.6250, 45.7500, 47.8125, 47.5625, 47.0000, 44.5625, 46.3125, 47.6875, 46.6875, 45.6875, 43.0625, 43.5625, 44.8750, 43.6875 }); } @Test public void testRSI14() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); assertEquals(51.779, rsi.getValue(14), 0.01); assertEquals(48.477, rsi.getValue(15), 0.01); assertEquals(41.073, rsi.getValue(16), 0.01); assertEquals(42.863, rsi.getValue(17), 0.01); assertEquals(47.382, rsi.getValue(18), 0.01); assertEquals(43.992, rsi.getValue(19), 0.01); } @Test public void test10daysJumping() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); assertEquals(43.992, rsi.getValue(19), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); assertEquals(3d, rsi.getValue(300)); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) //e o JUnit4 public static junit.framework.Test suite() { return new JUnit4TestAdapter(RSIIndicatorTest.class); } } Index: EMAIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/EMAIndicatorTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** EMAIndicatorTest.java 12 May 2007 17:34:01 -0000 1.4 --- EMAIndicatorTest.java 12 May 2007 19:39:09 -0000 1.5 *************** *** 20,25 **** @Before public void setUp() { ! //data = new SampleData(new double[] { 447.3, 456.8, 451.0, 452.5, 453.4, 455.5, 456.0, 454.7, 453.5, 456.5, ! // 459.5, 465.2, 460.8, 460.8 }); data = new SampleTimeSeries(new double[] { 64.75, 63.79, 63.73, 63.73, 63.55, 63.19, 63.91, 63.85, 62.95, 63.37, 61.33, 61.51 }); --- 20,24 ---- @Before public void setUp() { ! data = new SampleTimeSeries(new double[] { 64.75, 63.79, 63.73, 63.73, 63.55, 63.19, 63.91, 63.85, 62.95, 63.37, 61.33, 61.51 }); |
|
From: Thies <tg...@us...> - 2007-05-12 19:22:29
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17351/src/test/net/sf/tail/indicator/simple Log Message: Directory /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple added to the repository |
|
From: Thies <tg...@us...> - 2007-05-12 19:17:10
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv14652/src/java/net/sf/tail/indicator/simple Added Files: PreviousPriceIndicator.java TradeIndicator.java ChangeIndicator.java Log Message: --- NEW FILE: PreviousPriceIndicator.java --- package net.sf.tail.indicator.simple; import net.sf.tail.Indicator; import net.sf.tail.TimeSeries; public class PreviousPriceIndicator implements Indicator<Double> { private TimeSeries data; public PreviousPriceIndicator(TimeSeries data) { this.data = data; } public Double getValue(int index) { return data.getTick(index).getPreviousPrice(); } } --- NEW FILE: ChangeIndicator.java --- package net.sf.tail.indicator.simple; import net.sf.tail.Indicator; import net.sf.tail.TimeSeries; public class ChangeIndicator implements Indicator<Double> { private TimeSeries data; public ChangeIndicator(TimeSeries data) { this.data = data; } public Double getValue(int index) { return data.getTick(index).getChange(); } } --- NEW FILE: TradeIndicator.java --- package net.sf.tail.indicator.simple; import net.sf.tail.Indicator; import net.sf.tail.TimeSeries; public class TradeIndicator implements Indicator<Integer> { private TimeSeries data; public TradeIndicator(TimeSeries data) { this.data = data; } public Integer getValue(int index) { return data.getTick(index).getTrades(); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-12 18:13:04
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17026/src/java/net/sf/tail/reader Modified Files: CedroTimeSeriesLoader.java Log Message: Continuando a readaptar as classes Index: CedroTimeSeriesLoader.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/reader/CedroTimeSeriesLoader.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CedroTimeSeriesLoader.java 12 May 2007 17:43:33 -0000 1.3 --- CedroTimeSeriesLoader.java 12 May 2007 18:13:01 -0000 1.4 *************** *** 17,52 **** import com.csvreader.CsvReader; ! /** ! * ! * ! * @author Marcio ! * ! */ public class CedroTimeSeriesLoader implements TimeSeriesLoader{ ! ! public TimeSeries load(InputStream stream) throws IOException { ! CsvReader reader = new CsvReader(stream, Charset.defaultCharset()); reader.readHeaders(); List<Tick> ticks = new ArrayList<Tick>(); ! while(reader.readRecord()) { SimpleDateFormat simpleDate; ! if(reader.get(0).length() > 10) simpleDate = new SimpleDateFormat("dd/M/yyyy HH:mm:ss"); else simpleDate = new SimpleDateFormat("dd/M/yyyy"); ! Date date = null; ! try { date = simpleDate.parse(reader.get(0)); } catch (ParseException e) { ! ! } Timestamp timestamp = new Timestamp(date.getTime()); double open = java.lang.Double.parseDouble(reader.get(1)); --- 17,48 ---- import com.csvreader.CsvReader; ! public class CedroTimeSeriesLoader implements TimeSeriesLoader{ ! ! public TimeSeries load(InputStream stream) throws IOException { ! CsvReader reader = new CsvReader(stream, Charset.defaultCharset()); reader.readHeaders(); List<Tick> ticks = new ArrayList<Tick>(); ! while(reader.readRecord()) { SimpleDateFormat simpleDate; ! if(reader.get(0).length() > 10) simpleDate = new SimpleDateFormat("dd/M/yyyy HH:mm:ss"); else simpleDate = new SimpleDateFormat("dd/M/yyyy"); ! Date date = null; ! ! try { date = simpleDate.parse(reader.get(0)); } catch (ParseException e) { ! e.printStackTrace(); } + Timestamp timestamp = new Timestamp(date.getTime()); double open = java.lang.Double.parseDouble(reader.get(1)); *************** *** 59,67 **** double volumeFinancier = java.lang.Double.parseDouble(reader.get(8)); double quantity = java.lang.Double.parseDouble(reader.get(9)); ! Tick tick = new Tick(timestamp, open, close, high, low, change, previous, volumeAmount, volumeFinancier, (int)quantity); ticks.add(0, tick); } ! return new TickTimeSeries(ticks); } --- 55,63 ---- double volumeFinancier = java.lang.Double.parseDouble(reader.get(8)); double quantity = java.lang.Double.parseDouble(reader.get(9)); ! Tick tick = new Tick(timestamp, open, close, high, low, change, previous, volumeAmount, volumeFinancier, (int)quantity); ticks.add(0, tick); } ! return new TickTimeSeries(ticks); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-12 18:13:04
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17026/src/java/net/sf/tail/indicator/tracker Modified Files: EMAIndicator.java Log Message: Continuando a readaptar as classes Index: EMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/EMAIndicator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** EMAIndicator.java 12 May 2007 17:34:01 -0000 1.3 --- EMAIndicator.java 12 May 2007 18:13:01 -0000 1.4 *************** *** 34,38 **** private double multiplier(){ ! return 2 / (timeFrame + 1); } --- 34,38 ---- private double multiplier(){ ! return 2 / (double)(timeFrame + 1); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-12 18:13:04
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17026/src/test/net/sf/tail/reader Modified Files: CedroTimeSeriesLoaderTest.java Log Message: Continuando a readaptar as classes Index: CedroTimeSeriesLoaderTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/reader/CedroTimeSeriesLoaderTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CedroTimeSeriesLoaderTest.java 12 May 2007 17:43:34 -0000 1.2 --- CedroTimeSeriesLoaderTest.java 12 May 2007 18:13:01 -0000 1.3 *************** *** 1,14 **** package net.sf.tail.reader; import java.io.FileInputStream; import java.sql.Timestamp; - import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; ! import org.junit.*; ! import static org.junit.Assert.assertEquals; import junit.framework.JUnit4TestAdapter; import net.sf.tail.TimeSeries; public class CedroTimeSeriesLoaderTest { --- 1,17 ---- package net.sf.tail.reader; + import static org.junit.Assert.assertEquals; + import java.io.FileInputStream; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Date; ! import junit.framework.JUnit4TestAdapter; import net.sf.tail.TimeSeries; + import org.junit.Before; + import org.junit.Test; + public class CedroTimeSeriesLoaderTest { *************** *** 27,36 **** SimpleDateFormat simpleDate = new SimpleDateFormat("dd/M/yyyy"); Date date = null; ! ! try { ! date = simpleDate.parse("2/5/2007"); ! } catch (ParseException e) { ! ! } Timestamp timestamp = new Timestamp(date.getTime()); double[] values = {71.70,72.06,72.75,71.70,0.99,72.81,108200.00,7854215.00,152.00}; --- 30,34 ---- SimpleDateFormat simpleDate = new SimpleDateFormat("dd/M/yyyy"); Date date = null; ! date = simpleDate.parse("2/5/2007"); Timestamp timestamp = new Timestamp(date.getTime()); double[] values = {71.70,72.06,72.75,71.70,0.99,72.81,108200.00,7854215.00,152.00}; |
|
From: Thies <tg...@us...> - 2007-05-12 17:43:34
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv3357/src/java/net/sf/tail/reader Modified Files: CedroTimeSeriesLoader.java Removed Files: CSVFileReader.java Log Message: Index: CedroTimeSeriesLoader.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/reader/CedroTimeSeriesLoader.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CedroTimeSeriesLoader.java 12 May 2007 16:12:02 -0000 1.2 --- CedroTimeSeriesLoader.java 12 May 2007 17:43:33 -0000 1.3 *************** *** 25,50 **** public class CedroTimeSeriesLoader implements TimeSeriesLoader{ - // public static List<List<String>> read(String fileName) throws IOException { - // - // List<List<String>> llObj = new ArrayList<List<String>>(); - // CsvReader reader = new CsvReader(fileName); - // reader.readHeaders(); - // while (reader.readRecord()) - // { - // List<String> lObj = new ArrayList<String>(); - // for (int i = 0; i < reader.getColumnCount(); i++) { - // lObj.add(reader.get(i).toString()); - // } - // llObj.add(lObj); - // } - // - // reader.close(); - // - // - // - // return llObj; - // - // } - public TimeSeries load(InputStream stream) throws IOException { --- 25,28 ---- --- CSVFileReader.java DELETED --- |