Module: Indicators

Included in:
RTALib
Defined in:
lib/moving_average.rb

Instance Method Summary collapse

Instance Method Details

#ma(values, options = {}) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/moving_average.rb', line 2

def ma(values, options={})
	opts = {:period => 5}.merge(options)

 	return nil if opts[:period] > values.size

 	ma = []
 	result = []
 	sum = 0
 	values.each do |value|
 		leaving_value = ma.length == opts[:period] ? ma.shift : 0
 		sum += value - leaving_value
 		ma << value
 		result << { :value => value, :ma => ma.length == opts[:period] ? sum/opts[:period] : 0 }
 	end

   result
end