package jtrade.indicator;
import jtrade.util.DoubleBuffer;
public class MA extends AbstractIndicator {
int period;
DoubleBuffer buf;
double value;
public MA(int period) {
this.period = period;
this.buf = new DoubleBuffer(period);
value = Double.NaN;
}
public void reset() {
buf.clear();
value = Double.NaN;
}
public int getPeriod() {
return period;
}
public double update(long t, double v) {
if (v == v) {
buf.push(v);
}
if (buf.isFull()) {
value = buf.mean();
}
return value;
}
public double get() {
return value;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("MA [value=");
sb.append(get());
sb.append(", period=");
sb.append(period);
sb.append("]");
return sb.toString();
}
}