|
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++) { |