Neatly Prepared Mustache

    alpha-vantage-data-source

    2.3.1 • Public • Published

    AlphaVantage

    Known Vulnerabilities Intergation test CI

    This is a simple wrapper around the Alpha Vantage API hosted on NPM. I have no affiliation with AlphaVantage.

    Contents

    1. Installation
    2. Usage
    3. Coverage
    4. Testing
    5. Mocking
    6. Data structure overview
    7. Contributing
    8. Credits

    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: zackurben@gmail.com yet greatest part in common is it's structure. Current version support full API coverage, requests cache and non duck-typed keys normalisation.

    Install

    npm i alpha-vantage-data-source

    DownloadsWeekly Downloads

    2

    Version

    2.3.1

    License

    MIT

    Unpacked Size

    259 kB

    Total Files

    119

    Last publish

    Collaborators

    • skitionek