Back to Ccxt

-*- coding: utf-8 -*-

wiki/examples/py/async-binance-usdm-fetch-continuous-klines-ohlcv.md

4.5.521.4 KB
Original Source
python

# -*- coding: utf-8 -*-

import os
import sys
from asyncio import run

import ccxt.async_support as ccxt  # noqa: E402

print('CCXT Version:', ccxt.__version__)


def table(values):
   first = values[0]
   keys = list(first.keys()) if isinstance(first, dict) else range(0, len(first))
   widths = [max([len(str(v[k])) for v in values]) for k in keys]
   string = ' | '.join(['{:<' + str(w) + '}' for w in widths])
   return "\n".join([string.format(*[str(v[k]) for k in keys]) for v in values])


async def main():
   exchange = ccxt.binanceusdm()
   try:
       await exchange.load_markets()
       timeframe = '1m'
       limit = 1
       symbol = 'BTC/USDT'
       market = exchange.market(symbol)
       timeframe = '1m'
       params = {
           'pair': market['id'],
           'contractType': 'PERPETUAL',  # 'PERPETUAL', 'CURRENT_MONTH', 'NEXT_MONTH', 'CURRENT_QUARTER', 'NEXT_QUARTER'
           'interval': exchange.timeframes[timeframe],
       }
       # https://binance-docs.github.io/apidocs/futures/en/#continuous-contract-kline-candlestick-data
       ohlcvs = await exchange.fapiPublic_get_continuousklines(params)
       print(table([o for o in ohlcvs]))
       print(table([[exchange.iso8601(int(o[0]))] + o[1:] for o in ohlcvs]))
   except Exception as e:
       print(type(e).__name__, str(e))
   await exchange.close()


run(main())