AlphavantageRB Gem Version

Alpha Vantage is a great API for retrieving Stock market data in JSON or CSV format. AlphavantageRB is a Gem to use Alpha Vantage with Ruby. AlphavantageRB is based on the HTTP API of Alpha Vantage.

To install AlphavantageRB: gem install alphavantagerb

To use it in your application: require "alphavantagerb"

Classes

AlphavantateRB has the following classes:

Alphavantage::Client

Alphavantage::Client is used to create a client that will be used from the AlphavantageRB to contact the website. To contact Alpha Vantage you need to use a valid key that you can require from here.

To setup your credentials use:

client = Alphavantage::Client.new key: "YOURKEY"

If you want to see the request that the client will do to Alpha Vantage you can setup verbose equal to true.

client.verbose = true # You can setup this during the initialization too

Alphavantage::Stock

Alphavantage::Stock is used to create a stock class to manage future retrieving of timeseries or technical indicators.

To create a new Stock class you can use a client or you can create it directly. These two creation commands are equivalent:

stock = client.stock symbol: "MSFT"
stock = Alphavantage::Stock.new symbol: "MSFT", key: "YOURKEY"

Note that the initialization owns different entry:

  • symbol: it is a string that denote the stock you want to retrieve.
  • key: authentication key. This value cannot be setup if you are initializing a Stock class from a client
  • verbose: used to see the request to Alpha Vantage (default false). This value cannot be setup if you are initializing a timeseries from a stock
  • datatype: it can be "json" or "csv" (default "json")

You can setup the datatype of future retrieving by doing:

stock.datatype = "csv"

Alphavantage::Timeseries

Alphavantage::Timeseries is used to retrieve historical data. To create a new Timeseries class you can use a Stock class or you can create it directly. These two creation commands are equivalent:

timeseries = stock.timeseries
timeseries = Alphavantage::Timeseries.new symbol: "MSFT", key: "YOURKEY"

Note that the initialization owns different entries:

  • symbol: it is a string that denote the stock you want to retrieve. This value cannot be setup if you are initializing a timeseries from a stock
  • key: authentication key. This value cannot be setup if you are initializing a timeseries from a stock
  • verbose: used to see the request to Alpha Vantage (default false). This value cannot be setup if you are initializing a timeseries from a stock
  • type: it can be "intraday", "daily", "weekly", "monthly" (default "daily")
  • adjusted: a boolean value, it returns adjusted values (default false)
  • interval: it can be "1min", "5min", "15min", "30min", or "60min". It is used only if type is "intraday" (default nil)
  • outputsize: it can be "compact", or "full" (default "compact")
  • datatype: it can be "json" or "csv" (default "json")
  • file: path where a csv file should be saved (default "nil")

You can retrieve all the output from Alpha Vantage by doing.

  timeseries.hash

Specific information about the timeseries can be retrieved using the following methods:

  timeseries.information # Retrieve information about the timeseries
  timeseries.symbol # Symbol used by the timeseries
  timeseries.last_refreshed # A timestamp that show when last time the data were refreshed
  timeseries.output_size # Size of the output
  timeseries.time_zone # Time zone of the timeseries

Specific data can be retrieved using the following methods. These methods will return an array of couples where the first entry is a timestamp and the second one is the value of the stock at the timestamp.

  timeseries.open
  timeseries.close
  timeseries.high
  timeseries.low
  timeseries.volume
  timeseries.adjusted_close # Available only if adjusted is true
  timeseries.dividend_amount # Available only if adjusted is true
  timeseries.split_coefficient # Available only if adjusted is true

You can order the data in ascending or descending order.

  timeseries.open("desc") # Default
  timeseries.open("asc")

Alphavantage::Batch

Alphavantage::Batch is used to retrieve the last updated values of multiple stocks. To create a new Batch class you can use a Client class or you can create it directly. These two creation commands are equivalent:

batch = client.batch symbols: ["MSFT", "FB", "AAPL"]
batch = Alphavantage::Batch.new symbols: ["MSFT", "FB", "AAPL"], key: "YOURKEY"

