North Pittsburgh Meatpackers

    btc-stats

    0.0.2 • Public • Published

    btc-stats Build Status

    Bitcoin price api to calculate statistics on spot prices across exchanges. Uses the xchange.js module to retrieve current ticker prices.

    Note!! This is highly in the Alpha stage.

    This project currently supports the following exchanges

    • bitfinex
    • bitstamp
    • okcoin
    • btce
    • bter
    • hitbtc
    • ccex

    Note: these are all using btc-usd

    Download

    The source is available for download from npm or here on github (master branch)

    npm install btc-stats
    

    If preferred, you can specify a range of exchanges by calling the .exchanges() function. Otherwise, the functions will run across all the exchanges mentioned above.

    Example

    btcstats.exchanges(["bitfinex", "bitstamp", "okcoin"]);

    Quick Examples

    var btcstats = require("../lib/btcstats")
     
    //if this line isn't specified, it runs the avg function across all exchanges, not just these 3
    btcstats.exchanges(["bitfinex", "bitstamp", "okcoin"]);
     
    //Example print the average price across 3 exchanges (bitfinex, bitstamp, okcoin)
    btcstats.avg(function(error, resp) {
        if (!error) {
            console.log(resp);
        }
    });  

    Documentation

    All Functions accept a callback argument

    • callback(err, results) - Called when the process completes, or an error occurs.
    ### avg(callback)

    Calculates average midpoint price across exchanges. Midpoint is defined as mid-price between bid vs ask.

    btcstats.avg(function(error, resp) {
        //response format { price: xxx }
    });

    ### weightedAvg(callback)

    Calculates average midpoint price across exchanges, weighted by volume.

    btcstats.weightedAvg(function(error, resp) {
        //response format { price: xxx }
    });

    ### min(callback)

    Calculates the exchange with the minimum price.

    btcstats.min(function(error, resp) {
        //response format { price: xxx , exchange: xxx}
    });

    ### max(callback)

    Calculates the exchange with the maximum price.

    btcstats.max(function(error, resp) {
        //response format { price: xxx , exchange: xxx }
    });

    ### minVolume(callback)

    Calculates the exchange with the minimum volume.

    btcstats.minVolume(function(error, resp) {
        //response format { volume: xxx , exchange: xxx }
    });

    ### maxVolume(callback)

    Calculates the exchange with the maximum volume.

    btcstats.maxVolume(function(error, resp) {
        //response format { volume: xxx , exchange: xxx }
    });

    ### minSpread(callback)

    Calculates minimum spread between all exchanges. Defined as the exchange with the lowest asking price vs the exchange with the highest bidding price. This result may often be a negative number if 1 exchange has a higher bid vs an exchange with a lower ask (potential arbitrage maybe ? :)

    btcstats.minSpread(function(error, resp) {
        //response format { spread: xxx, bid: xxx, ask: xxx, bidExchange: xxx, askExchange: xxx } 
    });

    ### maxSpread(callback)

    Calculates maximum spread between all exchanges. Defined as the exchange with the highest asking price vs the exchange with the lowest bidding price.

    btcstats.maxSpread(function(error, resp) {
        //response format { spread: xxx, bid: xxx, ask: xxx, bidExchange: xxx, askExchange: xxx } 
    });

    ### exchangeMinSpread(callback)

    Calculates the exchange (within the list of exchanges) , with the minimum spread. Defined as the exchange with the highest asking price vs the lowest bidding price.

    btcstats.exchangeMinSpread(function(error, resp) {
        //response format { spread: xxx, bid: xxx, ask: xxx, bidExchange: xxx, askExchange: xxx } 
    });

    ### exchangeMinSpread(callback)

    Calculates the exchange (within the list of exchanges) , with the minimum spread. Defined as the exchange with the highest asking price vs the lowest bidding price.

    btcstats.exchangeMinSpread(function(error, resp) {
        //response format { spread: xxx, bid: xxx, ask: xxx, bidExchange: xxx, askExchange: xxx } 
    });

    Working on btc-stats

    To help work on btc-stats, you'll need to

    • have Node installed.
    • Then clone the repo
    • install dependencies
    git clone https://github.com/jxm262/btc-stats.git
    cd btc-stats
    npm install
    

    To run tests (using mocha chai)

    npm test
    

    About the Project

    This project utilizes my earlier project - xchange.js. Please please feel free to join in and help contribute. I'm also very open to suggestions or code reviews :)

    Install

    npm i btc-stats

    DownloadsWeekly Downloads

    2

    Version

    0.0.2

    License

    MIT

    Last publish

    Collaborators

    • jxm262