mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-11 09:18:08 +00:00
commit
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
- [Async Orderbooks](./examples/py/)
|
||||
|
||||
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import asyncio
|
||||
import ccxt
|
||||
import ccxt.async_support as ccxta # noqa: E402
|
||||
import time
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
|
||||
async def async_client(exchange, symbol):
|
||||
client = getattr(ccxta, exchange)()
|
||||
await client.load_markets()
|
||||
if symbol not in client.symbols:
|
||||
raise Exception(exchange + ' does not support symbol ' + symbol)
|
||||
while True:
|
||||
try:
|
||||
orderbook = await client.fetch_order_book(symbol)
|
||||
datetime = client.iso8601(client.milliseconds())
|
||||
print(datetime, client.id, symbol, orderbook['bids'][0], orderbook['asks'][0])
|
||||
except Exception as e:
|
||||
print(type(e).__name__, e.args, str(e)) # comment if not needed
|
||||
# break # uncomment to break it
|
||||
# pass # uncomment to do nothing and just retry again on next iteration
|
||||
# or add your own reaction according to the purpose of your app
|
||||
await client.close()
|
||||
|
||||
|
||||
async def multi_orderbooks(exchanges, symbol):
|
||||
input_coroutines = [async_client(exchange, symbol) for exchange in exchanges]
|
||||
await asyncio.gather(*input_coroutines, return_exceptions=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
# Consider review request rate limit in the methods you call
|
||||
exchanges = ["bittrex", "bitfinex", "poloniex"]
|
||||
symbol = 'ETH/BTC'
|
||||
|
||||
asyncio.run(multi_orderbooks(exchanges, symbol))
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user