Note that the initialization owns different entries:

  • symbols: it is an array of string that denote the stocks you want to retrieve.
  • key: authentication key. This value cannot be setup if you are initializing a batch from a client
  • verbose: used to see the request to Alpha Vantage (default false). This value cannot be setup if you are initializing a batch from a client
  • datatype: it can be "json" or "csv" (default "json")
  • file: path where a csv file should be saved (default "nil")

You can retrieve all the output from Alpha Vantage by doing.

  batch.hash

The array of the stocks is found by using:

  batch.stock_quotes

Specific information about the batch can be retrieved using the following methods:

  batch.information # Retrieve information about the batch
  batch.symbols # Symbols used by the batch
  batch.notes # Generic notes of the batch
  batch.time_zone # Time zone of the batch

Alphavantage::Indicator

Alphavantage::Indicator is for using technical indicator. To create a new Indicator class you can use a Stock class or you can create it directly. These two creation commands are equivalent:

indicator = stock.indicator function: "SMA"
indicator = Alphavantage::Indicator.new function: "SMA", symbol: "MSFT", key: "YOURKEY"

Note that the initialization owns different entries (for deeper explanation on the parameters, please consult the Alpha Vantage documentation). Some of these parameters are necessary for each functions.

  • symbol: it is a string that denote the stock you want to retrieve. This value cannot be setup if you are initializing a timeseries from a stock
  • key: authentication key. This value cannot be setup if you are initializing a timeseries from a stock
  • verbose: used to see the request to Alpha Vantage (default false). This value cannot be setup if you are initializing a timeseries from a stock
  • function: denote the type of function that you want to use. It can be "SMA", "EMA", "WMA", "DEMA", "TEMA", "TRIMA", "KAMA", "T3", "RSI","MAMA", "MACD", "MACDEXT", "STOCH", "STOCHF", "STOCHRSI", "WILLR", "ADX", "ADXR", "APO", "PPO", "MOM", "BOP", "CCI", "CMO", "ROC", "ROCR", "AROON", "AROONOSC", "MFI", "TRIX", "ULTOSC", "DX", "MINUS_DI", "PLUS_DI", "MINUS_DM", "PLUS_DM", "BBANDS", "MIDPOINT", "MIDPRICE", "SAR", "TRANGE", "ATR", "NATR", "AD", "ADOSC", "OBV", "HT_SINE", "HT_TRENDLINE", "HT_TRENDMODE", "HT_DCPERIOD", "HT_DCPHASE", or "HT_PHASOR".
  • interval: it can be "1min", "5min", "15min", "30min", "60min", "daily", "weekly", or "monthly" (default "daily").

Others are used only for some functions.

  • time_period: it can be a positive integer (default "60"). These functions support this attribute: "SMA", "EMA", "WMA", "DEMA", "TEMA", "TRIMA", "KAMA", "T3", "RSI", "STOCHRSI", "WILLR", "ADX", "ADXR", "MOM", "CCI", "CMO", "ROC", "ROCR", "AROON", "AROONOSC", "MFI", "TRIX", "DX", "MINUS_DI", "PLUS_DI", "MINUS_DM", "PLUS_DM", "BBANDS", "MIDPOINT", "MIDPRICE", "ATR", "NATR"
  • series_type: it can be "close", "open", "high", "low" (default "close"). These functions support this attribute: "SMA", "EMA", "WMA", "DEMA", "TEMA", "TRIMA", "KAMA", "T3", "RSI", "MAMA", "MACD", "MACDEXT", "STOCHRSI", "APO", "PPO", "MOM", "ROC", "ROCR", "TRIX", "BBANDS", "MIDPOINT", "HT_SINE", "HT_TRENDLINE", "HT_TRENDMODE", "HT_DCPERIOD", "HT_DCPHASE", "HT_PHASOR", "CMO"

