mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-10 16:58:08 +00:00
commit
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import ccxt.pro
|
||||
import asyncio
|
||||
import time
|
||||
|
||||
|
||||
async def watch_book(exchange, ticker):
|
||||
last = None
|
||||
while True:
|
||||
try:
|
||||
orderbook = await exchange.watch_order_book(ticker)
|
||||
# TODO add timeout within a minute
|
||||
# TODO add last
|
||||
top_bid = orderbook['bids'][0][0]
|
||||
if last != top_bid:
|
||||
print(f'{int(time.time() * 1000)} top bid for celo on {exchange.name} is {top_bid}')
|
||||
last = top_bid
|
||||
except Exception as e:
|
||||
print(f'{exchange.name} failed {type(e)} {e}')
|
||||
|
||||
|
||||
async def main():
|
||||
exchange_ids = ['coinbasepro', 'okcoin', 'bittrex']
|
||||
exchanges = [getattr(ccxt.pro, exchange_id)() for exchange_id in exchange_ids]
|
||||
try:
|
||||
done, pending = await asyncio.wait({watch_book(exchange, 'CELO/USD') for exchange in exchanges}, return_when=asyncio.FIRST_EXCEPTION)
|
||||
for completed in done:
|
||||
# trigger the exception here
|
||||
completed.result()
|
||||
except Exception as e:
|
||||
print(f'closing all exchanges because of exception {type(e)} {e}')
|
||||
await asyncio.gather(*[exchange.close() for exchange in exchanges])
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user