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-05-17 23:04:59
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/oscilator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2571/src/test/net/sf/tail/indicator/oscilator Added Files: StochasticOscilatorFastTest.java Log Message: extraindo novos Indicadores --- NEW FILE: StochasticOscilatorFastTest.java --- package net.sf.tail.indicator.oscilator; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import junit.framework.JUnit4TestAdapter; import net.sf.tail.DefaultTimeSeries; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.simple.MaxPriceIndicator; import net.sf.tail.indicator.simple.MinPriceIndicator; import org.junit.Before; import org.junit.Test; public class StochasticOscilatorFastTest { private TimeSeries data; @Before public void setUp() { List<Tick> ticks = new ArrayList<Tick>(); ticks.add(new Tick(44.98, 119.13, 119.50, 116.00)); ticks.add(new Tick(45.05, 116.75, 119.94, 116.00)); ticks.add(new Tick(45.11, 113.50, 118.44, 111.63)); ticks.add(new Tick(45.19, 111.56, 114.19, 110.06)); ticks.add(new Tick(45.12, 112.25, 112.81, 109.63)); ticks.add(new Tick(45.15, 110.00, 113.44, 109.13)); ticks.add(new Tick(45.13, 113.50, 115.81, 110.38)); ticks.add(new Tick(45.12, 117.13, 117.50, 114.06)); ticks.add(new Tick(45.15, 115.63, 118.44, 114.81)); ticks.add(new Tick(45.24, 114.13, 116.88, 113.13)); ticks.add(new Tick(45.43, 118.81, 119.00, 116.19)); ticks.add(new Tick(45.43, 117.38, 119.75, 117.00)); ticks.add(new Tick(45.58, 119.13, 119.13, 116.88)); ticks.add(new Tick(45.58, 115.38, 119.44, 114.56)); data = new DefaultTimeSeries(ticks); } @Test public void testStochasticOscilatorParam14() { StochasticOscilatorFast sof = new StochasticOscilatorFast(new ClosePriceIndicator(data), new MinPriceIndicator(data), new MaxPriceIndicator(data), 14); assertEquals(313d/3.50, sof.getValue(0), 0.01); assertEquals(1000d/10.81, sof.getValue(12), 0.01); assertEquals(57.81, sof.getValue(13), 0.01); } @Test public void test13daysJumping() { StochasticOscilatorFast sof = new StochasticOscilatorFast(new ClosePriceIndicator(data), new MinPriceIndicator(data), new MaxPriceIndicator(data), 14); assertEquals(57.81, sof.getValue(13), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { StochasticOscilatorFast sof = new StochasticOscilatorFast(new ClosePriceIndicator(data), new MinPriceIndicator(data), new MaxPriceIndicator(data), 14); sof.getValue(1300); } // 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(StochasticOscilatorFastTest.class); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 23:04:59
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2571/src/test/net/sf/tail Modified Files: SampleTimeSeries.java Log Message: extraindo novos Indicadores Index: SampleTimeSeries.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/SampleTimeSeries.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SampleTimeSeries.java 17 May 2007 17:22:17 -0000 1.4 --- SampleTimeSeries.java 17 May 2007 23:04:58 -0000 1.5 *************** *** 15,25 **** } } ! 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); } --- 15,24 ---- } } ! 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); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 23:04:58
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2571/src/test/net/sf/tail/reader Modified Files: CedroTimeSeriesLoaderTest.java Log Message: extraindo novos Indicadores Index: CedroTimeSeriesLoaderTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/reader/CedroTimeSeriesLoaderTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** CedroTimeSeriesLoaderTest.java 17 May 2007 20:16:11 -0000 1.8 --- CedroTimeSeriesLoaderTest.java 17 May 2007 23:04:57 -0000 1.9 *************** *** 18,34 **** public class CedroTimeSeriesLoaderTest { private CedroTimeSeriesLoader ctsl; private TimeSeries ts; ! @Before ! public void setUp() throws Exception { ! ctsl = new CedroTimeSeriesLoader(); ts = ctsl.load(new FileInputStream("BaseBovespa/tests/Cedro-ReaderTest.csv")); } ! ! private Timestamp getTimeStamp(int year,int month,int day){ Date date = null; SimpleDateFormat simpleDate = new SimpleDateFormat("dd/M/yyyy"); try { ! date = simpleDate.parse(day+"/"+month+"/"+year); } catch (ParseException e) { e.printStackTrace(); --- 18,35 ---- public class CedroTimeSeriesLoaderTest { private CedroTimeSeriesLoader ctsl; + private TimeSeries ts; ! @Before ! public void setUp() throws Exception { ! ctsl = new CedroTimeSeriesLoader(); ts = ctsl.load(new FileInputStream("BaseBovespa/tests/Cedro-ReaderTest.csv")); } ! ! private Timestamp getTimeStamp(int year, int month, int day) { Date date = null; SimpleDateFormat simpleDate = new SimpleDateFormat("dd/M/yyyy"); try { ! date = simpleDate.parse(day + "/" + month + "/" + year); } catch (ParseException e) { e.printStackTrace(); *************** *** 36,68 **** return new Timestamp(date.getTime()); } ! @Test public void testLine3() throws Exception { ! Timestamp timestamp = getTimeStamp(2007,5,2); ! Tick tick = new Tick(timestamp,71.70,72.06,72.75,71.70,0.99,72.81,108200.00,7854215.00,152); assertEquals(tick, ts.getTick(2)); } @Test public void testeLine2() throws Exception { Timestamp timestamp = getTimeStamp(2007, 4, 30); ! Tick tick = new Tick(timestamp,73.09,72.81,73.10,72.20,1.00,73.09,83200.00,6045660.00,103); ! assertEquals(tick, ts.getTick(1)); } ! @Test public void testLine1() throws Exception { Timestamp timestamp = getTimeStamp(2007, 4, 27); ! Tick tick = new Tick(timestamp,71.00,73.09,73.29,68.76,1.02,71.40,59100.00,4180018.00,141); assertEquals(tick, ts.getTick(0)); ! } ! //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(CedroTimeSeriesLoaderTest.class); } } --- 37,71 ---- return new Timestamp(date.getTime()); } ! @Test public void testLine3() throws Exception { ! Timestamp timestamp = getTimeStamp(2007, 5, 2); ! Tick tick = new Tick(timestamp, 71.70, 72.06, 72.75, 71.70, 0.99, 72.81, 108200.00, 7854215.00, 152); assertEquals(tick, ts.getTick(2)); } + @Test public void testeLine2() throws Exception { Timestamp timestamp = getTimeStamp(2007, 4, 30); ! Tick tick = new Tick(timestamp, 73.09, 72.81, 73.10, 72.20, 1.00, 73.09, 83200.00, 6045660.00, 103); ! assertEquals(tick, ts.getTick(1)); } ! @Test public void testLine1() throws Exception { Timestamp timestamp = getTimeStamp(2007, 4, 27); ! Tick tick = new Tick(timestamp, 71.00, 73.09, 73.29, 68.76, 1.02, 71.40, 59100.00, 4180018.00, 141); assertEquals(tick, ts.getTick(0)); ! } ! // 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(CedroTimeSeriesLoaderTest.class); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 23:04:42
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/oscilator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2553/src/test/net/sf/tail/indicator/oscilator Log Message: Directory /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/oscilator added to the repository |
|
From: Thies <tg...@us...> - 2007-05-17 22:58:08
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv32631/src/java/net/sf/tail/indicator/tracker Modified Files: WilliamsRIndicator.java Log Message: Novo construtor com o parâmetro TimeSerie Index: WilliamsRIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/WilliamsRIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** WilliamsRIndicator.java 17 May 2007 22:45:34 -0000 1.4 --- WilliamsRIndicator.java 17 May 2007 22:58:07 -0000 1.5 *************** *** 2,5 **** --- 2,7 ---- import net.sf.tail.Indicator; + import net.sf.tail.TimeSeries; + import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.simple.MaxPriceIndicator; import net.sf.tail.indicator.simple.MinPriceIndicator; *************** *** 12,15 **** --- 14,22 ---- private MinPriceIndicator minPriceIndicator; + public WilliamsRIndicator(TimeSeries timeSeries, int timeFrame) + { + this(new ClosePriceIndicator(timeSeries), timeFrame, new MaxPriceIndicator(timeSeries), new MinPriceIndicator(timeSeries)); + } + public WilliamsRIndicator(Indicator<? extends Number> indicator, int timeFrame, MaxPriceIndicator maxPriceIndicator, MinPriceIndicator minPriceIndicator) { this.indicator = indicator; |
|
From: Carlos <ma...@us...> - 2007-05-17 22:46:03
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27230/src/test/net/sf/tail/indicator Added Files: HighestValueIndicatorTest.java LowestValueIndicatorTest.java Log Message: Classes de teste para o HighestValue e LowestValue. --- NEW FILE: HighestValueIndicatorTest.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.HighestValueIndicator; import org.junit.Before; import org.junit.Test; public class HighestValueIndicatorTest { private TimeSeries data; @Before public void prepare() throws Exception { data = new SampleTimeSeries(new double[] { 1, 2, 3, 4, 3, 4, 5, 6, 4, 3, 3, 4, 3, 2 }); } @Test public void testAverageGain5() throws Exception { HighestValueIndicator highestValue = new HighestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals(4d, highestValue.getValue(5), 0.01); assertEquals(5d, highestValue.getValue(6), 0.01); assertEquals(6d, highestValue.getValue(7), 0.01); assertEquals(6d, highestValue.getValue(8), 0.01); assertEquals(6d, highestValue.getValue(9), 0.01); assertEquals(6d, highestValue.getValue(10), 0.01); assertEquals(6d, highestValue.getValue(11), 0.01); assertEquals(6d, highestValue.getValue(12), 0.01); assertEquals(4d, highestValue.getValue(13), 0.01); } @Test public void test10daysJumping() { HighestValueIndicator highestValue = new HighestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals(6, highestValue.getValue(12), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { HighestValueIndicator highestValue = new HighestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals(3d, highestValue.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); } } --- NEW FILE: LowestValueIndicatorTest.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.LowestValueIndicator; import org.junit.Before; import org.junit.Test; public class LowestValueIndicatorTest { private TimeSeries data; @Before public void prepare() throws Exception { data = new SampleTimeSeries(new double[] { 1, 2, 3, 4, 3, 4, 5, 6, 4, 3, 2, 4, 3, 1 }); } @Test public void testAverageGain5() throws Exception { LowestValueIndicator lowestValue = new LowestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals(1d, lowestValue.getValue(5), 0.01); assertEquals(2d, lowestValue.getValue(6), 0.01); assertEquals(3d, lowestValue.getValue(7), 0.01); assertEquals(3d, lowestValue.getValue(8), 0.01); assertEquals(3d, lowestValue.getValue(9), 0.01); assertEquals(2d, lowestValue.getValue(10), 0.01); assertEquals(2d, lowestValue.getValue(11), 0.01); assertEquals(2d, lowestValue.getValue(12), 0.01); assertEquals(1d, lowestValue.getValue(13), 0.01); } @Test public void test10daysJumping() { LowestValueIndicator lowestValue = new LowestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals(2d, lowestValue.getValue(10), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { LowestValueIndicator lowestValue = new LowestValueIndicator(new ClosePriceIndicator(data), 5); assertEquals(3d, lowestValue.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: Carlos <ma...@us...> - 2007-05-17 22:45:37
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27199/src/java/net/sf/tail/indicator/tracker Modified Files: WilliamsRIndicator.java Added Files: HighestValueIndicator.java LowestValueIndicator.java Log Message: Refatoracao do Williams R e criado dois indicators (HighestValue e LowestValue), pois eles serao necessarios em varios outros indicadores. Index: WilliamsRIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/WilliamsRIndicator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** WilliamsRIndicator.java 17 May 2007 21:30:54 -0000 1.3 --- WilliamsRIndicator.java 17 May 2007 22:45:34 -0000 1.4 *************** *** 20,54 **** public Double getValue(int index) { ! double highestHighPrice = getHighestHighPrice(index); ! double lowestLowPrice = getLowestLowPrice(index); return ((highestHighPrice - indicator.getValue(index).doubleValue()) / (highestHighPrice - lowestLowPrice)) * -100d; } - - private Double getHighestHighPrice(int index) - { - int start = Math.max(0, index - timeFrame + 1); - Double highest = maxPriceIndicator.getValue(start); - for (int i = start + 1; i <= index; i++) { - if(highest.doubleValue() < maxPriceIndicator.getValue(i).doubleValue()) - highest = maxPriceIndicator.getValue(i); - } - return highest; - } - - /* - * TODO - Pensar em otimização ou maior número de indicadores ? - * - */ - private Double getLowestLowPrice(int index) - { - int start = Math.max(0, index - timeFrame + 1); - Double lowest = minPriceIndicator.getValue(start); - for (int i = start + 1; i <= index; i++) { - if(lowest.doubleValue() > minPriceIndicator.getValue(i).doubleValue()) - lowest = minPriceIndicator.getValue(i); - } - return lowest; - } } --- 20,31 ---- public Double getValue(int index) { ! HighestValueIndicator highestHigh = new HighestValueIndicator(maxPriceIndicator, timeFrame); ! LowestValueIndicator lowestMin = new LowestValueIndicator(minPriceIndicator, timeFrame); ! ! double highestHighPrice = highestHigh.getValue(index); ! double lowestLowPrice = lowestMin.getValue(index); return ((highestHighPrice - indicator.getValue(index).doubleValue()) / (highestHighPrice - lowestLowPrice)) * -100d; } } --- NEW FILE: HighestValueIndicator.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; public class HighestValueIndicator implements Indicator<Double> { private final Indicator<? extends Number> indicator; private final int timeFrame; public HighestValueIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; } public Double getValue(int index) { int start = Math.max(0, index - timeFrame + 1); Double highest = (Double) indicator.getValue(start); for (int i = start + 1; i <= index; i++) { if(highest.doubleValue() < indicator.getValue(i).doubleValue()) highest = (Double) indicator.getValue(i); } return highest; } } --- NEW FILE: LowestValueIndicator.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; public class LowestValueIndicator implements Indicator<Double> { private final Indicator<? extends Number> indicator; private final int timeFrame; public LowestValueIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; } public Double getValue(int index) { int start = Math.max(0, index - timeFrame + 1); Double lowest = (Double) indicator.getValue(start); for (int i = start + 1; i <= index; i++) { if(lowest.doubleValue() > indicator.getValue(i).doubleValue()) lowest = (Double) indicator.getValue(i); } return lowest; } } |
|
From: Thies <tg...@us...> - 2007-05-17 22:42:33
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/bollingerbands In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25903/src/test/net/sf/tail/indicator/bollingerbands Added Files: BollingerBandsMiddleIndicatorTest.java BollingerBandsUpperIndicatorTest.java BollingerBandsLowerIndicatorTest.java Log Message: BollingerBandsIndicator e testes --- NEW FILE: BollingerBandsMiddleIndicatorTest.java --- package net.sf.tail.indicator.bollingerbands; 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.SMAIndicator; import net.sf.tail.indicator.tracker.bollingerbands.BollingerBandsMiddleIndicator; import org.junit.Before; import org.junit.Test; public class BollingerBandsMiddleIndicatorTest { private TimeSeries data; @Before public void setUp() throws Exception { data = new SampleTimeSeries(new double[] { 1, 2, 3, 4, 3, 4, 5, 4, 3, 3, 4, 3, 2 }); } @Test public void testBollingerBandsMiddleUsingSMA() throws Exception { SMAIndicator sma = new SMAIndicator(new ClosePriceIndicator(data), 3); BollingerBandsMiddleIndicator bbmSMA = new BollingerBandsMiddleIndicator(sma); for (int i = 0; i < data.getSize(); i++) { assertEquals(sma.getValue(i), bbmSMA.getValue(i)); } } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { SMAIndicator sma = new SMAIndicator(new ClosePriceIndicator(data), 3); BollingerBandsMiddleIndicator bbmSMA = new BollingerBandsMiddleIndicator(sma); bbmSMA.getValue(data.getSize()); } //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(BollingerBandsMiddleIndicatorTest.class); } } --- NEW FILE: BollingerBandsLowerIndicatorTest.java --- package net.sf.tail.indicator.bollingerbands; 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.SMAIndicator; import net.sf.tail.indicator.tracker.StandardDeviationIndicator; import net.sf.tail.indicator.tracker.bollingerbands.BollingerBandsLowerIndicator; import net.sf.tail.indicator.tracker.bollingerbands.BollingerBandsMiddleIndicator; import org.junit.Before; import org.junit.Test; public class BollingerBandsLowerIndicatorTest { private TimeSeries data; @Before public void setUp() throws Exception { data = new SampleTimeSeries(new double[] { 1, 2, 3, 4, 3, 4, 5, 4, 3, 3, 4, 3, 2 }); } @Test public void testBollingerBandsLowerUsingSMAAndStandardDeviation() throws Exception { int timeFrame = 3; ClosePriceIndicator closePrice = new ClosePriceIndicator(data); SMAIndicator sma = new SMAIndicator(closePrice, timeFrame); BollingerBandsMiddleIndicator bbmSMA = new BollingerBandsMiddleIndicator(sma); StandardDeviationIndicator standardDeviation = new StandardDeviationIndicator(closePrice, timeFrame); BollingerBandsLowerIndicator bblSMA = new BollingerBandsLowerIndicator(bbmSMA, standardDeviation); for (int i = 0; i < data.getSize(); i++) { assertEquals(sma.getValue(i) - 2 * standardDeviation.getValue(i), bblSMA.getValue(i)); } } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { int timeFrame = 3; ClosePriceIndicator closePrice = new ClosePriceIndicator(data); SMAIndicator sma = new SMAIndicator(closePrice, timeFrame); BollingerBandsMiddleIndicator bbmSMA = new BollingerBandsMiddleIndicator(sma); StandardDeviationIndicator standardDeviation = new StandardDeviationIndicator(closePrice, timeFrame); BollingerBandsLowerIndicator bblSMA = new BollingerBandsLowerIndicator(bbmSMA, standardDeviation); bblSMA.getValue(data.getSize()); } public static junit.framework.Test suite() { return new JUnit4TestAdapter(BollingerBandsLowerIndicatorTest.class); } } --- NEW FILE: BollingerBandsUpperIndicatorTest.java --- package net.sf.tail.indicator.bollingerbands; 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.SMAIndicator; import net.sf.tail.indicator.tracker.StandardDeviationIndicator; import net.sf.tail.indicator.tracker.bollingerbands.BollingerBandsMiddleIndicator; import net.sf.tail.indicator.tracker.bollingerbands.BollingerBandsUpperIndicator; import org.junit.Before; import org.junit.Test; public class BollingerBandsUpperIndicatorTest { private TimeSeries data; @Before public void setUp() throws Exception { data = new SampleTimeSeries(new double[] { 1, 2, 3, 4, 3, 4, 5, 4, 3, 3, 4, 3, 2 }); } @Test public void testBollingerBandsUpperUsingSMAAndStandardDeviation() throws Exception { int timeFrame = 3; ClosePriceIndicator closePrice = new ClosePriceIndicator(data); SMAIndicator sma = new SMAIndicator(closePrice, timeFrame); BollingerBandsMiddleIndicator bbmSMA = new BollingerBandsMiddleIndicator(sma); StandardDeviationIndicator standardDeviation = new StandardDeviationIndicator(closePrice, timeFrame); BollingerBandsUpperIndicator bbuSMA = new BollingerBandsUpperIndicator(bbmSMA, standardDeviation); for (int i = 0; i < data.getSize(); i++) { assertEquals(sma.getValue(i) + 2 * standardDeviation.getValue(i), bbuSMA.getValue(i)); } } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { int timeFrame = 3; ClosePriceIndicator closePrice = new ClosePriceIndicator(data); SMAIndicator sma = new SMAIndicator(closePrice, timeFrame); BollingerBandsMiddleIndicator bbmSMA = new BollingerBandsMiddleIndicator(sma); StandardDeviationIndicator standardDeviation = new StandardDeviationIndicator(closePrice, timeFrame); BollingerBandsUpperIndicator bbuSMA = new BollingerBandsUpperIndicator(bbmSMA, standardDeviation); bbuSMA.getValue(data.getSize()); } public static junit.framework.Test suite() { return new JUnit4TestAdapter(BollingerBandsUpperIndicatorTest.class); } } |
|
From: Thies <tg...@us...> - 2007-05-17 22:42:25
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/bollingerbands In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25883/src/java/net/sf/tail/indicator/tracker/bollingerbands Log Message: Directory /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/bollingerbands added to the repository |
|
From: Thies <tg...@us...> - 2007-05-17 22:42:25
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/bollingerbands In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25883/src/test/net/sf/tail/indicator/bollingerbands Log Message: Directory /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/bollingerbands added to the repository |
|
From: Thies <tg...@us...> - 2007-05-17 21:47:25
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2147/src/java/net/sf/tail/indicator/tracker Modified Files: StandardDeviationIndicator.java Log Message: Ajustado o StandardDeviationIndicator para a pattern Decorator Index: StandardDeviationIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/StandardDeviationIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** StandardDeviationIndicator.java 17 May 2007 21:29:16 -0000 1.1 --- StandardDeviationIndicator.java 17 May 2007 21:47:24 -0000 1.2 *************** *** 3,14 **** import net.sf.tail.Indicator; ! public class StandardDeviationIndicator extends CachedIndicator<Double> { public StandardDeviationIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! super(indicator, timeFrame); } ! @Override ! protected Double calculate(int index) { SMAIndicator sma = new SMAIndicator(indicator, timeFrame); --- 3,18 ---- import net.sf.tail.Indicator; ! public class StandardDeviationIndicator implements Indicator<Double> { + private Indicator<? extends Number> indicator; + private int timeFrame; + public StandardDeviationIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; } ! ! public Double getValue(int index) { SMAIndicator sma = new SMAIndicator(indicator, timeFrame); *************** *** 23,26 **** --- 27,32 ---- + + |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 21:30:58
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27559/src/java/net/sf/tail/indicator/tracker Modified Files: AverageLossIndicator.java SMAIndicator.java CachedIndicator.java WilliamsRIndicator.java EMAIndicator.java RSIIndicator.java AverageGainIndicator.java Log Message: transformando template method em decorator (caso CachedIndicator) Index: EMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/EMAIndicator.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** EMAIndicator.java 14 May 2007 12:08:21 -0000 1.9 --- EMAIndicator.java 17 May 2007 21:30:55 -0000 1.10 *************** *** 3,10 **** import net.sf.tail.Indicator; ! public class EMAIndicator extends CachedIndicator<Double> { public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! super(indicator, timeFrame); } --- 3,14 ---- import net.sf.tail.Indicator; ! public class EMAIndicator implements Indicator<Double> { + private final Indicator<? extends Number> indicator; + private final int timeFrame; + public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; } *************** *** 13,18 **** } ! protected Double calculate(int index) { ! if(index + 1 < timeFrame) return new SMAIndicator(indicator,timeFrame).getValue(index); --- 17,21 ---- } ! public Double getValue(int index) { if(index + 1 < timeFrame) return new SMAIndicator(indicator,timeFrame).getValue(index); Index: AverageLossIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/AverageLossIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AverageLossIndicator.java 17 May 2007 17:52:05 -0000 1.1 --- AverageLossIndicator.java 17 May 2007 21:30:54 -0000 1.2 *************** *** 3,13 **** import net.sf.tail.Indicator; ! public class AverageLossIndicator extends CachedIndicator<Double> { public AverageLossIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! super(indicator, timeFrame); } ! protected Double calculate(int index) { double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { --- 3,17 ---- import net.sf.tail.Indicator; ! public class AverageLossIndicator implements Indicator<Double> { + private final Indicator<? extends Number> indicator; + private final int timeFrame; + public AverageLossIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; } ! public Double getValue(int index) { double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** RSIIndicator.java 17 May 2007 17:52:05 -0000 1.9 --- RSIIndicator.java 17 May 2007 21:30:55 -0000 1.10 *************** *** 3,13 **** import net.sf.tail.Indicator; ! public class RSIIndicator extends CachedIndicator<Double> { public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! super(indicator, timeFrame); } ! protected Double calculate(int index) { return 100d - 100d / (1 + rs(index)); } --- 3,17 ---- import net.sf.tail.Indicator; ! public class RSIIndicator implements Indicator<Double> { + private final Indicator<? extends Number> indicator; + private final int timeFrame; + public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; } ! public Double getValue(int index) { return 100d - 100d / (1 + rs(index)); } Index: SMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/SMAIndicator.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SMAIndicator.java 14 May 2007 12:08:21 -0000 1.7 --- SMAIndicator.java 17 May 2007 21:30:54 -0000 1.8 *************** *** 3,13 **** import net.sf.tail.Indicator; ! public class SMAIndicator extends CachedIndicator<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++) { --- 3,17 ---- import net.sf.tail.Indicator; ! public class SMAIndicator implements Indicator<Double> { + private final Indicator<? extends Number> indicator; + private final int timeFrame; + public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; } ! public Double getValue(int index) { double sum = 0.0; for (int i = Math.max(0, index - timeFrame + 1); i <= index; i++) { Index: AverageGainIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/AverageGainIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AverageGainIndicator.java 17 May 2007 17:52:05 -0000 1.1 --- AverageGainIndicator.java 17 May 2007 21:30:55 -0000 1.2 *************** *** 3,13 **** import net.sf.tail.Indicator; ! public class AverageGainIndicator extends CachedIndicator<Double> { public AverageGainIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! super(indicator, timeFrame); } ! protected Double calculate(int index) { double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { --- 3,17 ---- import net.sf.tail.Indicator; ! public class AverageGainIndicator implements Indicator<Double> { + private final Indicator<? extends Number> indicator; + private final int timeFrame; + public AverageGainIndicator(Indicator<? extends Number> indicator, int timeFrame) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; } ! public Double getValue(int index) { double result = 0; for (int i = Math.max(1, index - timeFrame + 1); i <= index; i++) { Index: WilliamsRIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/WilliamsRIndicator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** WilliamsRIndicator.java 17 May 2007 20:48:43 -0000 1.2 --- WilliamsRIndicator.java 17 May 2007 21:30:54 -0000 1.3 *************** *** 5,21 **** import net.sf.tail.indicator.simple.MinPriceIndicator; ! public class WilliamsRIndicator extends CachedIndicator<Double>{ private MaxPriceIndicator maxPriceIndicator; private MinPriceIndicator minPriceIndicator; public WilliamsRIndicator(Indicator<? extends Number> indicator, int timeFrame, MaxPriceIndicator maxPriceIndicator, MinPriceIndicator minPriceIndicator) { ! super(indicator, timeFrame); this.maxPriceIndicator = maxPriceIndicator; this.minPriceIndicator = minPriceIndicator; } ! ! @Override ! protected Double calculate(int index) { double highestHighPrice = getHighestHighPrice(index); double lowestLowPrice = getLowestLowPrice(index); --- 5,23 ---- import net.sf.tail.indicator.simple.MinPriceIndicator; ! public class WilliamsRIndicator implements Indicator<Double> { + private final Indicator<? extends Number> indicator; + private final int timeFrame; private MaxPriceIndicator maxPriceIndicator; private MinPriceIndicator minPriceIndicator; public WilliamsRIndicator(Indicator<? extends Number> indicator, int timeFrame, MaxPriceIndicator maxPriceIndicator, MinPriceIndicator minPriceIndicator) { ! this.indicator = indicator; ! this.timeFrame = timeFrame; this.maxPriceIndicator = maxPriceIndicator; this.minPriceIndicator = minPriceIndicator; } ! ! public Double getValue(int index) { double highestHighPrice = getHighestHighPrice(index); double lowestLowPrice = getLowestLowPrice(index); Index: CachedIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/CachedIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** CachedIndicator.java 17 May 2007 20:16:11 -0000 1.4 --- CachedIndicator.java 17 May 2007 21:30:54 -0000 1.5 *************** *** 7,42 **** import net.sf.tail.Indicator; ! public abstract class CachedIndicator<T> implements Indicator { protected final Indicator<? extends Number> indicator; ! protected final int timeFrame; ! protected List<T> results; public CachedIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; ! results = new ArrayList<T>(); } ! public T getValue(int index) { increaseLength(index); if (results.get(index) == null) { ! results.set(index, calculate(index)); } return results.get(index); - } private void increaseLength(int index) { if (results.size() <= index) { ! results.addAll(Collections.<T> nCopies(index - results.size() + 1, null)); } } ! protected abstract T calculate(int index); } --- 7,46 ---- import net.sf.tail.Indicator; ! public class CachedIndicator implements Indicator { protected final Indicator<? extends Number> indicator; ! protected int timeFrame = 0; ! protected List<Number> results; public CachedIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; ! results = new ArrayList<Number>(); } ! public CachedIndicator(Indicator<? extends Number> indicator) { ! this.indicator = indicator; ! results = new ArrayList<Number>(); ! } ! ! public Number getValue(int index) { increaseLength(index); if (results.get(index) == null) { ! results.set(index, indicator.getValue(index)); } return results.get(index); } private void increaseLength(int index) { if (results.size() <= index) { ! results.addAll(Collections.<Number> nCopies(index - results.size() + 1, null)); } } ! } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 21:30:55
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27559/src/test/net/sf/tail/indicator Added Files: CachedIndicatorTest.java Log Message: transformando template method em decorator (caso CachedIndicator) --- NEW FILE: CachedIndicatorTest.java --- package net.sf.tail.indicator; import java.util.Arrays; import net.sf.tail.SampleTimeSeries; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.CachedIndicator; import net.sf.tail.indicator.tracker.SMAIndicator; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import junit.framework.JUnit4TestAdapter; public class CachedIndicatorTest { 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 testCachedIndicatorShouldBeEqualsSMAIndicator() throws Exception { SMAIndicator sma = new SMAIndicator(new ClosePriceIndicator(data), 3); CachedIndicator cache = new CachedIndicator(sma); for (int i = 0; i < 10; i++) { assertEquals(sma.getValue(i) , cache.getValue(i)); } } @Test public void testIfCacheWorks() { SMAIndicator sma = new SMAIndicator(new ClosePriceIndicator(data), 3); CachedIndicator cache = new CachedIndicator(sma); cache.getValue(4); assertEquals(sma.getValue(4) , cache.getValue(4)); } @Test public void testIncreaseArrayMethod() { double[] d = new double[200]; Arrays.fill(d, 10); TimeSeries dataMax = new SampleTimeSeries(d ); SMAIndicator quoteSMA = new SMAIndicator(new ClosePriceIndicator(dataMax), 100); CachedIndicator cache = new CachedIndicator(quoteSMA); assertEquals(10d, cache.getValue(105)); } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { SMAIndicator quoteSMA = new SMAIndicator(new ClosePriceIndicator(data), 3); CachedIndicator cache = new CachedIndicator(quoteSMA); cache.getValue(13); } //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(CachedIndicatorTest.class); } } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 21:30:55
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27559/src/java/net/sf/tail Modified Files: Tick.java Log Message: transformando template method em decorator (caso CachedIndicator) Index: Tick.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/Tick.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Tick.java 17 May 2007 20:50:17 -0000 1.6 --- Tick.java 17 May 2007 21:30:54 -0000 1.7 *************** *** 35,39 **** this.trades = trades; } ! public Tick(double openPrice, double closePrice, double maxPrice, double minPrice) { --- 35,39 ---- this.trades = trades; } ! public Tick(double openPrice, double closePrice, double maxPrice, double minPrice) { *************** *** 91,95 **** return false; } ! public double getVariation() { return variation; --- 91,95 ---- return false; } ! public double getVariation() { return variation; |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 20:48:43
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10230/src/java/net/sf/tail/indicator/tracker Modified Files: WilliamsRIndicator.java Log Message: refatoração dos testes Index: WilliamsRIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/WilliamsRIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WilliamsRIndicator.java 17 May 2007 19:59:19 -0000 1.1 --- WilliamsRIndicator.java 17 May 2007 20:48:43 -0000 1.2 *************** *** 35,38 **** --- 35,42 ---- } + /* + * TODO - Pensar em otimização ou maior número de indicadores ? + * + */ private Double getLowestLowPrice(int index) { |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 20:16:13
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv31504/src/test/net/sf/tail/reader Modified Files: CedroTimeSeriesLoaderTest.java Log Message: refatoração dos testes Index: CedroTimeSeriesLoaderTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/reader/CedroTimeSeriesLoaderTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** CedroTimeSeriesLoaderTest.java 17 May 2007 16:59:55 -0000 1.7 --- CedroTimeSeriesLoaderTest.java 17 May 2007 20:16:11 -0000 1.8 *************** *** 2,11 **** --- 2,16 ---- import static org.junit.Assert.assertEquals; + import java.io.FileInputStream; import java.sql.Timestamp; + import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; + import junit.framework.JUnit4TestAdapter; + import net.sf.tail.Tick; import net.sf.tail.TimeSeries; + import org.junit.Before; import org.junit.Test; *************** *** 21,96 **** } @Test public void testLine3() throws Exception { ! ! // TODO: Duplicado em todos os testes (dtsato) ! 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}; ! ! verifyTick(values, timestamp, 2); ! ! ! } @Test public void testeLine2() throws Exception { ! ! Date date = null; ! SimpleDateFormat simpleDate = new SimpleDateFormat("dd/M/yyyy"); ! ! date = simpleDate.parse("30/4/2007"); ! ! Timestamp timestamp = new Timestamp(date.getTime()); ! ! double[] valores = {73.09,72.81,73.10,72.20,1.00,73.09,83200.00,6045660.00,103.00}; ! ! verifyTick(valores, timestamp, 1); ! } @Test public void testLine1() throws Exception { ! ! Date date = null; ! SimpleDateFormat simpleDate = new SimpleDateFormat("dd/M/yyyy"); ! ! ! date = simpleDate.parse("27/4/2007"); - Timestamp timestamp = new Timestamp(date.getTime()); - - double[] valores = {71.00,73.09,73.29,68.76,1.02,71.40,59100.00,4180018.00,141.00}; - - verifyTick(valores, timestamp, 0); - } ! ! /* ! * TODO: Isso me parece estranho. Primeiro que tem muita coisa duplicada. ! * E segundo que ele precisa ficar fazendo assertEquals com cada coisa do Tick. ! * Me pareceria mais intuitivo um assertEquals entre ticks. Se o equals daqui ! * não fizer sentido como equals() da aplicação, temos que pensar num jeito ! * de usar uma versão do tick para testes. Talvez criar um TickComparator na ! * estrutura de testes que verifica cada campo. Isso pode ser reaproveitado ! * em vários outros testes. (dtsato) ! * ! */ ! private void verifyTick(double[] values, Timestamp timestamp, int index) { ! assertEquals(timestamp, ts.getTick(index).getData()); ! ! assertEquals(values[0], ts.getTick(index).getOpenPrice()); ! assertEquals(values[1], ts.getTick(index).getClosePrice()); ! assertEquals(values[2], ts.getTick(index).getMaxPrice()); ! assertEquals(values[3], ts.getTick(index).getMinPrice()); ! assertEquals(values[4], ts.getTick(index).getChange()); ! assertEquals(values[5], ts.getTick(index).getPreviousPrice()); ! assertEquals(values[6], ts.getTick(index).getVolumeAmount()); ! assertEquals(values[7], ts.getTick(index).getVolumeFinancier()); ! assertEquals((int)values[8], ts.getTick(index).getTrades()); ! } ! //Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) //e o JUnit4 --- 26,64 ---- } + private Timestamp getTimeStamp(int year,int month,int day){ + Date date = null; + SimpleDateFormat simpleDate = new SimpleDateFormat("dd/M/yyyy"); + try { + date = simpleDate.parse(day+"/"+month+"/"+year); + } catch (ParseException e) { + e.printStackTrace(); + } + return new Timestamp(date.getTime()); + } + @Test public void testLine3() throws Exception { ! ! Timestamp timestamp = getTimeStamp(2007,5,2); ! Tick tick = new Tick(timestamp,71.70,72.06,72.75,71.70,0.99,72.81,108200.00,7854215.00,152); ! assertEquals(tick, ts.getTick(2)); } @Test public void testeLine2() throws Exception { ! ! Timestamp timestamp = getTimeStamp(2007, 4, 30); ! Tick tick = new Tick(timestamp,73.09,72.81,73.10,72.20,1.00,73.09,83200.00,6045660.00,103); ! assertEquals(tick, ts.getTick(1)); } @Test public void testLine1() throws Exception { ! ! Timestamp timestamp = getTimeStamp(2007, 4, 27); ! Tick tick = new Tick(timestamp,71.00,73.09,73.29,68.76,1.02,71.40,59100.00,4180018.00,141); ! assertEquals(tick, ts.getTick(0)); } ! //Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) //e o JUnit4 |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 20:16:13
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv31504/src/test/net/sf/tail/indicator/simple Modified Files: TradeIndicatorTest.java PreviousPriceIndicatorTest.java OpenPriceIndicatorTest.java ClosePriceIndicatorTest.java VariationPriceIndicatorTest.java MinPriceIndicatorTest.java MaxPriceIndicatorTest.java Added Files: VolumeIndicatorTest.java AmountIndicatorTest.java Removed Files: VolumeFinancierIndicatorTest.java VolumeAmountIndicatorTest.java Log Message: refatoração dos testes --- NEW FILE: VolumeIndicatorTest.java --- package net.sf.tail.indicator.simple; import static org.junit.Assert.assertEquals; import junit.framework.JUnit4TestAdapter; import net.sf.tail.SampleTimeSeries; import net.sf.tail.TimeSeries; import org.junit.Before; import org.junit.Test; public class VolumeIndicatorTest { private VolumeIndicator volumeIndicator; TimeSeries timeSeries; @Before public void setUp(){ timeSeries = new SampleTimeSeries(); volumeIndicator = new VolumeIndicator(timeSeries); } @Test public void testIndicatorShouldRetrieveTickVolume() { for (int i = 0; i < 10; i++) { assertEquals(volumeIndicator.getValue(i), timeSeries.getTick(i).getVolume()); } } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { volumeIndicator.getValue(10); } // 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(VolumeIndicatorTest.class); } } --- VolumeFinancierIndicatorTest.java DELETED --- --- NEW FILE: AmountIndicatorTest.java --- package net.sf.tail.indicator.simple; import static org.junit.Assert.assertEquals; import junit.framework.JUnit4TestAdapter; import net.sf.tail.SampleTimeSeries; import net.sf.tail.TimeSeries; import org.junit.Before; import org.junit.Test; public class AmountIndicatorTest { private AmountIndicator amountIndicator; TimeSeries timeSeries; @Before public void setUp(){ timeSeries = new SampleTimeSeries(); amountIndicator = new AmountIndicator(timeSeries); } @Test public void testIndicatorShouldRetrieveTickAmountPrice() { for (int i = 0; i < 10; i++) { assertEquals(amountIndicator.getValue(i), timeSeries.getTick(i).getAmount()); } } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { amountIndicator.getValue(10); } // 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(AmountIndicatorTest.class); } } Index: MaxPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/MaxPriceIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MaxPriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 --- MaxPriceIndicatorTest.java 17 May 2007 20:16:11 -0000 1.4 *************** *** 23,30 **** @Test ! public void testMax() { for (int i = 0; i < 10; i++) { ! assertEquals(maxPriceIndicator.getValue(i), (double)(i + 2)); } } --- 23,30 ---- @Test ! public void testIndicatorShouldRetrieveTickMaxPrice() { for (int i = 0; i < 10; i++) { ! assertEquals(maxPriceIndicator.getValue(i), timeSeries.getTick(i).getMaxPrice()); } } *************** *** 32,36 **** public void testWrongIndex() { ! assertEquals(maxPriceIndicator.getValue(10), 0.0); } --- 32,36 ---- public void testWrongIndex() { ! maxPriceIndicator.getValue(10); } Index: TradeIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/TradeIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TradeIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 --- TradeIndicatorTest.java 17 May 2007 20:16:11 -0000 1.4 *************** *** 23,30 **** @Test ! public void testTrade() { for (int i = 0; i < 10; i++) { ! assertEquals(tradeIndicator.getValue(i), i + 8); } } --- 23,30 ---- @Test ! public void testIndicatorShouldRetrieveTickTrade() { for (int i = 0; i < 10; i++) { ! assertEquals(tradeIndicator.getValue(i),timeSeries.getTick(i).getTrades()); } } *************** *** 32,36 **** public void testWrongIndex() { ! assertEquals(tradeIndicator.getValue(10), 0.0); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) --- 32,36 ---- public void testWrongIndex() { ! tradeIndicator.getValue(10); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) Index: OpenPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/OpenPriceIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OpenPriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 --- OpenPriceIndicatorTest.java 17 May 2007 20:16:11 -0000 1.4 *************** *** 18,30 **** public void setUp(){ timeSeries = new SampleTimeSeries(); ! openPriceIndicator = new OpenPriceIndicator(timeSeries); ! } @Test ! public void testOpen() { for (int i = 0; i < 10; i++) { ! assertEquals(openPriceIndicator.getValue(i), (double)i); } } --- 18,29 ---- public void setUp(){ timeSeries = new SampleTimeSeries(); ! openPriceIndicator = new OpenPriceIndicator(timeSeries); } @Test ! public void testIndicatorShouldRetrieveTickOpenPrice() { for (int i = 0; i < 10; i++) { ! assertEquals(openPriceIndicator.getValue(i), timeSeries.getTick(i).getOpenPrice()); } } *************** *** 32,36 **** public void testWrongIndex() { ! assertEquals(openPriceIndicator.getValue(10), 0.0); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) --- 31,35 ---- public void testWrongIndex() { ! openPriceIndicator.getValue(10); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) Index: VariationPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/VariationPriceIndicatorTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VariationPriceIndicatorTest.java 17 May 2007 19:42:16 -0000 1.1 --- VariationPriceIndicatorTest.java 17 May 2007 20:16:11 -0000 1.2 *************** *** 10,17 **** import junit.framework.JUnit4TestAdapter; - /* - * TODO: Os TODOs dessa classe valem para os outros testes de indicadores - * simples. (dtsato) - */ public class VariationPriceIndicatorTest { --- 10,13 ---- *************** *** 27,41 **** @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(variationIndicator.getValue(i), (double)(i + 4)); } } --- 23,31 ---- @Test ! ! public void testIndicatorShouldRetrieveTickVariation() { for (int i = 0; i < 10; i++) { ! assertEquals(variationIndicator.getValue(i), timeSeries.getTick(i).getVariation()); } } *************** *** 43,48 **** public void testWrongIndex() { ! // TODO: não precisa do assertEquals se a idéia é soltar a exceção. (dtsato) ! assertEquals(variationIndicator.getValue(10), 0.0); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) --- 33,37 ---- public void testWrongIndex() { ! variationIndicator.getValue(10); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) Index: MinPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/MinPriceIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MinPriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 --- MinPriceIndicatorTest.java 17 May 2007 20:16:11 -0000 1.4 *************** *** 22,29 **** @Test ! public void testMin() { for (int i = 0; i < 10; i++) { ! assertEquals(minPriceIndicator.getValue(i), (double)(i + 3)); } } --- 22,29 ---- @Test ! public void testIndicatorShouldRetrieveTickMinPrice() { for (int i = 0; i < 10; i++) { ! assertEquals(minPriceIndicator.getValue(i), timeSeries.getTick(i).getMinPrice()); } } *************** *** 31,35 **** public void testWrongIndex() { ! assertEquals(minPriceIndicator.getValue(10), 0.0); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) --- 31,35 ---- public void testWrongIndex() { ! minPriceIndicator.getValue(10); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) --- VolumeAmountIndicatorTest.java DELETED --- Index: ClosePriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/ClosePriceIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ClosePriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 --- ClosePriceIndicatorTest.java 17 May 2007 20:16:11 -0000 1.4 *************** *** 23,32 **** @Test ! public void testClose() { for (int i = 0; i < 10; i++) { ! assertEquals(closePrice.getValue(i), (double)(i + 1)); } } --- 23,32 ---- @Test ! public void testIndicatorShouldRetrieveTickClosePrice() { for (int i = 0; i < 10; i++) { ! assertEquals(closePrice.getValue(i), timeSeries.getTick(i).getClosePrice()); } } *************** *** 34,38 **** public void testWrongIndex() { ! assertEquals(closePrice.getValue(10), 0.0); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) --- 34,38 ---- public void testWrongIndex() { ! closePrice.getValue(10); } // Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux) Index: PreviousPriceIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/simple/PreviousPriceIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PreviousPriceIndicatorTest.java 17 May 2007 17:22:17 -0000 1.3 --- PreviousPriceIndicatorTest.java 17 May 2007 20:16:11 -0000 1.4 *************** *** 23,30 **** @Test ! public void testPrevious() { for (int i = 0; i < 10; i++) { ! assertEquals(previousPriceIndicator.getValue(i), (double)(i + 5)); } } --- 23,30 ---- @Test ! public void testIndicatorShouldRetrieveTickPreviousPrice() { for (int i = 0; i < 10; i++) { ! assertEquals(previousPriceIndicator.getValue(i),timeSeries.getTick(i).getPreviousPrice()); } } *************** *** 32,36 **** public void testWrongIndex() { ! assertEquals(previousPriceIndicator.getValue(10), 0.0); } --- 32,36 ---- public void testWrongIndex() { ! previousPriceIndicator.getValue(10); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 20:16:13
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/simple In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv31504/src/java/net/sf/tail/indicator/simple Modified Files: VariationIndicator.java Added Files: VolumeIndicator.java AmountIndicator.java Removed Files: VolumeAmountIndicator.java VolumeFinancierIndicator.java Log Message: refatoração dos testes --- NEW FILE: AmountIndicator.java --- package net.sf.tail.indicator.simple; import net.sf.tail.Indicator; import net.sf.tail.TimeSeries; public class AmountIndicator implements Indicator<Double> { private TimeSeries data; public AmountIndicator(TimeSeries data) { this.data = data; } public Double getValue(int index) { return data.getTick(index).getAmount(); } } --- VolumeAmountIndicator.java DELETED --- Index: VariationIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/simple/VariationIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VariationIndicator.java 17 May 2007 19:40:21 -0000 1.1 --- VariationIndicator.java 17 May 2007 20:16:11 -0000 1.2 *************** *** 13,17 **** public Double getValue(int index) { ! return data.getTick(index).getChange(); } } --- 13,17 ---- public Double getValue(int index) { ! return data.getTick(index).getVariation(); } } --- NEW FILE: VolumeIndicator.java --- package net.sf.tail.indicator.simple; import net.sf.tail.Indicator; import net.sf.tail.TimeSeries; public class VolumeIndicator implements Indicator<Double> { private TimeSeries data; public VolumeIndicator(TimeSeries data) { this.data = data; } public Double getValue(int index) { return data.getTick(index).getVolume(); } } --- VolumeFinancierIndicator.java DELETED --- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 20:16:12
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv31504/src/test/net/sf/tail/indicator Modified Files: WilliamsRIndicatorTest.java AverageGainIndicatorTest.java AverageLossIndicatorTest.java Log Message: refatoração dos testes Index: AverageLossIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/AverageLossIndicatorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AverageLossIndicatorTest.java 17 May 2007 19:05:26 -0000 1.2 --- AverageLossIndicatorTest.java 17 May 2007 20:16:12 -0000 1.3 *************** *** 25,36 **** AverageLossIndicator averageLoss = new AverageLossIndicator(new ClosePriceIndicator(data), 5); ! assertEquals(1/5, averageLoss.getValue(5), 0.01); ! assertEquals(1/5, averageLoss.getValue(6), 0.01); ! assertEquals(2/5, averageLoss.getValue(7), 0.01); ! assertEquals(3/5, averageLoss.getValue(8), 0.01); ! assertEquals(2/5, averageLoss.getValue(9), 0.01); ! assertEquals(2/5, averageLoss.getValue(10), 0.01); ! assertEquals(3/5, averageLoss.getValue(11), 0.01); ! assertEquals(3/5, averageLoss.getValue(12), 0.01); } --- 25,36 ---- AverageLossIndicator averageLoss = new AverageLossIndicator(new ClosePriceIndicator(data), 5); ! assertEquals(1d/5d, averageLoss.getValue(5), 0.01); ! assertEquals(1d/5d, averageLoss.getValue(6), 0.01); ! assertEquals(2d/5d, averageLoss.getValue(7), 0.01); ! assertEquals(3d/5d, averageLoss.getValue(8), 0.01); ! assertEquals(2d/5d, averageLoss.getValue(9), 0.01); ! assertEquals(2d/5d, averageLoss.getValue(10), 0.01); ! assertEquals(3d/5d, averageLoss.getValue(11), 0.01); ! assertEquals(3d/5d, averageLoss.getValue(12), 0.01); } *************** *** 39,43 **** public void test10daysJumping() { AverageLossIndicator averageLoss = new AverageLossIndicator(new ClosePriceIndicator(data), 5); ! assertEquals(2/5, averageLoss.getValue(10), 0.01); } --- 39,43 ---- public void test10daysJumping() { AverageLossIndicator averageLoss = new AverageLossIndicator(new ClosePriceIndicator(data), 5); ! assertEquals(2d/5d, averageLoss.getValue(10), 0.01); } Index: WilliamsRIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/WilliamsRIndicatorTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WilliamsRIndicatorTest.java 17 May 2007 19:59:52 -0000 1.1 --- WilliamsRIndicatorTest.java 17 May 2007 20:16:12 -0000 1.2 *************** *** 4,13 **** import java.util.ArrayList; - import java.util.Arrays; import java.util.List; - import junit.framework.JUnit4TestAdapter; import net.sf.tail.DefaultTimeSeries; - import net.sf.tail.SampleTimeSeries; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; --- 4,10 ---- *************** *** 15,21 **** import net.sf.tail.indicator.simple.MaxPriceIndicator; import net.sf.tail.indicator.simple.MinPriceIndicator; - import net.sf.tail.indicator.tracker.SMAIndicator; import net.sf.tail.indicator.tracker.WilliamsRIndicator; - import org.junit.Before; import org.junit.Test; --- 12,16 ---- Index: AverageGainIndicatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/AverageGainIndicatorTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AverageGainIndicatorTest.java 17 May 2007 19:05:26 -0000 1.3 --- AverageGainIndicatorTest.java 17 May 2007 20:16:12 -0000 1.4 *************** *** 25,36 **** AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); ! assertEquals(4/5, averageGain.getValue(5), 0.01); ! assertEquals(4/5, averageGain.getValue(6), 0.01); ! assertEquals(3/5, averageGain.getValue(7), 0.01); ! assertEquals(2/5, averageGain.getValue(8), 0.01); ! assertEquals(2/5, averageGain.getValue(9), 0.01); ! assertEquals(2/5, averageGain.getValue(10), 0.01); ! assertEquals(1/5, averageGain.getValue(11), 0.01); ! assertEquals(1/5, averageGain.getValue(12), 0.01); } --- 25,36 ---- AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); ! assertEquals(4d/5d, averageGain.getValue(5), 0.01); ! assertEquals(4d/5d, averageGain.getValue(6), 0.01); ! assertEquals(3d/5d, averageGain.getValue(7), 0.01); ! assertEquals(2d/5d, averageGain.getValue(8), 0.01); ! assertEquals(2d/5d, averageGain.getValue(9), 0.01); ! assertEquals(2d/5d, averageGain.getValue(10), 0.01); ! assertEquals(1d/5d, averageGain.getValue(11), 0.01); ! assertEquals(1d/5d, averageGain.getValue(12), 0.01); } *************** *** 39,43 **** public void test10daysJumping() { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); ! assertEquals(2/5, averageGain.getValue(10), 0.01); } --- 39,43 ---- public void test10daysJumping() { AverageGainIndicator averageGain = new AverageGainIndicator(new ClosePriceIndicator(data), 5); ! assertEquals(2d/5d, averageGain.getValue(10), 0.01); } |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 20:16:11
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv31504/src/java/net/sf/tail/indicator/tracker Modified Files: CachedIndicator.java Log Message: refatoração dos testes Index: CachedIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/CachedIndicator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CachedIndicator.java 15 May 2007 14:52:43 -0000 1.3 --- CachedIndicator.java 17 May 2007 20:16:11 -0000 1.4 *************** *** 16,30 **** 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; this.timeFrame = timeFrame; results = new ArrayList<T>(); - } --- 16,23 ---- |
|
From: Márcio V. d. S. <mv...@us...> - 2007-05-17 20:16:11
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv31504/src/java/net/sf/tail Modified Files: Tick.java Log Message: refatoração dos testes Index: Tick.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/Tick.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Tick.java 17 May 2007 19:58:52 -0000 1.4 --- Tick.java 17 May 2007 20:16:10 -0000 1.5 *************** *** 10,17 **** private double maxPrice; private double minPrice; ! private double change; private double previousPrice; ! private double volumeAmount; ! private double volumeFinancier; private int trades; --- 10,17 ---- private double maxPrice; private double minPrice; ! private double variation; private double previousPrice; ! private double amount; ! private double volume; private int trades; *************** *** 22,26 **** public Tick(Timestamp data, double openPrice, double closePrice, double maxPrice, double minPrice, ! double change,double previousPrice,double volumeAmount,double volumeFinancier,int trades) { super(); this.data = data; --- 22,26 ---- public Tick(Timestamp data, double openPrice, double closePrice, double maxPrice, double minPrice, ! double variation,double previousPrice,double amount,double volume,int trades) { super(); this.data = data; *************** *** 29,36 **** this.maxPrice = maxPrice; this.minPrice = minPrice; ! this.change = change; this.previousPrice = previousPrice; ! this.volumeAmount = volumeAmount; ! this.volumeFinancier = volumeFinancier; this.trades = trades; } --- 29,36 ---- this.maxPrice = maxPrice; this.minPrice = minPrice; ! this.variation = variation; this.previousPrice = previousPrice; ! this.amount = amount; ! this.volume = volume; this.trades = trades; } *************** *** 64,79 **** ! public double getVolumeAmount() { ! return volumeAmount; } ! public double getVolumeFinancier() { ! return volumeFinancier; } ! ! public double getChange() { ! return change; } --- 64,93 ---- ! public double getAmount() { ! return amount; } ! public double getVolume() { ! return volume; } ! @Override ! public boolean equals(Object obj) { ! Tick tick = (Tick) obj; ! return (variation == tick.getVariation()) && ! (closePrice == tick.getClosePrice()) && ! (data.equals(tick.getData())) && ! (maxPrice == tick.getMaxPrice()) && ! (minPrice == tick.getMinPrice()) && ! (openPrice == tick.getOpenPrice()) && ! (previousPrice == getPreviousPrice()) && ! (trades == tick.getTrades()) && ! (amount == tick.getAmount()) && ! (volume == tick.getVolume()); ! } ! ! public double getVariation() { ! return variation; } |
|
From: Thies <tg...@us...> - 2007-05-17 19:59:52
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25633/src/test/net/sf/tail/indicator Added Files: WilliamsRIndicatorTest.java Log Message: Classe de teste do Williams % R --- NEW FILE: WilliamsRIndicatorTest.java --- package net.sf.tail.indicator; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import junit.framework.JUnit4TestAdapter; import net.sf.tail.DefaultTimeSeries; import net.sf.tail.SampleTimeSeries; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.simple.MaxPriceIndicator; import net.sf.tail.indicator.simple.MinPriceIndicator; import net.sf.tail.indicator.tracker.SMAIndicator; import net.sf.tail.indicator.tracker.WilliamsRIndicator; import org.junit.Before; import org.junit.Test; public class WilliamsRIndicatorTest { private TimeSeries data; @Before public void prepare() throws Exception { List<Tick> ticks = new ArrayList<Tick>(); ticks.add(new Tick(44.98,45.05, 45.17,44.96)); ticks.add(new Tick(45.05,45.10,45.15,44.99)); ticks.add(new Tick(45.11,45.19,45.32,45.11)); ticks.add(new Tick(45.19,45.14,45.25,45.04)); ticks.add(new Tick(45.12,45.15, 45.20,45.10)); ticks.add(new Tick(45.15,45.14, 45.20,45.10)); ticks.add(new Tick(45.13,45.10,45.16,45.07)); ticks.add(new Tick(45.12,45.15,45.22,45.10)); ticks.add(new Tick(45.15,45.22,45.27,45.14)); ticks.add(new Tick(45.24,45.43,45.45,45.20)); ticks.add(new Tick(45.43,45.44,45.50,45.39)); ticks.add(new Tick(45.43,45.55,45.60,45.35)); ticks.add(new Tick(45.58,45.55,45.61,45.39)); data = new DefaultTimeSeries(ticks); } @Test public void testWR5() throws Exception { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 5, new MaxPriceIndicator(data), new MinPriceIndicator(data)); assertEquals(-47.22, wr.getValue(4), 0.01); assertEquals(-54.55, wr.getValue(5), 0.01); assertEquals(-78.57, wr.getValue(6), 0.01); assertEquals(-47.62, wr.getValue(7), 0.01); assertEquals(-25.00, wr.getValue(8), 0.01); assertEquals(-5.26, wr.getValue(9), 0.01); assertEquals(-13.95, wr.getValue(10), 0.01); } @Test public void testWR10() { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 10, new MaxPriceIndicator(data), new MinPriceIndicator(data)); assertEquals(-4.08, wr.getValue(9), 0.01); assertEquals(-11.77, wr.getValue(10), 0.01); assertEquals(-8.93, wr.getValue(11), 0.01); assertEquals(-10.53, wr.getValue(12), 0.01); } @Test public void testValueLessThenTimeFrame() { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 100, new MaxPriceIndicator(data), new MinPriceIndicator(data)); assertEquals(-100d * (0.12 / 0.21), wr.getValue(0), 0.01); assertEquals(-100d * (0.07 / 0.21), wr.getValue(1), 0.01); assertEquals(-100d * (0.13 / 0.36), wr.getValue(2), 0.01); assertEquals(-100d * (0.18 / 0.36), wr.getValue(3), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testWrongIndex() { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 100, new MaxPriceIndicator(data), new MinPriceIndicator(data)); wr.getValue(13); } //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(WilliamsRIndicatorTest.class); } } |
|
From: Thies <tg...@us...> - 2007-05-17 19:59:26
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25602/src/java/net/sf/tail/indicator/tracker Added Files: WilliamsRIndicator.java Log Message: Indicador Williams % R --- NEW FILE: WilliamsRIndicator.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; import net.sf.tail.indicator.simple.MaxPriceIndicator; import net.sf.tail.indicator.simple.MinPriceIndicator; public class WilliamsRIndicator extends CachedIndicator<Double>{ private MaxPriceIndicator maxPriceIndicator; private MinPriceIndicator minPriceIndicator; public WilliamsRIndicator(Indicator<? extends Number> indicator, int timeFrame, MaxPriceIndicator maxPriceIndicator, MinPriceIndicator minPriceIndicator) { super(indicator, timeFrame); this.maxPriceIndicator = maxPriceIndicator; this.minPriceIndicator = minPriceIndicator; } @Override protected Double calculate(int index) { double highestHighPrice = getHighestHighPrice(index); double lowestLowPrice = getLowestLowPrice(index); return ((highestHighPrice - indicator.getValue(index).doubleValue()) / (highestHighPrice - lowestLowPrice)) * -100d; } private Double getHighestHighPrice(int index) { int start = Math.max(0, index - timeFrame + 1); Double highest = maxPriceIndicator.getValue(start); for (int i = start + 1; i <= index; i++) { if(highest.doubleValue() < maxPriceIndicator.getValue(i).doubleValue()) highest = maxPriceIndicator.getValue(i); } return highest; } private Double getLowestLowPrice(int index) { int start = Math.max(0, index - timeFrame + 1); Double lowest = minPriceIndicator.getValue(start); for (int i = start + 1; i <= index; i++) { if(lowest.doubleValue() > minPriceIndicator.getValue(i).doubleValue()) lowest = minPriceIndicator.getValue(i); } return lowest; } } |
|
From: Thies <tg...@us...> - 2007-05-17 19:58:55
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25202/src/java/net/sf/tail Modified Files: Tick.java Log Message: Novo construtor com os parâmetros openPrice, closePrice, maxPrice e minPrice Index: Tick.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/Tick.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Tick.java 12 May 2007 13:21:14 -0000 1.3 --- Tick.java 17 May 2007 19:58:52 -0000 1.4 *************** *** 35,38 **** --- 35,47 ---- this.trades = trades; } + + public Tick(double openPrice, double closePrice, double maxPrice, double minPrice) + { + super(); + this.openPrice = openPrice; + this.closePrice = closePrice; + this.maxPrice = maxPrice; + this.minPrice = minPrice; + } |
|
From: Thies <tg...@us...> - 2007-05-17 19:56:46
|
Update of /cvsroot/tail/Tail/BaseBovespa/tests In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv24370/BaseBovespa/tests Added Files: petr4-Teste-Williams%R-parametro-5e10.csv Log Message: Valores de teste para o Williams % R --- NEW FILE: petr4-Teste-Williams%R-parametro-5e10.csv --- (This appears to be a binary file; contents omitted.) |