Last active
December 21, 2017 06:23
-
-
Save troyscott/36c1f18e8ca767dccac9e1d1645cfe00 to your computer and use it in GitHub Desktop.
Binance API Example using Node.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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