Others are even more specific for the function used. These are in general of three type: positive integer parameters, positive float parameters and MA parameters. The MA parameters accept as an entry one of these attributes: "0", "1", "2", "3", "4", "5", "6", "7", "8", "SMA", "EMA", "WMA", "DEMA", "TEMA", "TRIMA", "T3", "KAMA", or "MAMA".

Each indicator has several methods that can use in relation of the type. Some are used for each indicator.

indicator = stock.indicator(function: "SMA", interval: "weekly", time_period: "60", series_type: "close")
indicator.hash # Retrieve the output from Alpha vantage
indicator.symbol
indicator.interval
indicator.indicator
indicator.last_refreshed
indicator.time_zone

Some other are more specific in relation of the type of indicator used.

indicator.time_period # time_period is only supported by "SMA", "EMA", "WMA", "DEMA", "TEMA", "TRIMA", "KAMA", "T3", "RSI", "STOCHRSI", "WILLR", "ADX", "ADXR", "MOM", "CCI", "CMO", "ROC", "ROCR", "AROON", "AROONOSC", "MFI", "TRIX", "DX", "MINUS_DI", "PLUS_DI", "MINUS_DM", "PLUS_DM", "BBANDS", "MIDPOINT", "MIDPRICE", "ATR","NATR"
indicator.series_type # series_type is only supported by "SMA", "EMA", "WMA", "DEMA", "TEMA", "TRIMA", "KAMA", "T3", "RSI", "MAMA", "MACD", "MACDEXT", "STOCHRSI", "APO", "PPO", "MOM", "ROC","ROCR", "TRIX", "BBANDS", "MIDPOINT", "HT_SINE", "HT_TRENDLINE",  "HT_TRENDMODE", "HT_DCPERIOD", "HT_DCPHASE", "HT_PHASOR", "CMO"

Then there are really specific indicator, for only some functions.

SMA

indicator = stock.indicator(function: "SMA", interval: "weekly", time_period: "60", series_type: "close")
indicator.sma

EMA

indicator = stock.indicator(function: "EMA", interval: "weekly", time_period: "60", series_type: "close")
indicator.ema

WMA

indicator = stock.indicator(function: "WMA", interval: "weekly", time_period: "60", series_type: "close")
indicator.wma

DEMA

indicator = stock.indicator(function: "DEMA", interval: "weekly", time_period: "60", series_type: "close")
indicator.dema

TEMA

indicator = stock.indicator(function: "TEMA", interval: "weekly", time_period: "60", series_type: "close")
indicator.tema

TRIMA

indicator = stock.indicator(function: "TRIMA", interval: "weekly", time_period: "60", series_type: "close")
indicator.trima

KAMA

indicator = stock.indicator(function: "KAMA", interval: "weekly", time_period: "60", series_type: "close")
indicator.kama

MAMA

  • fastlimit: it can be a positive float (default "0.01")
  • slowlimit: it can be a positive float (default "0.01")
indicator = stock.indicator(function: "MAMA", interval: "weekly", series_type: "close", fastlimit: "0.02", slowlimit: "0.01")
indicator.fast_limit
indicator.slow_limit
indicator.fama
indicator.mama

T3

indicator = stock.indicator(function: "T3", interval: "weekly", time_period: "60", series_type: "close")
indicator.t3

MACD

  • fastperiod: it can be a positive integer (default "12")
  • slowperiod: it can be a positive integer (default "26")
  • signalperiod: it can be a positive integer (default "9")
indicator = stock.indicator(function: "MACD", interval: "weekly",  time_period: "60", series_type: "close", fastperiod: "12", slowperiod: "26", signalperiod: "9")
indicator.fast_period
indicator.slow_period
indicator.signal_period
indicator.macd_signal
indicator.macd_hist
indicator.macd

MACDEXT

  • fastperiod: it can be a positive integer (default "12")
  • slowperiod: it can be a positive integer (default "26")
  • signalperiod: it can be a positive integer (default "9")
  • fastmatype: it is a MA parameter (default "0")
  • slowmatype: it is a MA parameter (default "0")
  • signalmatype: it is a MA parameter (default "0")
