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

Method fetch_markets

python/ccxt/bybit.py:1861–1912  ·  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

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