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

Method load_leverage_brackets

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

Source from the content-addressed store, hash-verified

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

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