indicator = stock.indicator(function: "MACDEXT", interval: "weekly",  time_period: "60", series_type: "close", fastperiod: "12", slowperiod: "26", signalperiod: "9", fastmatype: "0", slowmatype: "0", signalmatype: "0")
indicator.fast_period
indicator.slow_period
indicator.signal_period
indicator.signal_ma_type
indicator.fast_ma_type
indicator.slow_ma_type
indicator.macd_signal
indicator.macd_hist
indicator.macd

STOCH

  • fastkperiod: it can be a positive integer (default "5")
  • slowkperiod: it can be a positive integer (default "3")
  • slowdperiod: it can be a positive integer (default "3")
  • slowkmatype: it is a MA parameter (default "0")
  • slowdmatype: it is a MA parameter (default "0")
indicator = stock.indicator(function: "STOCH", interval: "weekly", fastkperiod: "5", slowkperiod: "3", slowdperiod: "3", slowkmatype: "0", slowdmatype: "0")
indicator.fastk_period
indicator.slowk_period
indicator.slowk_ma_type
indicator.slowd_period
indicator.slowd_ma_type
indicator.slowk
indicator.slowd

STOCHF

  • fastkperiod: it can be a positive integer (default "5")
  • fastdperiod: it can be a positive integer (default "3")
  • fastdmatype: it is a MA parameter (default "0")
indicator = stock.indicator(function: "STOCHF", interval: "weekly", fastkperiod: "5", fastdperiod: "3", fastdmatype: "0")
indicator.fastk_period
indicator.fastd_period
indicator.fastd_ma_type
indicator.fastk
indicator.fastd

RSI

indicator = stock.indicator(function: "RSI", interval: "weekly", time_period: "60", series_type: "close")
indicator.rsi

STOCHRSI

  • fastkperiod: it can be a positive integer (default "5")
  • fastdperiod: it can be a positive integer (default "3")
  • fastdmatype: it is a MA parameter (default "0")
indicator = stock.indicator(function: "STOCHRSI", interval: "weekly", time_period: "60", fastkperiod: "5", fastdperiod: "3", fastdmatype: "0")
indicator.fastk_period
indicator.fastd_period
indicator.fastd_ma_type
indicator.fastk
indicator.fastd

WILLR

indicator = stock.indicator(function: "WILLR", interval: "weekly", time_period: "60")
indicator.willr

ADX

indicator = stock.indicator(function: "ADX", interval: "weekly", time_period: "60")
indicator.adx

ADXR

indicator = stock.indicator(function: "ADXR", interval: "weekly", time_period: "60")
indicator.adxr

APO

  • fastperiod: it can be a positive integer (default "12")
  • slowperiod: it can be a positive integer (default "26")
  • signalperiod: it can be a positive integer (default "9")
  • matype: it is a MA parameter (default "0")
indicator = stock.indicator(function: "APO", interval: "weekly", series_type: "close", fastperiod: "12", slowperiod: "26", signalperiod: "9", matype: "0")
indicator.fast_period
indicator.slow_period
indicator.ma_type
indicator.apo

PPO

  • fastperiod: it can be a positive integer (default "12")
  • slowperiod: it can be a positive integer (default "26")
  • signalperiod: it can be a positive integer (default "9")
  • matype: it is a MA parameter (default "0")
indicator = stock.indicator(function: "PPO", interval: "weekly", series_type: "close", fastperiod: "12", slowperiod: "26", signalperiod: "9", matype: "0")
indicator.fast_period
indicator.slow_period
indicator.ma_type
indicator.ppo

MOM

indicator = stock.indicator(function: "MOM", interval: "weekly", time_period: "60", series_type: "close")
indicator.mom

BOP

indicator = stock.indicator(function: "MOM", interval: "weekly", time_period: "60", series_type: "close")
indicator.bop

CCI

indicator = stock.indicator(function: "CCI", interval: "weekly", time_period: "60")
indicator.cci

