preidman-ccxt
Version:
A JavaScript / Python / PHP cryptocurrency trading library with support for 100+ exchanges
96 lines (57 loc) • 3.02 kB
JavaScript
;
const ccxt = require ('../../ccxt.js')
, asTable = require ('as-table')
, log = require ('ololog').configure ({ locate: false })
, verbose = process.argv.includes ('--verbose')
require ('ansicolor').nice
//-----------------------------------------------------------------------------
;(async () => {
const exchanges = {};
const symbols = [ 'ETH/BTC', 'XRP/BTC', 'BTC/USDT' ]
for (let symbol of symbols) {
for (let exchangeId of ccxt.exchanges) {
let exchange = undefined
try { // try creating the exchange instance first and handle errors if any
// check if we have created an instance of this exchange already
exchange = exchanges[exchangeId]
if (exchange === undefined) {
// create the exchange instance
exchange = new ccxt[exchangeId] ({
// add at least some rate-limiting as required by the Manual:
// https://github.com/ccxt/ccxt/wiki/Manual#rate-limit
'enableRateLimit': true,
})
}
exchanges[exchangeId] = exchange // save it for later use
} catch (e) {
log.red ('Could not create exchange', exchangeId + ':', e.constructor.name, e.message)
// uncomment the following line to interrupt program execution on error
// or leave it commented out to do nothing
// process.exit ()
}
if (exchange !== undefined) {
// preload all markets first, as explained in the Manual:
// https://github.com/ccxt/ccxt/wiki/Manual#loading-markets
// add error/exception handling as required by the Manual:
// https://github.com/ccxt/ccxt/wiki/Manual#error-handling
try {
await exchange.loadMarkets ();
} catch (e) {
log.red ('Could not load markets from', exchange.id + ':', e.constructor.name, e.message)
continue; // skip this exchange if markets failed to load
}
for (let symbol of symbols) {
console.log (exchange.id, symbol)
// add error/exception handling as required by the Manual:
// https://github.com/ccxt/ccxt/wiki/Manual#error-handling
try { // try fetching the ticker for a symbol existing with that exchange
const ticker = await exchange.fetchTicker (symbol)
log.green (ticker)
} catch (e) { // catch the error (if any) and handle it or ignore it
log.red ('Could not fetch', symbol, 'ticker from', exchange.id + ':', e.constructor.name, e.message)
}
}
}
}
}
}) ()