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,134 @@
|
||||
- [Tickers](./examples/py/)
|
||||
|
||||
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
import ccxt # noqa: E402
|
||||
|
||||
|
||||
def style(s, style):
|
||||
return style + s + '\033[0m'
|
||||
|
||||
|
||||
def green(s):
|
||||
return style(s, '\033[92m')
|
||||
|
||||
|
||||
def blue(s):
|
||||
return style(s, '\033[94m')
|
||||
|
||||
|
||||
def yellow(s):
|
||||
return style(s, '\033[93m')
|
||||
|
||||
|
||||
def red(s):
|
||||
return style(s, '\033[91m')
|
||||
|
||||
|
||||
def pink(s):
|
||||
return style(s, '\033[95m')
|
||||
|
||||
|
||||
def bold(s):
|
||||
return style(s, '\033[1m')
|
||||
|
||||
|
||||
def underline(s):
|
||||
return style(s, '\033[4m')
|
||||
|
||||
|
||||
def dump(*args):
|
||||
print(' '.join([str(arg) for arg in args]))
|
||||
|
||||
|
||||
def print_exchanges():
|
||||
dump('Supported exchanges:', ', '.join(ccxt.exchanges))
|
||||
|
||||
|
||||
def print_usage():
|
||||
dump("Usage: python " + sys.argv[0], green('id'), yellow('[symbol]'))
|
||||
dump("Symbol is optional, for example:")
|
||||
dump("python " + sys.argv[0], green('kraken'))
|
||||
dump("python " + sys.argv[0], green('coinbasepro'), yellow('BTC/USD'))
|
||||
print_exchanges()
|
||||
|
||||
|
||||
def print_ticker(exchange, symbol):
|
||||
ticker = exchange.fetch_ticker(symbol.upper())
|
||||
print(ticker)
|
||||
dump(
|
||||
green(exchange.id),
|
||||
yellow(symbol),
|
||||
'ticker',
|
||||
ticker['datetime'],
|
||||
'high: ' + str(ticker['high']),
|
||||
'low: ' + str(ticker['low']),
|
||||
'bid: ' + str(ticker['bid']),
|
||||
'ask: ' + str(ticker['ask']),
|
||||
'volume: ' + str(ticker['quoteVolume']))
|
||||
|
||||
|
||||
try:
|
||||
|
||||
id = sys.argv[1] # get exchange id from command line arguments
|
||||
|
||||
# check if the exchange is supported by ccxt
|
||||
exchange_found = id in ccxt.exchanges
|
||||
|
||||
if exchange_found:
|
||||
dump('Instantiating', green(id))
|
||||
|
||||
# instantiate the exchange by id
|
||||
exchange = getattr(ccxt, id)()
|
||||
|
||||
# load all markets from the exchange
|
||||
markets = exchange.load_markets()
|
||||
|
||||
# output all symbols
|
||||
dump(green(id), 'has', len(exchange.symbols), 'symbols:', yellow(', '.join(exchange.symbols)))
|
||||
|
||||
try:
|
||||
if len(sys.argv) > 2: # if symbol is present, get that symbol only
|
||||
|
||||
symbol = sys.argv[2]
|
||||
print_ticker(exchange, symbol)
|
||||
|
||||
else: # run through all symbols one by one
|
||||
|
||||
delay = int(exchange.rateLimit / 1000) # delay in between requests
|
||||
|
||||
for symbol in exchange.symbols:
|
||||
|
||||
# suffix '.d' means 'darkpool' on some exchanges
|
||||
if symbol.find('.d') < 0:
|
||||
|
||||
# sleep to remain under the rateLimit
|
||||
time.sleep(delay)
|
||||
|
||||
# fetch and print ticker
|
||||
print_ticker(exchange, symbol)
|
||||
|
||||
except ccxt.DDoSProtection as e:
|
||||
print(type(e).__name__, e.args, 'DDoS Protection (ignoring)')
|
||||
except ccxt.RequestTimeout as e:
|
||||
print(type(e).__name__, e.args, 'Request Timeout (ignoring)')
|
||||
except ccxt.ExchangeNotAvailable as e:
|
||||
print(type(e).__name__, e.args, 'Exchange Not Available due to downtime or maintenance (ignoring)')
|
||||
except ccxt.AuthenticationError as e:
|
||||
print(type(e).__name__, e.args, 'Authentication Error (missing API keys, ignoring)')
|
||||
else:
|
||||
dump('Exchange ' + red(id) + ' not found')
|
||||
print_usage()
|
||||
|
||||
except Exception as e:
|
||||
|
||||
print(type(e).__name__, e.args, str(e))
|
||||
print_usage()
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user