MCPcopy Create free account
hub / github.com/ccxt/ccxt / fetch_markets

Method fetch_markets

python/ccxt/async_support/bybit.py:1862–1913  ·  view source on GitHub ↗

retrieves data on all markets for bybit https://bybit-exchange.github.io/docs/v5/market/instrument :param dict [params]: extra parameters specific to the exchange API endpoint :returns dict[]: an array of objects representing market data

(self, params={})

Source from the content-addressed store, hash-verified

1860 })
1861
1862 async def fetch_markets(self, params={}) -> List[Market]:
1863 """
1864 retrieves data on all markets for bybit
1865
1866 https://bybit-exchange.github.io/docs/v5/market/instrument
1867
1868 :param dict [params]: extra parameters specific to the exchange API endpoint
1869 :returns dict[]: an array of objects representing market data
1870 """
1871 if self.options['adjustForTimeDifference']:
1872 await self.load_time_difference()
1873 promisesUnresolved = []
1874 types = None
1875 defaultTypes = ['spot', 'linear', 'inverse', 'option']
1876 fetchMarketsOptions = self.safe_dict(self.options, 'fetchMarkets')
1877 if fetchMarketsOptions is not None:
1878 types = self.safe_list(fetchMarketsOptions, 'types', defaultTypes)
1879 else:
1880 # for backward-compatibility
1881 types = self.safe_list(self.options, 'fetchMarkets', defaultTypes)
1882 for i in range(0, len(types)):
1883 marketType = types[i]
1884 if marketType == 'spot':
1885 promisesUnresolved.append(self.fetch_spot_markets(params))
1886 elif marketType == 'linear':
1887 promisesUnresolved.append(self.fetch_future_markets({'category': 'linear'}))
1888 elif marketType == 'inverse':
1889 promisesUnresolved.append(self.fetch_future_markets({'category': 'inverse'}))
1890 elif marketType == 'option':
1891 optionsCurrencies = self.safe_list(fetchMarketsOptions, 'options', ['BTC', 'ETH', 'SOL'])
1892 for j in range(0, len(optionsCurrencies)):
1893 currency = optionsCurrencies[j]
1894 promisesUnresolved.append(self.fetch_option_markets({'baseCoin': currency}))
1895 else:
1896 raise ExchangeError(self.id + ' fetchMarkets() self.options fetchMarkets "' + marketType + '" is not a supported market type')
1897 promises = await asyncio.gather(*promisesUnresolved)
1898 result = []
1899 for i in range(0, len(promises)):
1900 parsedMarket = promises[i]
1901 result = self.array_concat(result, parsedMarket)
1902 # spotMarkets = self.safe_list(promises, 0, [])
1903 # linearMarkets = self.safe_list(promises, 1, [])
1904 # inverseMarkets = self.safe_list(promises, 2, [])
1905 # btcOptionMarkets = self.safe_list(promises, 3, [])
1906 # ethOptionMarkets = self.safe_list(promises, 4, [])
1907 # solOptionMarkets = self.safe_list(promises, 5, [])
1908 # futureMarkets = self.array_concat(linearMarkets, inverseMarkets)
1909 # optionMarkets = self.array_concat(btcOptionMarkets, ethOptionMarkets)
1910 # optionMarkets = self.array_concat(optionMarkets, solOptionMarkets)
1911 # derivativeMarkets = self.array_concat(futureMarkets, optionMarkets)
1912 # return self.array_concat(spotMarkets, derivativeMarkets)
1913 return result
1914
1915 async def fetch_spot_markets(self, params) -> List[Market]:
1916 request = {

Callers

nothing calls this directly

Calls 10

fetch_spot_marketsMethod · 0.95
fetch_future_marketsMethod · 0.95
fetch_option_marketsMethod · 0.95
ExchangeErrorClass · 0.90
safe_dictMethod · 0.80
safe_listMethod · 0.80
array_concatMethod · 0.80
rangeFunction · 0.50
load_time_differenceMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected