Back to Ccxt

Exchanges By Volume

wiki/examples/js/exchanges-by-volume.md

4.5.521.4 KB
Original Source
javascript


import ccxt from '../../js/ccxt.js';

(async () => {

   //     const exchanges = [
   //         'bittrex',
   //         'poloniex',
   //         'bitfinex'
   //     ]

   const exchanges = ccxt.exchanges

   const symbol = 'BTC/USDT'
   const tickers = {}
   const volumeField = 'baseVolume'

   console.log ('-----------------------------------------------------------')

   await Promise.all (exchanges.map (exchangeId =>

       new Promise (async (resolve, reject) => {

           try {

               const exchange = new ccxt[exchangeId] ()

               const ticker = await exchange.fetchTicker (symbol)

               if (ticker[volumeField] !== undefined) {
                   tickers[exchangeId] = ticker
               }

           } catch (e) {

               console.log (exchangeId, e.message.slice (0, 100))
           }

           resolve ()

       })

   ))

   console.log ('-----------------------------------------------------------')

   console.log (Object
       .keys (tickers)
       .sort ((a, b) =>
           ((tickers[a][volumeField] > tickers[b][volumeField]) ? 1 : ((tickers[a][volumeField] < tickers[b][volumeField]) ? -1 : 0)))
       .reverse ()
       .map (id => ({
           id,
           symbol,
           'volume': tickers[id][volumeField],
       }))
   )

}) ()