Averages/Simple moving average: Difference between revisions

Content added Content deleted
(task description: Improve formatting and add related tasks box)
(→‎{{header|Lua}}: variable period, f renamed to sum and simplified)
Line 2,138: Line 2,138:
=={{header|Lua}}==
=={{header|Lua}}==


<lang lua>do
<lang lua>function sma(period)
local t = {}
local t = {}
function f(a, b, ...) if b then return f(a+b, ...) else return a end end
function sum(a, ...)
if a then return a+sum(...) else return 0 end
function average(n)
end
if #t == 10 then table.remove(t, 1) end
function average(n)
t[#t + 1] = n
if #t == period then table.remove(t, 1) end
return f(unpack(t)) / #t
t[#t + 1] = n
end
return sum(unpack(t)) / #t
end
return average
end
end

for v=1,30 do print(average(v)) end</lang>
sma5 = sma(5)
sma10 = sma(10)
print("SMA 5")
for v=1,15 do print(sma5(v)) end
print("\nSMA 10")
for v=1,15 do print(sma10(v)) end
</lang>


=={{header|Mathematica}} / {{header|Wolfram Language}}==
=={{header|Mathematica}} / {{header|Wolfram Language}}==