mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-09 08:18:07 +00:00
46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from asyncio import gather, run
|
|
import ccxt.pro
|
|
from pprint import pprint
|
|
|
|
|
|
async def watch_ticker_continuously(exchange, symbol):
|
|
filename = exchange.id + '-' + symbol.replace('/', '-') + '.csv'
|
|
print('Watching', exchange.id, symbol, filename)
|
|
keys = ['index', 'exchange', 'symbol', 'timestamp', 'open', 'high', 'low', 'close', 'baseVolume']
|
|
with open(filename, 'w') as file:
|
|
file.write(','.join(keys) + "\n")
|
|
index = 0
|
|
while True:
|
|
try:
|
|
ticker = await exchange.watch_ticker(symbol)
|
|
values = [str(index), exchange.id] + [str(ticker[key]) for key in keys[2:]]
|
|
print(*values)
|
|
with open(filename, 'a') as file:
|
|
file.write(','.join(values) + "\n")
|
|
index += 1
|
|
except Exception as e:
|
|
print(e)
|
|
|
|
|
|
async def watch_tickers_continuously(exchange_id, overrides, symbols):
|
|
exchange_class = getattr(ccxt.pro, exchange_id)
|
|
exchange = exchange_class(overrides)
|
|
coroutines = [watch_ticker_continuously(exchange, symbol) for symbol in symbols]
|
|
await gather(*coroutines)
|
|
await exchange.close()
|
|
|
|
|
|
async def main():
|
|
exchanges = {
|
|
'binance': {'options': {'defaultType': 'future'}},
|
|
'huobipro': {}
|
|
}
|
|
symbols = ['BTC/USDT', 'ETH/USDT', 'LTC/USDT', 'XRP/USDT', 'BCH/USDT']
|
|
coroutines = [watch_tickers_continuously(exchange_id, exchanges[exchange_id], symbols) for exchange_id in exchanges.keys()]
|
|
return await gather(*coroutines)
|
|
|
|
|
|
run(main())
|