CMO

indicator = stock.indicator(function: "CMO", interval: "weekly", time_period: "60")
indicator.cmo

ROC

indicator = stock.indicator(function: "ROC", interval: "weekly", time_period: "60", series_type: "close")
indicator.roc

ROCR

indicator = stock.indicator(function: "ROCR", interval: "weekly", time_period: "60", series_type: "close")
indicator.rocr

AROON

indicator = stock.indicator(function: "AROON", interval: "weekly", time_period: "60")
indicator.aroon_down
indicator.aroon_up

AROONOSC

indicator = stock.indicator(function: "AROONOSC", interval: "weekly", time_period: "60")
indicator.aroonosc

MFI

indicator = stock.indicator(function: "MFI", interval: "weekly", time_period: "60")
indicator.mfi

TRIX

indicator = stock.indicator(function: "TRIX", interval: "weekly", time_period: "60", series_type: "close")
indicator.trix

ULTOSC

  • timeperiod1: it can be a positive integer (default "7")
  • timeperiod2: it can be a positive integer (default "14")
  • timeperiod3: it can be a positive integer (default "28")
indicator = stock.indicator(function: "ULTOSC", interval: "weekly", timeperiod1: "7", timeperiod2: "14",  timeperiod3: "28")
indicator.time_period_1
indicator.time_period_2
indicator.time_period_3
indicator.ultosc

DX

indicator = stock.indicator(function: "DX", interval: "weekly", time_period: "60")
indicator.dx

MINUS_DI

indicator = stock.indicator(function: "MINUS_DI", interval: "weekly", time_period: "60")
indicator.minus_di

PLUS_DI

indicator = stock.indicator(function: "PLUS_DI", interval: "weekly", time_period: "60")
indicator.plus_di

MINUS_DM

indicator = stock.indicator(function: "PLUS_DI", interval: "weekly", time_period: "60")
indicator.minus_dm

PLUS_DM

indicator = stock.indicator(function: "PLUS_DM", interval: "weekly", time_period: "60", series_type: "close")
indicator.plus_dm

BBANDS

  • matype: it is a MA parameter (default "0")
  • nbdevup: it can be a positive integer (default "2")
  • nbdevdn: it can be a positive integer (default "2")
indicator = stock.indicator(function: "BBANDS", interval: "weekly", time_period: "60", series_type: "close", matype: "0", nbdevup: "2", nbdevdn: "2")
indicator.deviation_multiplier_for_upper_band
indicator.deviation_multiplier_for_lower_band
indicator.ma_type
indicator.real_lower_band
indicator.real_middle_band
indicator.real_upper_band

MIDPOINT

indicator = stock.indicator(function: "MIDPOINT", interval: "weekly", time_period: "60", series_type: "close")
indicator.midpoint

MIDPRICE

indicator = stock.indicator(function: "MIDPRICE", interval: "weekly", time_period: "60", series_type: "close")
indicator.midprice

SAR

  • acceleration: it can be a positive float (default "0.01")
  • maximum: it can be a positive float (default "0.20")
indicator = stock.indicator(function: "SAR", interval: "weekly", acceleration: "0.01", maximum: "0.20")
indicator.acceleration
indicator.maximum
indicator.sar

TRANGE

indicator = stock.indicator(function: "TRANGE", interval: "weekly")
indicator.trange

ATR

indicator = stock.indicator(function: "ATR", interval: "weekly", time_period: "60")
indicator.atr

NATR

indicator = stock.indicator(function: "NATR", interval: "weekly", time_period: "60")
indicator.natr
indicator = stock.indicator(function: "AD", interval: "weekly")
indicator.chaikin_ad

ADOSC

  • fastperiod: it can be a positive integer (default "12")
  • slowperiod: it can be a positive integer (default "26")
indicator = stock.indicator(function: "ADOSC", interval: "weekly", fastperiod: "12", slowperiod: "26")
indicator.fastk_period
indicator.slowk_period
indicator.adosc

