mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-11 01:08:07 +00:00
commit
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import ccxt.pro
|
||||
from asyncio import gather, run
|
||||
|
||||
|
||||
async def symbol_loop(exchange, method, symbol):
|
||||
print('Starting', exchange.id, method, symbol)
|
||||
while True:
|
||||
try:
|
||||
response = await getattr(exchange, method)(symbol)
|
||||
now = exchange.milliseconds()
|
||||
iso8601 = exchange.iso8601(now)
|
||||
if method == 'watchOrderBook':
|
||||
print(iso8601, exchange.id, method, symbol, response['asks'][0], response['bids'][0])
|
||||
elif method == 'watchTicker':
|
||||
print(iso8601, exchange.id, method, symbol, response['high'], response['low'], response['bid'], response['ask'])
|
||||
elif method == 'watchTrades':
|
||||
print(iso8601, exchange.id, method, symbol, len(response), 'trades')
|
||||
|
||||
except Exception as e:
|
||||
print(str(e))
|
||||
# raise e # uncomment to break all loops in case of an error in any one of them
|
||||
break # you can break just this one loop if it fails
|
||||
|
||||
|
||||
async def method_loop(exchange, method, symbols):
|
||||
print('Starting', exchange.id, method, symbols)
|
||||
loops = [symbol_loop(exchange, method, symbol) for symbol in symbols]
|
||||
await gather(*loops)
|
||||
|
||||
|
||||
async def exchange_loop(exchange_id, methods):
|
||||
print('Starting', exchange_id, methods)
|
||||
exchange = getattr(ccxt.pro, exchange_id)()
|
||||
loops = [method_loop(exchange, method, symbols) for method, symbols in methods.items()]
|
||||
await gather(*loops)
|
||||
await exchange.close()
|
||||
|
||||
|
||||
async def main():
|
||||
exchanges = {
|
||||
'okex': {
|
||||
'watchOrderBook': ['BTC/USDT', 'ETH/BTC', 'ETH/USDT'],
|
||||
'watchTicker': ['BTC/USDT'],
|
||||
},
|
||||
'binance': {
|
||||
'watchOrderBook': ['BTC/USDT', 'ETH/BTC'],
|
||||
'watchTrades': [ 'ETH/BTC' ],
|
||||
},
|
||||
}
|
||||
loops = [exchange_loop(exchange_id, methods) for exchange_id, methods in exchanges.items()]
|
||||
await gather(*loops)
|
||||
|
||||
|
||||
run(main())
|
||||
Reference in New Issue
Block a user