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