|
| 1 | +# -*- coding: utf-8 -*- |
| 2 | + |
| 3 | +import os |
| 4 | +import sys |
| 5 | + |
| 6 | +root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
| 7 | +sys.path.append(root + '/python') |
| 8 | + |
| 9 | +import ccxt # noqa: E402 |
| 10 | + |
| 11 | + |
| 12 | +def table(values): |
| 13 | + first = values[0] |
| 14 | + keys = list(first.keys()) if isinstance(first, dict) else range(0, len(first)) |
| 15 | + widths = [max([len(str(v[k])) for v in values]) for k in keys] |
| 16 | + string = ' | '.join(['{:<' + str(w) + '}' for w in widths]) |
| 17 | + return "\n".join([string.format(*[str(v[k]) for k in keys]) for v in values]) |
| 18 | + |
| 19 | + |
| 20 | +class Binance(ccxt.binance): |
| 21 | + def parse_ohlcv(self, ohlcv, market=None): |
| 22 | + # |
| 23 | + # [ |
| 24 | + # 1591478520000, # open time |
| 25 | + # "0.02501300", # open |
| 26 | + # "0.02501800", # high |
| 27 | + # "0.02500000", # low |
| 28 | + # "0.02500000", # close |
| 29 | + # "22.19000000", # volume |
| 30 | + # 1591478579999, # close time |
| 31 | + # "0.55490906", # quote asset volume |
| 32 | + # 40, # number of trades |
| 33 | + # "10.92900000", # taker buy base asset volume |
| 34 | + # "0.27336462", # taker buy quote asset volume |
| 35 | + # "0" # ignore |
| 36 | + # ] |
| 37 | + # |
| 38 | + return [ |
| 39 | + self.safe_integer(ohlcv, 0), |
| 40 | + self.safe_number(ohlcv, 1), |
| 41 | + self.safe_number(ohlcv, 2), |
| 42 | + self.safe_number(ohlcv, 3), |
| 43 | + self.safe_number(ohlcv, 4), |
| 44 | + self.safe_number(ohlcv, 7), # << here |
| 45 | + ] |
| 46 | + |
| 47 | +exchange = Binance() |
| 48 | +markets = exchange.load_markets() |
| 49 | +# exchange.verbose = True # uncomment for debugging purposes if necessary |
| 50 | +ohlcv = exchange.fetch_ohlcv('BTC/USDT', '1h') |
| 51 | +print(table(ohlcv)) |
0 commit comments