mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-09 16:28:06 +00:00
112 lines
2.8 KiB
Markdown
112 lines
2.8 KiB
Markdown
- [Tickers](./examples/js/)
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
import ccxt from '../../js/ccxt.js';
|
|
import asTable from 'as-table';
|
|
import ansicolor from 'ansicolor';
|
|
import ololog from 'ololog';
|
|
|
|
const log = ololog.configure ({ locate: false }), verbose = process.argv.includes ('--verbose');
|
|
|
|
ansicolor.nice
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
let printSupportedExchanges = function () {
|
|
log ('Supported exchanges:', ccxt.exchanges.join (', ').green)
|
|
}
|
|
|
|
let printUsage = function () {
|
|
log ('Usage: node', process.argv[1], 'id'.green, '[symbol]'.yellow)
|
|
printSupportedExchanges ()
|
|
}
|
|
|
|
let printSymbols = function (exchange) {
|
|
log (id.green, 'has', exchange.symbols.length, 'symbols:', exchange.symbols.join (', ').yellow)
|
|
}
|
|
|
|
let sleep = (ms) => new Promise (resolve => setTimeout (resolve, ms))
|
|
|
|
let printTicker = async (exchange, symbol) => {
|
|
let ticker = await exchange.fetchTicker (symbol)
|
|
log (exchange.id.green, symbol.yellow, 'ticker',
|
|
ticker['datetime'],
|
|
'high: ' + ticker['high'],
|
|
'low: ' + ticker['low'],
|
|
'bid: ' + ticker['bid'],
|
|
'ask: ' + ticker['ask'],
|
|
'volume: ' + ticker['baseVolume'])
|
|
return ticker
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
let printTickers = async (id) => {
|
|
|
|
log ('Instantiating', id.green, 'exchange exchange')
|
|
|
|
// instantiate the exchange by id
|
|
let exchange = new ccxt[id] ({ verbose })
|
|
|
|
// load all markets from the exchange
|
|
let markets = await exchange.loadMarkets ()
|
|
|
|
if (process.argv.length > 3) { // if a symbol was supplied, get that symbol only
|
|
|
|
let symbol = process.argv[3]
|
|
|
|
await printTicker (exchange, symbol)
|
|
|
|
} else { // otherwise run through all symbols one by one
|
|
|
|
for (let symbol of exchange.symbols)
|
|
if ((symbol.indexOf ('.d') < 0)) { // skip darkpool symbols
|
|
|
|
const market = exchange.markets[symbol];
|
|
|
|
if (!market['active']) {
|
|
log.red (exchange.id + ' ' + symbol + ' inactive');
|
|
continue;
|
|
}
|
|
|
|
await sleep (exchange.rateLimit)
|
|
await printTicker (exchange, symbol)
|
|
}
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
;(async function main () {
|
|
|
|
if (process.argv.length > 2) {
|
|
|
|
let id = process.argv[2]
|
|
|
|
// check if the exchange is supported by ccxt
|
|
let exchangeFound = ccxt.exchanges.indexOf (id) > -1
|
|
|
|
if (exchangeFound) {
|
|
|
|
await printTickers (id)
|
|
|
|
} else {
|
|
|
|
log ('Exchange ' + id.red + ' not found')
|
|
printUsage ()
|
|
}
|
|
|
|
} else {
|
|
|
|
printUsage ()
|
|
|
|
}
|
|
|
|
process.exit ()
|
|
|
|
}) ()
|
|
|
|
``` |