class Alphavantage::Indicator
Constants
- MOVING_AVERAGE_TYPES
Public Class Methods
new(symbol:,interval:)
click to toggle source
# File lib/alphavantage/indicator.rb, line 5 def initialize(symbol:,interval:) @symbol = symbol @interval = interval end
Public Instance Methods
adosc(fastperiod: 3, slowperiod: 10)
click to toggle source
# File lib/alphavantage/indicator.rb, line 169 def adosc(fastperiod: 3, slowperiod: 10) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), fastperiod: validate_integer(label: 'fastperiod', value: fastperiod), slowperiod: validate_integer(label: 'slowperiod', value: slowperiod) }) end
apo(series_type:, fastperiod: 12, slowperiod: 26, matype: 'sma')
click to toggle source
# File lib/alphavantage/indicator.rb, line 193 def apo(series_type:, fastperiod: 12, slowperiod: 26, matype: 'sma') Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), series_type: validate_series_type(series_type), fastperiod: validate_integer(label: 'fastperiod', value: fastperiod), slowperiod: validate_integer(label: 'slowperiod', value: slowperiod), matype: validate_mat(MOVING_AVERAGE_TYPES[matype.to_sym]) }) end
Also aliased as: ppo
bbands(time_period:, series_type:, nbdevup: 2, nbdevdn: 2, matype: 'sma')
click to toggle source
# File lib/alphavantage/indicator.rb, line 206 def bbands(time_period:, series_type:, nbdevup: 2, nbdevdn: 2, matype: 'sma') Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), time_period: validate_integer(label: 'time period', value: time_period), series_type: validate_series_type(series_type), nbdevup: validate_integer(label: 'nbdevup', value: nbdevup), nbdevdn: validate_integer(label: 'nbdevdn', value: nbdevdn), matype: validate_mat(MOVING_AVERAGE_TYPES[matype.to_sym]) }) end
ht_trendline(series_type:)
click to toggle source
# File lib/alphavantage/indicator.rb, line 179 def ht_trendline(series_type:) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), series_type: validate_series_type(series_type) }) end
macd(series_type:, fastperiod: 12, slowperiod: 26, signalperiod: 9)
click to toggle source
# File lib/alphavantage/indicator.rb, line 35 def macd(series_type:, fastperiod: 12, slowperiod: 26, signalperiod: 9) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), series_type: validate_series_type(series_type), fastperiod: validate_integer(label: 'fastperiod', value: fastperiod), slowperiod: validate_integer(label: 'slowperiod', value: slowperiod), signalperiod: validate_integer(label: 'signalperiod', value: signalperiod) }) end
macdext( series_type:, fastperiod: 12, slowperiod: 26, signalperiod: 9, fastmatype: 'sma', slowmatype: 'sma', signalmatype: 'sma' )
click to toggle source
# File lib/alphavantage/indicator.rb, line 59 def macdext( series_type:, fastperiod: 12, slowperiod: 26, signalperiod: 9, fastmatype: 'sma', slowmatype: 'sma', signalmatype: 'sma' ) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), series_type: validate_series_type(series_type), fastperiod: validate_integer(label: 'fastperiod', value: fastperiod), slowperiod: validate_integer(label: 'slowperiod', value: slowperiod), signalperiod: validate_integer(label: 'signalperiod', value: signalperiod), fastmatype: validate_mat(MOVING_AVERAGE_TYPES[fastmatype.to_sym]), slowmatype: validate_mat(MOVING_AVERAGE_TYPES[slowmatype.to_sym]), signalmatype: validate_mat(MOVING_AVERAGE_TYPES[signalmatype.to_sym]) }) end
sar(acceleration: 0.01, maximum: 0.20)
click to toggle source
# File lib/alphavantage/indicator.rb, line 219 def sar(acceleration: 0.01, maximum: 0.20) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), acceleration: validate_integer(label: 'acceleration', value: acceleration), maximum: validate_integer(label: 'maximum', value: maximum) }) end
sma(time_period:,series_type:)
click to toggle source
# File lib/alphavantage/indicator.rb, line 10 def sma(time_period:,series_type:) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), time_period: validate_integer(label: 'time period', value: time_period), series_type: validate_series_type(series_type) }) end
stoch( fastkperiod: 5, slowkperiod: 3, slowdperiod: 3, slowkmatype: 'sma', slowdmatype: 'sma' )
click to toggle source
# File lib/alphavantage/indicator.rb, line 82 def stoch( fastkperiod: 5, slowkperiod: 3, slowdperiod: 3, slowkmatype: 'sma', slowdmatype: 'sma' ) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), fastkperiod: validate_integer(label: 'fastkperiod', value: fastkperiod), slowkperiod: validate_integer(label: 'slowkperiod', value: slowkperiod), slowdperiod: validate_integer(label: 'slowdperiod', value: slowdperiod), slowkmatype: validate_mat(MOVING_AVERAGE_TYPES[slowkmatype.to_sym]), slowdmatype: validate_mat(MOVING_AVERAGE_TYPES[slowdmatype.to_sym]) }) end
stochf( fastkperiod: 5, fastdperiod: 3, fastdmatype: 'sma' )
click to toggle source
# File lib/alphavantage/indicator.rb, line 101 def stochf( fastkperiod: 5, fastdperiod: 3, fastdmatype: 'sma' ) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), fastkperiod: validate_integer(label: 'fastkperiod', value: fastkperiod), fastdperiod: validate_integer(label: 'fastdperiod', value: fastdperiod), fastdmatype: validate_mat(MOVING_AVERAGE_TYPES[fastdmatype.to_sym]) }) end
stochrsi( time_period:, series_type:, fastkperiod: 5, fastdperiod: 3, fastdmatype: 'sma' )
click to toggle source
# File lib/alphavantage/indicator.rb, line 116 def stochrsi( time_period:, series_type:, fastkperiod: 5, fastdperiod: 3, fastdmatype: 'sma' ) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), time_period: validate_integer(label: 'time period', value: time_period), series_type: validate_series_type(series_type), fastkperiod: validate_integer(label: 'fastkperiod', value: fastkperiod), fastdperiod: validate_integer(label: 'fastdperiod', value: fastdperiod), fastdmatype: validate_mat(MOVING_AVERAGE_TYPES[fastdmatype.to_sym]) }) end
ultosc(timeperiod1: 7, timeperiod2: 14, timeperiod3: 28)
click to toggle source
# File lib/alphavantage/indicator.rb, line 229 def ultosc(timeperiod1: 7, timeperiod2: 14, timeperiod3: 28) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), timeperiod1: validate_integer(label: 'timeperiod1', value: timeperiod1), timeperiod2: validate_integer(label: 'timeperiod2', value: timeperiod2), timeperiod3: validate_integer(label: 'timeperiod3', value: timeperiod3) }) end
vwap()
click to toggle source
# File lib/alphavantage/indicator.rb, line 157 def vwap Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: [:bop,:trange,:ad,:obv].include?(__callee__) ? validate_indicator_interval(@interval) : validate_interval(@interval) }) end
willr(time_period:)
click to toggle source
# File lib/alphavantage/indicator.rb, line 135 def willr(time_period:) Client.get(params: { function: __callee__.upcase, symbol: @symbol, interval: validate_indicator_interval(@interval), time_period: validate_integer(label: 'time period', value: time_period) }) end