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

Method load_leverage_brackets

python/ccxt/async_support/binance.py:10188–10227  ·  view source on GitHub ↗
(self, reload=False, params={})

Source from the content-addressed store, hash-verified

10186 })
10187
10188 async def load_leverage_brackets(self, reload=False, params={}):
10189 await self.load_markets()
10190 # by default cache the leverage bracket
10191 # it contains useful stuff like the maintenance margin and initial margin for positions
10192 leverageBrackets = self.safe_dict(self.options, 'leverageBrackets')
10193 if (leverageBrackets is None) or (reload):
10194 defaultType = self.safe_string(self.options, 'defaultType', 'future')
10195 type = self.safe_string(params, 'type', defaultType)
10196 query = self.omit(params, 'type')
10197 subType = None
10198 subType, params = self.handle_sub_type_and_params('loadLeverageBrackets', None, params, 'linear')
10199 isPortfolioMargin = None
10200 isPortfolioMargin, params = self.handle_option_and_params_2(params, 'loadLeverageBrackets', 'papi', 'portfolioMargin', False)
10201 response = None
10202 if self.is_linear(type, subType):
10203 if isPortfolioMargin:
10204 response = await self.papiGetUmLeverageBracket(query)
10205 else:
10206 response = await self.fapiPrivateGetLeverageBracket(query)
10207 elif self.is_inverse(type, subType):
10208 if isPortfolioMargin:
10209 response = await self.papiGetCmLeverageBracket(query)
10210 else:
10211 response = await self.dapiPrivateV2GetLeverageBracket(query)
10212 else:
10213 raise NotSupported(self.id + ' loadLeverageBrackets() supports linear and inverse contracts only')
10214 self.options['leverageBrackets'] = self.create_safe_dictionary()
10215 for i in range(0, len(response)):
10216 entry = response[i]
10217 marketId = self.safe_string(entry, 'symbol')
10218 symbol = self.safe_symbol(marketId, None, None, 'contract')
10219 brackets = self.safe_list(entry, 'brackets', [])
10220 result = []
10221 for j in range(0, len(brackets)):
10222 bracket = brackets[j]
10223 floorValue = self.safe_string_2(bracket, 'notionalFloor', 'qtyFloor')
10224 maintenanceMarginPercentage = self.safe_string(bracket, 'maintMarginRatio')
10225 result.append([floorValue, maintenanceMarginPercentage])
10226 self.options['leverageBrackets'][symbol] = result
10227 return self.options['leverageBrackets']
10228
10229 async def fetch_leverage_tiers(self, symbols: Strings = None, params={}) -> LeverageTiers:
10230 """

Callers 3

fetch_positions_riskMethod · 0.95
fetch_leveragesMethod · 0.95

Calls 15

is_linearMethod · 0.95
is_inverseMethod · 0.95
NotSupportedClass · 0.90
safe_dictMethod · 0.80
safe_stringMethod · 0.80

Tested by

no test coverage detected