Sha256: 55be1c854261ebb3b425b2a7d877dbefdfcbaaa21c4bb4d2990773a536ecf1b4

Contents?: true

Size: 893 Bytes

Versions: 21

Compression:

Stored size: 893 Bytes

Contents

# lib/sqa/indicator/simple_moving_average_trend.rb

class SQA::Indicator; class << self

  def simple_moving_average_trend(
        prices,           # Array of prices
        period,           # Integer number of entries to consider
        delta = 1.0       # Float defines the angle range(+/-) for :neutral trend
      )
    sma       = simple_moving_average(prices, period)
    last_sma  = sma.last
    prev_sma  = sma.last(period).first
    angle     = Math.atan((last_sma - prev_sma) / period) * (180 / Math::PI)

    trend = if angle > delta
              :up
            elsif angle < -delta
              :down
            else
              :neutral
            end

    {
      sma:    sma,    # Array
      trend:  trend,  # Symbol :up, :down, :neutral
      angle:  angle   # Float how step the trend
    }
  end
  alias_method :sma_trend, :simple_moving_average_trend

end; end

Version data entries

21 entries across 21 versions & 1 rubygems

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