OBV

indicator = stock.indicator(function: "OBV", interval: "weekly")
indicator.obv

HT_TRENDLINE

indicator = stock.indicator(function: "HT_TRENDLINE", interval: "weekly", time_period: "60", series_type: "close")
indicator.ht_trendline

HT_SINE

indicator = stock.indicator(function: "HT_SINE", interval: "weekly", series_type: "close")
indicator.sine
indicator.lead_sine

HT_TRENDMODE

indicator = stock.indicator(function: "HT_TRENDMODE", interval: "weekly", series_type: "close")
indicator.trendmode

HT_DCPERIOD

indicator = stock.indicator(function: "HT_DCPERIOD", interval: "weekly", series_type: "close")
indicator.dcperiod

HT_DCPHASE

indicator = stock.indicator(function: "EMA", interval: "weekly", series_type: "close")
indicator.ht_dcphase

HT_PHASOR

indicator = stock.indicator(function: "HT_PHASOR", interval: "weekly", series_type: "close")
indicator.quadrature
indicator.phase

Alphavantage::Crypto

Alphavantage::Crypto is used to create a Crypto class to manage future retrieving of timeseries of Cryptocurrency.

To create a new Crypto class you can use a client or you can create it directly. These two creation commands are equivalent:

crypto = client.crypto symbol: "BTC", market: "DKK"
crypto = Alphavantage::Crypto.new symbol: "BTC", market: "DKK", key: "YOURKEY"

Note that the initialization owns different entry:

  • symbol: it is a string that denote the cryptocurrency you want to retrieve.
  • market: denote the market where you want to analyze the cryptocurrency
  • key: authentication key. This value cannot be setup if you are initializing a Stock class from a client
  • verbose: used to see the request to Alpha Vantage (default false). This value cannot be setup if you are initializing a timeseries from a stock
  • datatype: it can be "json" or "csv" (default "json")

You can setup the datatype of future retrieving by doing:

crypto.datatype = "csv"

Alphavantage::Crypto_Timeseries

Alphavantage::Crypto_Timeseries is used to retrieve historical data of a cryptocurrency. To create a new Crypto_Timeseries class you can use a Crypto class or you can create it directly. These two creation commands are equivalent:

crypto_timeseries = crypto.timeseries type: "daily"
crypto_timeseries = Alphavantage::Crypto_Timeseries.new type: "daily", symbol: "BTC", market: "DKK", key: "YOURKEY"

Note that the initialization owns different entries:

  • symbol: it is a string that denote the stock you want to retrieve. This value cannot be setup if you are initializing a timeseries from a crypto class from a crypto class
  • market: it is a string that denote the market you want to analyze. This value cannot be setup if you are initializing a timeseries from a stock
  • key: authentication key. This value cannot be setup if you are initializing a timeseries from a crypto class
  • verbose: used to see the request to Alpha Vantage (default false). This value cannot be setup if you are initializing a timeseries from a stock
  • type: it can be "intraday", "daily", "weekly", "monthly" (default "daily")
  • datatype: it can be "json" or "csv" (default "json")
  • file: path where a csv file should be saved (default "nil")

You can retrieve all the output from Alpha Vantage by doing.

  crypto_timeseries.hash

Specific information about the timeseries can be retrieved using the following methods:

  crypto_timeseries.information # Retrieve information about the timeseries
  crypto_timeseries.digital_currency_code # Code of the cryptocurrency
  crypto_timeseries.digital_currency_name # Name of the cryptocurrency
  crypto_timeseries.market_code # Code of the analysed market
  crypto_timeseries.market_name # Name of the analysed market
  crypto_timeseries.last_refreshed # A timestamp that show when last time the data were refreshed
  crypto_timeseries.output_size # Size of the output
  crypto_timeseries.time_zone # Time zone of the timeseries

