simpleMovingAverage function

List<double> simpleMovingAverage(
  1. List<num> values,
  2. int size
)

Simple moving average of values over window size.

Implementation

List<double> simpleMovingAverage(List<num> values, int size) {
  if (size < 1 || values.length < size) return <double>[];
  final List<double> out = <double>[];
  double sum = 0;
  for (int i = 0; i < size; i++) {
    sum += values[i].toDouble();
  }
  out.add(sum / size);
  for (int i = size; i < values.length; i++) {
    sum = sum - values[i - size].toDouble() + values[i].toDouble();
    out.add(sum / size);
  }
  return out;
}