class SignalTools::Technicals::AverageTrueRange
Constants
- DEFAULT_PERIOD
Attributes
period[R]
stock_data[R]
Public Class Methods
new(stock_data, period)
click to toggle source
# File lib/signal_tools/technicals/average_true_range.rb, line 13 def initialize(stock_data, period) @period = period @stock_data = stock_data end
Public Instance Methods
average_true_ranges()
click to toggle source
Takes a smoothing period and historical data and calculates the average true ranges.
# File lib/signal_tools/technicals/average_true_range.rb, line 24 def average_true_ranges trs = true_ranges(stock_data) atrs = [default_simple_average(trs.slice!(0...DEFAULT_PERIOD), DEFAULT_PERIOD)] trs.each { |tr| atrs << calculate_average_true_range(atrs.last, tr, period) } atrs end
calculate()
click to toggle source
# File lib/signal_tools/technicals/average_true_range.rb, line 18 def calculate average_true_ranges end
calculate_average_true_range(yesterday_atr, today_tr, period)
click to toggle source
Takes yesterday’s average true range, today’s true range, and the smoothing period and calculates the day’s average true range.
# File lib/signal_tools/technicals/average_true_range.rb, line 33 def calculate_average_true_range(yesterday_atr, today_tr, period) (yesterday_atr * (period - 1) + today_tr) / period end