alpha-vantage-data-source
v2.3.1
Published
[![Known Vulnerabilities](https://snyk.io/test/github/Skitionek/alpha-vantage-data-source/badge.svg?targetFile=package.json)](https://snyk.io/test/github/Skitionek/alpha-vantage-data-source?targetFile=package.json) [![Intergation test](https://github.com/
Downloads
20
Maintainers
Readme
AlphaVantage
This is a simple wrapper around the Alpha Vantage API hosted on NPM. I have no affiliation with AlphaVantage.
Contents
Installation
npm i alpha-vantage-data-source
Usage
The library is initialised in straight forward manner by simply providing AlphaVantage access key:
const alpha = require('alpha-vantage-data-source')({ key: 'demo' });
This access key might be set by environmental variable 'AV_KEY' if needed.
Once this library ins initialised, data can be accessed by navigating to functions corresponding to AlphaVantage API:
alpha.data.intraday(`msft`)
alpha.data.batch([`msft`, `aapl`])
alpha.forex.rate('btc', 'usd')
alpha.crypto.daily('btc', 'usd')
alpha.technical.sma(`msft`, `daily`, 60, `close`)
alpha.performance.sector()
Whole list of available functions is as follows"
Data
See Alpha Vantage for the parameters.
alpha.data.intraday(symbol, outputsize, datatype, interval)
alpha.data.daily(symbol, outputsize, datatype, interval)
alpha.data.daily_adjusted(symbol, outputsize, datatype, interval)
alpha.data.weekly(symbol, outputsize, datatype, interval)
alpha.data.weekly_adjusted(symbol, outputsize, datatype, interval)
alpha.data.monthly(symbol, outputsize, datatype, interval)
alpha.data.monthly_adjusted(symbol, outputsize, datatype, interval)
alpha.data.quote(symbol, outputsize, datatype, interval)
alpha.data.search(keywords)
alpha.data.batch([symbol1, symbol2..])
Forex
See Alpha Vantage for the parameters.
alpha.forex.rate(from_currency, to_currency)
Crypto
See Alpha Vantage for the parameters.
alpha.crypto.daily(symbol, market)
alpha.crypto.weekly(symbol, market)
alpha.crypto.monthly(symbol, market)
Technicals
See Alpha Vantage for the parameters.
alpha.technical.sma(symbol, interval, time_period, series_type)
alpha.technical.ema(symbol, interval, time_period, series_type)
alpha.technical.wma(symbol, interval, time_period, series_type)
alpha.technical.dema(symbol, interval, time_period, series_type)
alpha.technical.tema(symbol, interval, time_period, series_type)
alpha.technical.trima(symbol, interval, time_period, series_type)
alpha.technical.kama(symbol, interval, time_period, series_type)
alpha.technical.mama(symbol, interval, series_type, fastlimit, slowlimit)
alpha.technical.t3(symbol, interval, time_period, series_type)
alpha.technical.macd(symbol, interval, series_type, fastperiod, slowperiod, signalperiod)
alpha.technical.macdext(symbol, interval, series_type, fastperiod, slowperiod, signalperiod, fastmatype, slowmatype, signalmatype)
alpha.technical.stoch(symbol, interval, fastkperiod, slowkperiod, slowdperiod, slowkmatype, slowdmatype)
alpha.technical.stochf(symbol, interval, fastkperiod, fastdperiod, fastdmatype)
alpha.technical.rsi(symbol, interval, time_period, series_type)
alpha.technical.stochrsi(symbol, interval, time_period, series_type, fastkperiod, slowdperiod, fastdmatype)
alpha.technical.willr(symbol, interval, time_period)
alpha.technical.adx(symbol, interval, time_period)
alpha.technical.adxr(symbol, interval, time_period)
alpha.technical.apo(symbol, interval, series_type, fastperiod, slowperiod, matype)
alpha.technical.ppo(symbol, interval, series_type, fastperiod, slowperiod, matype)
alpha.technical.mom(symbol, interval, time_period, series_type)
alpha.technical.bop(symbol, interval)
alpha.technical.cci(symbol, interval, time_period)
alpha.technical.cmo(symbol, interval, time_period, series_type)
alpha.technical.roc(symbol, interval, time_period, series_type)
alpha.technical.rocr(symbol, interval, time_period, series_type)
alpha.technical.aroon(symbol, interval, time_period)
alpha.technical.aroonosc(symbol, interval, time_period)
alpha.technical.mfi(symbol, interval, time_period)
alpha.technical.trix(symbol, interval, time_period, series_type)
alpha.technical.ultosc(symbol, interval, timeperiod1, timeperiod2, timeperiod3)
alpha.technical.dx(symbol, interval, time_period)
alpha.technical.minus_di(symbol, interval, time_period)
alpha.technical.plus_di(symbol, interval, time_period)
alpha.technical.minus_dm(symbol, interval, time_period)
alpha.technical.plus_dm(symbol, interval, time_period)
alpha.technical.bbands(symbol, interval, time_period, series_type, nbdevup, nbdevdn)
alpha.technical.midpoint(symbol, interval, time_period, series_type)
alpha.technical.midprice(symbol, interval, time_period)
alpha.technical.sar(symbol, interval, acceleration, maximum)
alpha.technical.trange(symbol, interval)
alpha.technical.atr(symbol, interval, time_period)
alpha.technical.natr(symbol, interval, time_period)
alpha.technical.ad(symbol, interval)
alpha.technical.adosc(symbol, interval, fastperiod, slowperiod)
alpha.technical.obv(symbol, interval)
alpha.technical.ht_trendline(symbol, interval, series_type)
alpha.technical.ht_sine(symbol, interval, series_type)
alpha.technical.ht_trendmode(symbol, interval, series_type)
alpha.technical.ht_dcperiod(symbol, interval, series_type)
alpha.technical.ht_dcphase(symbol, interval, series_type)
alpha.technical.ht_dcphasor(symbol, interval, series_type)
Performance
See Alpha Vantage for the parameters.
alpha.performance.sector()
Util
Data polishing
- Rewrite data keys to be consistent across all api calls. This is an optional utility you can use with the result of any api call.
const polished = alpha.util.polish(data);
Coverage
As of time of witting this library gives access you all data provided by AlphaVantage. Including comprehensive tests, unit as well as integration (integration tests are validating response for all queries available when using 'demo' key).
Testing
This package implements extensive testing, which is used to validate all functionally and also that this package remains up to date with currently exposed version of AlphaVantage API. Automatic cron job runs integration tests every day to keep track if API did not change.
Mocking
Additionally this project also exposes internally used testing mocks.
const alpha_mocks = require('alpha-vantage-data-source/mocks')
Data structure overview
For ease of integration structure of underlying data is summarised in autogenerated file 'ApiTree.json'.
Contributing
All contributions are welcome! This is an open source project under the MIT license, see LICENSE.md for additional information.
Credits
Core has been forked from:
- Author: Zack Urben
- Twitter: https://twitter.com/zackurben (better)
- Contact: [email protected] yet greatest part in common is it's structure. Current version support full API coverage, requests cache and non duck-typed keys normalisation.