UNPKG

preidman-ccxt

Version:

A JavaScript / Python / PHP cryptocurrency trading library with support for 100+ exchanges

96 lines (57 loc) 3.02 kB
"use strict"; 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) } } } } } }) ()