Skip to content

Commit c0c6daf

Browse files
authored
ZLEMAIndicator: improved calculation (ta4j#1057)
1 parent 6887253 commit c0c6daf

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

ta4j-core/src/main/java/org/ta4j/core/indicators/ZLEMAIndicator.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class ZLEMAIndicator extends RecursiveCachedIndicator<Num> {
3737

3838
private final Indicator<Num> indicator;
3939
private final int barCount;
40+
private final Num two;
4041
private final Num k;
4142
private final int lag;
4243

@@ -50,7 +51,8 @@ public ZLEMAIndicator(Indicator<Num> indicator, int barCount) {
5051
super(indicator);
5152
this.indicator = indicator;
5253
this.barCount = barCount;
53-
this.k = numOf(2).dividedBy(numOf(barCount + 1));
54+
this.two = numOf(2);
55+
this.k = two.dividedBy(numOf(barCount + 1));
5456
this.lag = (barCount - 1) / 2;
5557
}
5658

@@ -65,7 +67,7 @@ protected Num calculate(int index) {
6567
return indicator.getValue(0);
6668
}
6769
Num zlemaPrev = getValue(index - 1);
68-
return k.multipliedBy(numOf(2).multipliedBy(indicator.getValue(index)).minus(indicator.getValue(index - lag)))
70+
return k.multipliedBy(two.multipliedBy(indicator.getValue(index)).minus(indicator.getValue(index - lag)))
6971
.plus(one().minus(k).multipliedBy(zlemaPrev));
7072
}
7173

0 commit comments

Comments
 (0)