21 lines
386 B
Text
21 lines
386 B
Text
SMA = object.new
|
|
|
|
SMA.init = { period |
|
|
my.period = period
|
|
my.list = []
|
|
my.average = 0
|
|
}
|
|
|
|
SMA.prototype.add = { num |
|
|
true? my.list.length >= my.period
|
|
{ my.list.deq }
|
|
|
|
my.list << num
|
|
my.average = my.list.reduce(:+) / my.list.length
|
|
}
|
|
|
|
sma3 = SMA.new 3
|
|
sma5 = SMA.new 5
|
|
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1].each { n |
|
|
p n, " - SMA3: ", sma3.add(n), " SMA5: ", sma5.add(n)
|
|
}
|