bot18
Version:
A high-frequency cryptocurrency trading bot by Zenbot creator @carlos8f
76 lines (50 loc) • 2.08 kB
JavaScript
const asTable = require ('as-table')
, log = require ('ololog').noLocate
, ansi = require ('ansicolor').nice
, ccxt = require ('../../ccxt.js')
let printSupportedExchanges = function () {
log ('Supported exchanges:', ccxt.exchanges.join (', ').green)
}
let printUsage = function () {
log ('Usage: node', process.argv[1], 'exchange'.green, 'symbol'.yellow, '[rateLimit]'.magenta)
printSupportedExchanges ()
}
let printTicker = async (id, symbol, rateLimit = undefined) => {
// check if the exchange is supported by ccxt
let exchangeFound = ccxt.exchanges.indexOf (id) > -1
if (exchangeFound) {
log ('Instantiating', id.green, 'exchange')
// instantiate the exchange by id
let exchange = new ccxt[id] ({ enableRateLimit: true, })
exchange.rateLimit = rateLimit ? rateLimit : exchange.rateLimit
exchange.tokenBucket.refillRate = 1 / exchange.rateLimit
log.green ('Rate limit:', exchange.rateLimit.toString ().bright)
// load all markets from the exchange
let markets = await exchange.loadMarkets ()
if (symbol in exchange.markets) {
while (true) {
const ticker = await exchange.fetchTicker (symbol)
log ('--------------------------------------------------------')
log (exchange.id.green, symbol.yellow, exchange.iso8601 (exchange.milliseconds ()))
log (ccxt.omit (ticker, 'info'))
}
} else {
log.error ('Symbol', symbol.bright, 'not found')
}
} else {
log ('Exchange ' + id.red + ' not found')
printSupportedExchanges ()
}
}
;(async function main () {
if (process.argv.length > 3) {
const id = process.argv[2]
const symbol = process.argv[3].toUpperCase ()
const rateLimit = process.argv[4] ? parseInt (process.argv[4]) : undefined
await printTicker (id, symbol, rateLimit)
} else {
printUsage ()
}
process.exit ()
}) ()
;