Sha256: cffad2f9ad8522c3d9f83b31277c3f83fc51e95cbd39e5ebef2c7608915b9e2f

Contents?: true

Size: 535 Bytes

Versions: 21

Compression:

Stored size: 535 Bytes

Contents

# lib/sqa/indicator/exponential_moving_average.rb

class SQA::Indicator; class << self

  def exponential_moving_average(
        prices, # Array of prices
        period  # Integer number of entries to consider
      )

    ema_values = []
    ema_values << prices.first

    multiplier = (2.0 / (period + 1))

    (1...prices.length).each do |x|
      ema = (prices[x] - ema_values.last) * multiplier + ema_values.last
      ema_values << ema
    end

    ema_values
  end
  alias_method :ema, :exponential_moving_average

end; end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
sqa-0.0.24 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.22 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.21 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.20 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.19 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.18 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.17 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.15 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.14 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.13 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.12 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.11 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.10 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.9 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.8 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.7 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.6 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.5 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.4 lib/sqa/indicator/exponential_moving_average.rb
sqa-0.0.3 lib/sqa/indicator/exponential_moving_average.rb