Specific data can be retrieved using the following methods. These methods will return an array of couples where the first entry is a timestampand the second one is the value of the stock at the timestamp. These timeseries return always the corrispective timeseries in relation of the USD market.

  crypto_timeseries.open
  crypto_timeseries.close
  crypto_timeseries.high
  crypto_timeseries.low
  crypto_timeseries.volume
  crypto_timeseries.open_usd
  crypto_timeseries.close_usd
  crypto_timeseries.high_usd
  crypto_timeseries.low_usd
  crypto_timeseries.market_cap_usd

You can order the data in ascending or descending order.

  crypto_timeseries.open("desc") # Default
  crypto_timeseries.open("asc")

Alphavantage::Exchange

You can retrieve the exchange rate between two currencies (even cryptocurrency) by using this class.

To create a new Exchange class you can use a client or you can create it directly. These two creation commands are equivalent:

exchange = client.exchange from: "USD", to: "DKK" # Check the value of a USD dollar in Danish Kr.
exchange = Alphavantage::Exchange.new from: "USD", to: "DKK", key: "YOURKEY"

Note that the initialization owns different entry:

  • from: input currency you want to check the value
  • to: output currency you want to see the value
  • symbol: it is a string that denote the stock you want to retrieve.
  • key: authentication key. This value cannot be setup if you are initializing a Stock class from a client
  • verbose: used to see the request to Alpha Vantage (default false). This value cannot be setup if you are initializing a timeseries from a stock
  • datatype: it can be "json" or "csv" (default "json")

You can retrieve all the output from Alpha Vantage by doing.

  exchange.hash

Other information can be retrieved using the following methods:

  exchange.from_currency_code # Code of the from currency
  exchange.from_currency_name # Name of the from currency
  exchange.to_currency_code  # Code of the to currency
  exchange.to_currency_name # Name of the to currency
  exchange.exchange_rate # Exchange rate between the two currencies
  exchange.information # Retrieve information about the timeseries
  exchange.symbol # Symbol used by the timeseries
  exchange.last_refreshed # A timestamp that show when last time the data were refreshed
  exchange.output_size # Size of the output
  exchange.time_zone # Time zone of the timeseries

Alphavantage::Sector

This class returns the realtime and historical sector performances calculated from S&P500 incumbents.

To create a new Sector class you can use a client or you can create it directly. These two creation commands are equivalent:

sector = client.sector
sector = Alphavantage::Sector.new key: "YOURKEY"

Note that the initialization owns different entries:

  • key: authentication key. This value cannot be setup if you are initializing a timeseries from a crypto class

You can retrieve all the output from Alpha Vantage by doing.

  sector.hash

Specific information about the timeseries can be retrieved using the following methods:

  sector.information
  sector.last_refreshed
  sector.real_time_performance
  sector.one_day_performance
  sector.five_day_performance
  sector.one_month_performance
  sector.three_month_performance
  sector.year_to_date_performance
  sector.one_year_performance
  sector.three_year_performance
  sector.five_year_performance
  sector.ten_year_performance

Alphavantage::Error

Errors are handled by this class. You receive errors in the following cases:

  • "Failed request": a request to Alpha Vantage fails
  • "Parsing failed": the parsing of the JSON from Alpha Vantage fails
  • A generic message from Alpha Vantage (for example by using a wrong key, a wrong query or too many requests at once). This message is equal as the one returned from Alpha Vantage API
  • "Failed to save the CSV file": saving the CSV file failed
  • "No file specified where to save the CSV data": you didn't specify a file to save your CSV data
  • "Hash error: No file necessary": you specify a file to do a JSON request
  • "No Time Series found": no timeseries has been retrieved from Alpha Vantage
  • "[method] is undefined for [class]": you try to use a method not existing for the chosen class
  • "Only [list] are supported for [attribute]": the attribute you are using for your request is not valid
  • "Error: [value] is not a correct positive [integer/float]": you are not insering a positive integer or float (a value bigger and different than zero)
  • "Key should be a string": you are trying to use a wrong key

You can retrieve more information from your error by using:

  e.message
  e.data # Data retrieved from Alpha vantage or further information to correct the error