preidman-ccxt
Version:
A JavaScript / Python / PHP cryptocurrency trading library with support for 100+ exchanges
69 lines (46 loc) • 1.77 kB
JavaScript
;
const ccxt = require ('../../ccxt')
, log = require ('ololog').noLocate
, asTable = require ('as-table')
, exchange = new ccxt.bittrex ({
'enableRateLimit': true,
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_API_SECRET',
})
;(async () => {
await exchange.loadMarkets ()
const symbol = 'ETH/BTC'
, market = exchange.markets[symbol]
, startingDate = '2017-01-01T00:00:00'
, now = exchange.milliseconds ()
log.bright.green ('\nFetching history for:', symbol, '\n')
let allOrders = [];
let since = exchange.parse8601 (startingDate)
while (since < now) {
try {
log.bright.blue ('Fetching history for', symbol, 'since', exchange.iso8601 (since))
const orders = await exchange.fetchClosedOrders (symbol, since)
log.green.dim ('Fetched', orders.length, 'orders');
allOrders = allOrders.concat (orders)
if (orders.length) {
const lastOrder = orders[orders.length - 1];
since = lastOrder['timestamp'] + 1;
} else {
break; // no more orders left for this symbol, move to next one
}
} catch (e) {
log.red.unlimited (e)
}
}
// omit the following keys for a compact table output
// otherwise it won't fit into the screen width
const omittedKeys = [
'info',
'timestamp',
'lastTradeTimestamp',
'fee',
]
log.yellow (asTable (allOrders.map (order => exchange.omit (order, omittedKeys))))
log.green ('Fetched', allOrders.length, symbol, 'orders in total');
// do whatever you want to do with them, calculate profit loss, etc...
}) ()