Skip to content

Instantly share code, notes, and snippets.

@troyscott
Last active December 21, 2017 06:23
Show Gist options
  • Save troyscott/36c1f18e8ca767dccac9e1d1645cfe00 to your computer and use it in GitHub Desktop.
Save troyscott/36c1f18e8ca767dccac9e1d1645cfe00 to your computer and use it in GitHub Desktop.
Binance API Example using Node.
const Promise = require('promise');
const binance = require('node-binance-api');
const jsonfile = require('jsonfile');
binance.options({
'APIKEY':'xxxxxx',
'APISECRET':'xxxxx'
});
// Binance Candlestick Promise
var binanceCandlesticks = function(item, timeFrame) {
return new Promise(
function (resolve, reject) {
binance.candlesticks(item, timeFrame, function(ticks, symbol) {
var data = [];
ticks.forEach(function(item, index){
var stock = {};
stock.indexId = index + 1;
stock.timeFrame = timeFrame;
stock.stockPair = symbol;
stock.openDate = new Date(item[0]).toLocaleDateString();
stock.openTime = new Date(item[0]).toLocaleTimeString();
stock.open = item[1];
stock.high = item[2];
stock.low = item[3];
stock.close = item[4];
stock.volume = item[5];
stock.closeDate = new Date(item[6]).toLocaleDateString();
stock.closeTime = new Date(item[6]).toLocaleTimeString();
data.push(stock);
});
resolve(data);
});
});
}
var fileFolder = './data/';
var tickers = ['BNBBTC', 'LTCBTC', 'XRPBTC', 'MANABTC', 'TRXBTC'];
function writeCandleStick(timeFrame,tickers, fileFolder) {
var stocks = []
var totalTickers = tickers.length;
var stockCounter = 0;
tickers.forEach(function(item,index){
binanceCandlesticks(item, timeFrame)
.then(function(data){
console.log(timeFrame + ' - ' + data.length + ' rows for ' + item);
stocks.push(data);
stockCounter = stockCounter + 1;
if (stockCounter == totalTickers) {
console.log('write file ...');
var filePath = fileFolder + 'cs' + timeFrame + '.json';
jsonfile.writeFile(filePath, stocks, function (err) {
if (err) {
console.error(err);
} else {
console.log('OK - ' + timeFrame);
}
});
}
});
});
};
// Create files for different time intervals
writeCandleStick('1M',tickers, fileFolder);
writeCandleStick('1d',tickers, fileFolder);
writeCandleStick('2h',tickers, fileFolder);
writeCandleStick('5m',tickers, fileFolder);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment