Search code examples
pythonccxtbybit

Can't get a futures list from Bybit with CCXT


I'm trying to get a list of all the futures available on Bybit using the CCXT library.

If I use brackets with fetch_futures_markets it says I'm a parameter short.

import ccxt

exchange = ccxt.bybit({
    'enableRateLimit': True,
    'apiKey': config.BYBIT_API_KEY_DYNAMIC_BOOK, 
    'secret': config.BYBIT_SECRET_KEY_DYNAMIC_BOOK
                       })

markets = exchange.fetch_future_markets()
TypeError: bybit.fetch_future_markets() missing 1 required positional argument: 'params'

And without the () I get an empty list.

import ccxt

exchange = ccxt.bybit({
    'enableRateLimit': True,
    'apiKey': config.BYBIT_API_KEY_DYNAMIC_BOOK, 
    'secret': config.BYBIT_SECRET_KEY_DYNAMIC_BOOK
                       })

markets = exchange.fetch_future_markets

I've tried adding futures to the exchange params, still no joy.

 exchange = ccxt.bybit({
    'enableRateLimit': True,
    'apiKey': config.BYBIT_API_KEY_DYNAMIC_BOOK, 
    'secret': config.BYBIT_SECRET_KEY_DYNAMIC_BOOK,
    'options': {'defaultType': 'future' }
                       })

markets = exchange.fetch_future_markets()

I'm new at this, both StackOverflow and coding. So excuse me if I make obvious mistakes. Any help would be greatly appreciated.


Solution

  • fetch_future_markets() has been deprecated. You have to pass future markets as an option.

    import ccxt
    
    exchange = ccxt.bybit({
        'apiKey': config.BYBIT_API_KEY_DYNAMIC_BOOK,
        'secret': config.BYBIT_SECRET_KEY_DYNAMIC_BOOK,
        'enableRateLimit': True,
        'options': {
            'defaultType': 'future',
        },
    })
    
    exchange.load_markets()