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