Skip to content

Bitcoin price api to calculate statistics on spot prices across exchanges.

License

Notifications You must be signed in to change notification settings

jxm262/btc-stats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 - use only these 3 exchanges
btcstats.exchanges(["bitfinex", "bitstamp", "okcoin"]);

Quick Examples

var btcstats = require("btc-stats");

//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 } 
});

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 :)

About

Bitcoin price api to calculate statistics on spot prices across exchanges.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published