mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-10 00:38:07 +00:00
commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
- [Async Basic Callchain](./examples/py/)
|
||||
|
||||
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
import ccxt.async_support as ccxt # noqa: E402
|
||||
|
||||
|
||||
async def run_all_exchanges(exchange_ids):
|
||||
results = {}
|
||||
|
||||
for exchange_id in exchange_ids:
|
||||
|
||||
exchange = getattr(ccxt, exchange_id)({
|
||||
'options': {
|
||||
'useWebapiForFetchingFees': False,
|
||||
}
|
||||
})
|
||||
|
||||
symbol = 'ETH/BTC'
|
||||
print('Exchange:', exchange_id)
|
||||
|
||||
print(exchange_id, 'symbols:')
|
||||
markets = await load_markets(exchange, symbol) # ←----------- STEP 1
|
||||
print(list(markets.keys()))
|
||||
|
||||
print(symbol, 'ticker:')
|
||||
ticker = await fetch_ticker(exchange, symbol) # ←------------ STEP 2
|
||||
print(ticker)
|
||||
|
||||
print(symbol, 'orderbook:')
|
||||
orderbook = await fetch_orderbook(exchange, symbol) # ←------ STEP 3
|
||||
print(orderbook)
|
||||
|
||||
await exchange.close() # ←----------- LAST STEP GOES AFTER ALL CALLS
|
||||
|
||||
results[exchange_id] = ticker
|
||||
|
||||
return results
|
||||
|
||||
|
||||
async def load_markets(exchange, symbol):
|
||||
try:
|
||||
result = await exchange.load_markets()
|
||||
return result
|
||||
except ccxt.BaseError as e:
|
||||
print(type(e).__name__, str(e), str(e.args))
|
||||
raise e
|
||||
|
||||
|
||||
async def fetch_ticker(exchange, symbol):
|
||||
try:
|
||||
result = await exchange.fetch_ticker(symbol)
|
||||
return result
|
||||
except ccxt.BaseError as e:
|
||||
print(type(e).__name__, str(e), str(e.args))
|
||||
raise e
|
||||
|
||||
|
||||
async def fetch_orderbook(exchange, symbol):
|
||||
try:
|
||||
result = await exchange.fetch_order_book(symbol)
|
||||
return result
|
||||
except ccxt.BaseError as e:
|
||||
print(type(e).__name__, str(e), str(e.args))
|
||||
raise e
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
exchange_ids = ['bitfinex', 'okex', 'exmo']
|
||||
exchanges = []
|
||||
results = asyncio.run(run_all_exchanges(exchange_ids))
|
||||
print([(exchange_id, ticker) for exchange_id, ticker in results.items()])
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user