Simple moving average
Implemented with closures:
func simple_moving_average(period) {
var list = []
var sum = 0
func (number) {
list.append(number)
sum += number
if (list.len > period) {
sum -= list.shift
}
(sum / list.length)
}
}
var ma3 = simple_moving_average(3)
var ma5 = simple_moving_average(5)
for num (1..5, flip(1..5)) {
printf("Next number = %d, SMA_3 = %.3f, SMA_5 = %.1f\n",
num, ma3.call(num), ma5.call(num))
}Implemented as a class:
Output:
Last updated
Was this helpful?